1-- { dg-do run }
2
3procedure aggr1 is
4   package Coord is
5      type T is private;
6   private
7      type T is record
8          A, B, C : Float;
9      end record;
10   end Coord;
11--
12   generic
13      type T is private;
14   package gen is
15      type Rec (Discr : Boolean := True) is record
16         needs_update : Boolean;
17         case Discr is
18            when True => null;
19            when False =>  Value : T;
20         end case;
21      end record;
22   end gen;
23--
24   subtype Graph_Range is integer range 1..1665;
25   type arr is array (Graph_Range) of Coord.T;
26--
27   package Inst is new Gen (arr);
28--
29   subtype Index is integer range 1 .. 1;
30--
31   type Graph_Node (Active : Boolean := False) is
32      record
33         case Active is
34            when True =>
35               Comp1 : Inst.Rec;
36               Comp2 : Inst.Rec;
37               Comp3 : Inst.Rec;
38            when False =>
39               Needs_Update : Boolean;
40         end case;
41      end record;
42--
43   Null_Graph_Node : constant Graph_Node := (False, True);
44   type Graph_Table_T is array (Index) of Graph_Node;
45--
46   Graph_Table   : Graph_Table_T := (others => (Null_Graph_Node));
47   Graph_Table_1 : Graph_Table_T := (others => (False, True));
48begin
49   null;
50end;
51