(root)/
gcc-13.2.0/
gcc/
testsuite/
gnat.dg/
array30.adb
--  { 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;