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