-- { dg-do compile } -- { dg-options "-g -O" } with Ada.Unchecked_Conversion; package body Unchecked_Convert8 is type T1 is range 0 .. 255; type T2 is record A : T1; B : T1; end record; for T2 use record A at 0 range 0 .. 7; B at 1 range 0 .. 7; end record; for T2'Size use 16; type T3 is range 0 .. (2**16 - 1); for T3'Size use 16; function T2_TO_T3 is new Ada.Unchecked_Conversion (Source => T2, Target => T3); C : constant T3 := T2_TO_T3 (S => (A => 0, B => 0)); procedure Dummy is begin null; end; end Unchecked_Convert8;