| -- { dg-do run } |
| |
| with Ada.Unchecked_Conversion; |
| with Ada.Streams; use Ada.Streams; |
| with Ada.Text_IO; use Ada.Text_IO; |
| |
| procedure Unchecked_Convert2 is |
| |
| subtype Day_Number is Integer range 0 .. 31; |
| |
| subtype Byte_Array_Of_Integer is Stream_Element_Array |
| (1 .. Integer'Size / Stream_Element_Array'Component_Size); |
| |
| function To_Byte_Array is |
| new Ada.Unchecked_Conversion (Integer, Byte_Array_Of_Integer); |
| |
| Day_Now : Day_Number; |
| Pragma Volatile (Day_Now); |
| |
| Arr : Stream_Element_Array (1 .. 12) := (others => 16#ff#); |
| |
| procedure Test (Arr : Stream_Element_Array) is |
| begin |
| if Arr(5) /= 0 or Arr(6) /= 0 or Arr(7) /= 0 or Arr(8) /= 0 then |
| raise Program_Error; |
| end if; |
| end; |
| |
| begin |
| Day_Now := 0; |
| Arr (5 .. 8) := To_Byte_Array (Day_Now); |
| Test (Arr); |
| Arr (1) := 16#ff#; |
| end Unchecked_Convert2; |