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