blob: 47b1a1327311aa91847593c05af2cebfa49b6615 [file] [log] [blame]
-- { dg-do run }
with Ada.Text_IO;
procedure Array30 is
package P is
type T is tagged record
value : Integer := 123;
end record;
type Ar is array (1..10) of T;
function F (Obj : T) return Ar;
function F2 (Obj : T) return T;
end P;
use P;
package body P is
function F (Obj : T) return Ar is
begin
return (others => <>);
end;
function F2 (Obj : T) return T is
begin
return (value => -111);
end F2;
end P;
Thing : T;
begin
if Thing.F (4).Value /= 0 then
if Thing.F (5).Value /= 123 then
raise Program_Error;
end if;
if Thing.F (5).F2.Value /= -111 then
raise Program_Error;
end if;
end if;
end;