summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorebotcazou <ebotcazou@138bc75d-0d04-0410-961f-82ee72b054a4>2015-10-31 17:13:32 +0000
committerebotcazou <ebotcazou@138bc75d-0d04-0410-961f-82ee72b054a4>2015-10-31 17:13:32 +0000
commitce2ac1629f0aa497f2fc4577e30ce15d7f3fdee6 (patch)
treef536e79c2fe31aed240c9849213c1590071f979c
parent433fc17c1863c9dbdf232263785d144f50a480ff (diff)
downloadgcc-ce2ac1629f0aa497f2fc4577e30ce15d7f3fdee6.tar.gz
* gnat.dg/discr45.adb: New test.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@229630 138bc75d-0d04-0410-961f-82ee72b054a4
-rw-r--r--gcc/testsuite/ChangeLog4
-rw-r--r--gcc/testsuite/gnat.dg/discr45.adb44
2 files changed, 48 insertions, 0 deletions
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 85dff2ef2f7..d6956cf95ff 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,7 @@
+2015-10-31 Eric Botcazou <ebotcazou@adacore.com>
+
+ * gnat.dg/discr45.adb: New test.
+
2015-10-31 Tom de Vries <tom@codesourcery.com>
* gfortran.dg/assumed_type_2.f90: Update test.
diff --git a/gcc/testsuite/gnat.dg/discr45.adb b/gcc/testsuite/gnat.dg/discr45.adb
new file mode 100644
index 00000000000..0d0b4dc6926
--- /dev/null
+++ b/gcc/testsuite/gnat.dg/discr45.adb
@@ -0,0 +1,44 @@
+-- { dg-do run }
+-- { dg-options "-O2 -gnatws" }
+
+procedure Discr45 is
+
+ function Ident_Int (I : Integer) return Integer is
+ begin
+ return I;
+ end;
+
+ procedure Proc (Signal : Boolean) is
+
+ subtype Index is Integer range 1..10;
+
+ type My_Arr is array (Index range <>) OF Integer;
+
+ type Rec (D3 : Integer := Ident_Int(1)) is record
+ case D3 is
+ when -5..10 => C1 : My_Arr(D3..Ident_Int(11));
+ when Others => C2 : Integer := Ident_Int(5);
+ end case;
+ end record;
+
+ X : Rec;
+
+ function Value return Rec;
+ pragma No_Inline (Value);
+
+ function Value return Rec is
+ begin
+ return X;
+ end;
+
+ begin
+ if X /= Value then
+ raise Constraint_Error;
+ elsif Signal then
+ raise Program_Error;
+ end if;
+ end;
+
+begin
+ Proc (True);
+end;