PR target/84336
[official-gcc.git] / gcc / testsuite / gnat.dg / sso / init2.ads
blob48a1962b3bd762dcde48d210c61a003304a2830b
1 with System;
3 package Init2 is
5 type Small is mod 2**2;
6 for Small'Size use 2;
8 type Count is mod 2**9;
9 for Count'Size use 9;
11 type Arr1 is array (1 .. 3) of Count;
12 pragma Pack (Arr1);
13 for Arr1'Size use 27;
14 for Arr1'Scalar_Storage_Order use System.Low_Order_First;
16 type R1 is record
17 S1 : Small;
18 I : Integer;
19 S2 : Small;
20 A : Arr1;
21 B : Boolean;
22 end record;
23 for R1'Bit_Order use System.Low_Order_First;
24 for R1'Scalar_Storage_Order use System.Low_Order_First;
25 for R1 use record
26 S1 at 0 range 0 .. 1;
27 I at 0 range 2 .. 33;
28 S2 at 0 range 34 .. 35;
29 A at 0 range 36 .. 62;
30 B at 0 range 63 .. 63;
31 end record;
32 for R1'Size use 64;
34 type Arr2 is array (1 .. 3) of Count;
35 pragma Pack (Arr2);
36 for Arr2'Size use 27;
37 for Arr2'Scalar_Storage_Order use System.High_Order_First;
39 type R2 is record
40 S1 : Small;
41 I : Integer;
42 S2 : Small;
43 A : Arr2;
44 B : Boolean;
45 end record;
46 for R2'Bit_Order use System.High_Order_First;
47 for R2'Scalar_Storage_Order use System.High_Order_First;
48 for R2 use record
49 S1 at 0 range 0 .. 1;
50 I at 0 range 2 .. 33;
51 S2 at 0 range 34 .. 35;
52 A at 0 range 36 .. 62;
53 B at 0 range 63 .. 63;
54 end record;
55 for R2'Size use 64;
57 My_R1 : constant R1 := (S1 => 2,
58 I => 16#12345678#,
59 S2 => 1,
60 A => (16#AB#, 16#CD#, 16#EF#),
61 B => True);
63 My_R2 : constant R2 := (S1 => 2,
64 I => 16#12345678#,
65 S2 => 1,
66 A => (16#AB#, 16#CD#, 16#EF#),
67 B => True);
69 end Init2;