-- { 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; |