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