1-- { dg-do run } 2 3procedure Unchecked_Union1 is 4 5 type Bit is (Zero, One); 6 7 type U (X : Bit := Zero) is record 8 case X is 9 when Zero => I: Integer; 10 when One => F : Float; 11 end case; 12 end record; 13 for U use record 14 I at 0 range 0 .. 31; 15 F at 0 range 0 .. 31; 16 end record; 17 pragma Unchecked_Union(U); 18 19begin 20 if U'Object_Size /= 32 then 21 raise Program_Error; 22 end if; 23end; 24