summaryrefslogtreecommitdiff
path: root/gcc/testsuite/gnat.dg/specs/rep_clause3.ads
blob: 438c60468685246336af4752072a6b245d20f04c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
package Rep_Clause3 is

  type Record1 is
      record
         Page_Handle : Integer range 0 .. 255;
         Page_Owner :  Integer range 0 .. 15;
      end record;
   for Record1 use
      record
         Page_Handle at 0 range 0 .. 15;
         Page_Owner at 0 range 16 .. 19;
      end record;
   for Record1'Size use 20;

   type Range_A is range 1 .. 7;
   for Range_A'Size use 16;

   type Array_Type is array (Range_A) of Record1;
   pragma Pack (Array_Type);
   for Array_Type'Size use 7 * 20;
--   for array_Type'alignment use 1;

   type Record2 is
      record
         Page_Tree_Index : Range_A;
         Page_Tree : Array_Type;
      end record;

   for Record2 use
      record
         Page_Tree_Index at 0 range 0 .. 15;
         Page_Tree at 0 range 16 .. 15 + (7 * 20);
      end record;
   for Record2'Size use 16 + (7 * 20);

end Rep_Clause3;