summaryrefslogtreecommitdiff
path: root/gcc/testsuite/gnat.dg/aggr1.adb
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/testsuite/gnat.dg/aggr1.adb')
-rw-r--r--gcc/testsuite/gnat.dg/aggr1.adb50
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;