-- { dg-do run } | |
pragma Restrictions (No_Finalization); | |
procedure no_final is | |
package P is | |
type T is tagged null record; | |
type T1 is new T with record | |
A : String (1..80); | |
end record; | |
function F return T'Class; | |
end P; | |
Str : String (1..80) := (1..80=>'x'); | |
package body P is | |
function F return T'Class is | |
X : T1 := T1'(A => Str); | |
begin | |
return X; | |
end F; | |
end P; | |
Obj : P.T'class := P.F; | |
begin | |
if P.T1 (Obj).A /= Str then | |
raise Constraint_Error; | |
end if; | |
end; | |