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