diff options
Diffstat (limited to 'gcc/testsuite/gnat.dg/aggr1.adb')
-rw-r--r-- | gcc/testsuite/gnat.dg/aggr1.adb | 50 |
1 files changed, 50 insertions, 0 deletions
diff --git a/gcc/testsuite/gnat.dg/aggr1.adb b/gcc/testsuite/gnat.dg/aggr1.adb new file mode 100644 index 000000000..256b3951b --- /dev/null +++ b/gcc/testsuite/gnat.dg/aggr1.adb @@ -0,0 +1,50 @@ +-- { 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; |