1-- { dg-do compile } 2 3procedure Pack5 is 4 5 type Kind is (v1, v2, v3); 6 7 type Error (k : Kind := Kind'First) is record 8 case k is 9 when v1 => 10 null; 11 when v2 => 12 null; 13 when Others => 14 B : Boolean; 15 end case; 16 end record; 17 pragma Pack (Error); 18 for Error'Size use 16; 19 20 No_Error: constant Error := (k => v2); 21 22 type R (B : Boolean) is record 23 E : Error; 24 end record; 25 pragma Pack(R); 26 type Ptr is access R; 27 28 C : Ptr := new R (True); 29 30begin 31 C.E := No_Error; 32end; 33