-- { dg-do run } procedure aggr1 is package Coord is type T is private; private type T is record A, B, C : Float; end record; end Coord; -- generic type T is private; package gen is type Rec (Discr : Boolean := True) is record needs_update : Boolean; case Discr is when True => null; when False => Value : T; end case; end record; end gen; -- subtype Graph_Range is integer range 1..1665; type arr is array (Graph_Range) of Coord.T; -- package Inst is new Gen (arr); -- subtype Index is integer range 1 .. 1; -- type Graph_Node (Active : Boolean := False) is record case Active is when True => Comp1 : Inst.Rec; Comp2 : Inst.Rec; Comp3 : Inst.Rec; when False => Needs_Update : Boolean; end case; end record; -- Null_Graph_Node : constant Graph_Node := (False, True); type Graph_Table_T is array (Index) of Graph_Node; -- Graph_Table : Graph_Table_T := (others => (Null_Graph_Node)); Graph_Table_1 : Graph_Table_T := (others => (False, True)); begin null; end;