-- { dg-do compile } | |
procedure Pack5 is | |
type Kind is (v1, v2, v3); | |
type Error (k : Kind := Kind'First) is record | |
case k is | |
when v1 => | |
null; | |
when v2 => | |
null; | |
when Others => | |
B : Boolean; | |
end case; | |
end record; | |
pragma Pack (Error); | |
for Error'Size use 16; | |
No_Error: constant Error := (k => v2); | |
type R (B : Boolean) is record | |
E : Error; | |
end record; | |
pragma Pack(R); | |
type Ptr is access R; | |
C : Ptr := new R (True); | |
begin | |
C.E := No_Error; | |
end; |