PR target/84336
[official-gcc.git] / gcc / testsuite / gnat.dg / rep_clause4.adb
blob76bb15284a501d268ccb320e46d4705257f021dc
1 -- { dg-do run }
3 procedure Rep_Clause4 is
5 type U32 is mod 2 ** 32;
7 type Key is record
8 Value : U32;
9 Valid : Boolean;
10 end record;
12 type Key_Buffer is record
13 Current, Latch : Key;
14 end record;
16 type Block is record
17 Keys : Key_Buffer;
18 Stamp : U32;
19 end record;
20 for Block use record
21 Keys at 0 range 0 .. 103;
22 Stamp at 13 range 0 .. 31;
23 end record;
25 My_Block : Block;
26 My_Stamp : constant := 16#01234567#;
28 begin
29 My_Block.Stamp := My_Stamp;
30 My_Block.Keys.Latch := My_Block.Keys.Current;
31 if My_Block.Stamp /= My_Stamp then
32 raise Program_Error;
33 end if;
34 end;