-- { dg-do compile } -- { dg-options "-g -gnatVa" } with Unchecked_Conversion; procedure Unchecked_Convert7 is type BPA is array (1 .. 23) of Boolean; pragma Pack (BPA); for BPA'Size use 23; subtype Byte is Natural range 0 .. 255; type R is record S : Boolean; E : Byte; F : BPA; end record; for R use record S at 0 range 0 .. 0; E at 0 range 1 .. 8; F at 0 range 9 .. 31; end record; for R'Size use 32; function Conversion is new Unchecked_Conversion (Source => R, Target => Float); F : Float := Conversion (R'(False, Byte'Last, (others => False))); begin null; end;