opt62.adb: New test.
authorEric Botcazou <ebotcazou@adacore.com>
Mon, 16 Jan 2017 08:46:20 +0000 (08:46 +0000)
committerEric Botcazou <ebotcazou@gcc.gnu.org>
Mon, 16 Jan 2017 08:46:20 +0000 (08:46 +0000)
* gnat.dg/opt62.adb: New test.
* gnat.dg/opt62_pkg.ads: New helper.

From-SVN: r244485

gcc/testsuite/ChangeLog
gcc/testsuite/gnat.dg/opt62.adb [new file with mode: 0644]
gcc/testsuite/gnat.dg/opt62_pkg.ads [new file with mode: 0644]

index 625c99a7d22222cce936964aebd74656cde8fb54..7e5731e510d864904a9a7084f6fa16a956bb978f 100644 (file)
@@ -1,3 +1,8 @@
+2017-01-16  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * gnat.dg/opt62.adb: New test.
+       * gnat.dg/opt62_pkg.ads: New helper.
+
 2017-01-14  Bernd Schmidt  <bschmidt@redhat.com>
 
         PR rtl-optimization/78626
diff --git a/gcc/testsuite/gnat.dg/opt62.adb b/gcc/testsuite/gnat.dg/opt62.adb
new file mode 100644 (file)
index 0000000..eb7a806
--- /dev/null
@@ -0,0 +1,15 @@
+-- { dg-do run }
+-- { dg-options "-O" }
+
+with Opt62_Pkg; use Opt62_Pkg;
+
+procedure Opt62 is
+
+   String5  : String(1..5)  := "12345";
+   D: Der := (Unconstrained_Der with D2 => 5, S2 => String5);
+
+begin
+   if D.Str1 /= "abcde" then
+      raise Program_Error;
+   end if;
+end;
diff --git a/gcc/testsuite/gnat.dg/opt62_pkg.ads b/gcc/testsuite/gnat.dg/opt62_pkg.ads
new file mode 100644 (file)
index 0000000..348ee0b
--- /dev/null
@@ -0,0 +1,19 @@
+package Opt62_Pkg is
+
+   Default_String : constant String := "This is a default string";
+
+   subtype Length is Natural range 0..255;
+
+   type Root (D1 : Length) is tagged  record
+      S1  : String(1..D1) := Default_String(1..D1);
+   end record;
+
+   type Unconstrained_Der is new Root with  record
+      Str1 : String(1..5) := "abcde";
+   end record;
+
+   type Der (D2 : Length) is new Unconstrained_Der (D1 => 10) with record
+      S2 : String(1..D2);
+   end record;
+
+end Opt62_Pkg;