(root)/
gcc-13.2.0/
gcc/
testsuite/
gnat.dg/
specs/
pack3.ads
-- { dg-do compile }

with Pack3_Pkg;

package Pack3 is

  subtype N_TYPE is INTEGER range 0..5;

  type LIST_ARRAY is array (N_TYPE range <>) of INTEGER;

  type LIST (N : N_TYPE := 0) is record
    LIST : LIST_ARRAY(1..N);
  end record;
  pragma PACK(LIST);

  subtype CS is STRING(1..Pack3_Pkg.F);

  type CSA is array (NATURAL range <>) of CS;

  type REC is record
    I1, I2 : INTEGER;
  end record ;

  type CMD is (CO, AS);

  type CMD_BLOCK_TYPE (D : CMD := CO) is record
    N : CSA (1..4);
    case D is
      when CO => L : LIST;
      when AS => R : REC;
    end case ;
  end record;
  pragma PACK(CMD_BLOCK_TYPE);

  type CMD_TYPE is (RIGHT, WRONG);

  type CMD_RESULT (D : CMD_TYPE) is record
    case D is
      when RIGHT => C : CMD_BLOCK_TYPE;
      when WRONG => null;
    end case;
  end record ;
  pragma PACK(CMD_RESULT);

end Pack3;