34 lines
563 B
Ada
34 lines
563 B
Ada
-- { dg-do run }
|
|
|
|
procedure Access_Test is
|
|
|
|
type T1 is tagged null record;
|
|
|
|
procedure Proc_1 (P : access T1'Class) is
|
|
type Ref is access T1'Class;
|
|
X : Ref := new T1'Class'(P.all); -- Should always work (no exception)
|
|
|
|
begin
|
|
null;
|
|
end;
|
|
|
|
procedure Proc_2 is
|
|
type T2 is new T1 with null record;
|
|
X2 : aliased T2;
|
|
|
|
begin
|
|
Proc_1 (X2'access);
|
|
|
|
declare
|
|
type T3 is new T1 with null record;
|
|
X3 : aliased T3;
|
|
|
|
begin
|
|
Proc_1 (X3'access);
|
|
end;
|
|
end;
|
|
|
|
begin
|
|
Proc_2;
|
|
end;
|