aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gcc/testsuite/ChangeLog5
-rw-r--r--gcc/testsuite/gnat.dg/specs/aggr4.ads9
-rw-r--r--gcc/testsuite/gnat.dg/specs/aggr4_pkg.ads26
3 files changed, 40 insertions, 0 deletions
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index ecf16a1..bd91d58 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,8 @@
+2012-02-10 Eric Botcazou <ebotcazou@adacore.com>
+
+ * gnat.dg/specs/aggr4.ads: New test.
+ * gnat.dg/specs/aggr4_pkg.ads: New helper.
+
2012-02-10 H.J. Lu <hongjiu.lu@intel.com>
PR target/52146
diff --git a/gcc/testsuite/gnat.dg/specs/aggr4.ads b/gcc/testsuite/gnat.dg/specs/aggr4.ads
new file mode 100644
index 0000000..4cdf652
--- /dev/null
+++ b/gcc/testsuite/gnat.dg/specs/aggr4.ads
@@ -0,0 +1,9 @@
+-- { dg-do compile }
+
+with Aggr4_Pkg; use Aggr4_Pkg;
+
+package Aggr4 is
+
+ C : constant Rec3 := (Data => (D => One, Value => Zero));
+
+end Aggr4;
diff --git a/gcc/testsuite/gnat.dg/specs/aggr4_pkg.ads b/gcc/testsuite/gnat.dg/specs/aggr4_pkg.ads
new file mode 100644
index 0000000..c0f3c8c
--- /dev/null
+++ b/gcc/testsuite/gnat.dg/specs/aggr4_pkg.ads
@@ -0,0 +1,26 @@
+-- { dg-excess-errors "cannot generate code" }
+
+package Aggr4_Pkg is
+
+ function F return Integer;
+
+ type Rec1 is tagged record
+ I : Integer;
+ end record;
+
+ Zero : constant Rec1 := (I => F);
+
+ type Enum is (One, Two);
+
+ type Rec2 (D : Enum := One) is record
+ case D is
+ when One => Value : Rec1;
+ when others => null;
+ end case;
+ end record;
+
+ type Rec3 is record
+ Data : Rec2;
+ end record;
+
+end Aggr4_Pkg;