| -- { 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; |