30 lines
564 B
Ada
30 lines
564 B
Ada
-- { 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;
|
|
|