aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorEric Botcazou <ebotcazou@adacore.com>2011-12-19 19:17:10 +0000
committerEric Botcazou <ebotcazou@gcc.gnu.org>2011-12-19 19:17:10 +0000
commita062c51e003b7b03989e13604553c4217b76d0c7 (patch)
treee1bde4ec47f89af5ed91249b36394c424912b1bc /gcc
parentf7593cb4c6cf026f8293ea7634eb49f5639a1b92 (diff)
downloadgcc-a062c51e003b7b03989e13604553c4217b76d0c7.zip
gcc-a062c51e003b7b03989e13604553c4217b76d0c7.tar.gz
gcc-a062c51e003b7b03989e13604553c4217b76d0c7.tar.bz2
re PR tree-optimization/51580 (segfault during loop vectorization at -O3)
PR tree-optimization/51580 * gnat.dg/specs/loop_optimization1.ads: New test. * gnat.dg/specs/loop_optimization1_pkg.ad[sb]: New helper. From-SVN: r182491
Diffstat (limited to 'gcc')
-rw-r--r--gcc/testsuite/ChangeLog6
-rw-r--r--gcc/testsuite/gnat.dg/specs/loop_optimization1.ads14
-rw-r--r--gcc/testsuite/gnat.dg/specs/loop_optimization1_pkg.adb16
-rw-r--r--gcc/testsuite/gnat.dg/specs/loop_optimization1_pkg.ads13
4 files changed, 49 insertions, 0 deletions
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index fcbed1e..f74bad7 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,9 @@
+2011-12-19 Eric Botcazou <ebotcazou@adacore.com>
+
+ PR tree-optimization/51580
+ * gnat.dg/specs/loop_optimization1.ads: New test.
+ * gnat.dg/specs/loop_optimization1_pkg.ad[sb]: New helper.
+
2011-12-19 Richard Guenther <rguenther@suse.de>
PR lto/51573
diff --git a/gcc/testsuite/gnat.dg/specs/loop_optimization1.ads b/gcc/testsuite/gnat.dg/specs/loop_optimization1.ads
new file mode 100644
index 0000000..020ddcd
--- /dev/null
+++ b/gcc/testsuite/gnat.dg/specs/loop_optimization1.ads
@@ -0,0 +1,14 @@
+-- { dg-do compile }
+-- { dg-options "-O3" }
+
+with Loop_Optimization1_Pkg;
+
+package Loop_Optimization1 is
+
+ type Kind_Type is (One, Two, Three, Four);
+ type Array_Type is array (Kind_Type) of Boolean;
+ pragma Pack (Array_Type);
+
+ package Q is new Loop_Optimization1_Pkg (Boolean, Kind_Type, Array_Type);
+
+end Loop_Optimization1;
diff --git a/gcc/testsuite/gnat.dg/specs/loop_optimization1_pkg.adb b/gcc/testsuite/gnat.dg/specs/loop_optimization1_pkg.adb
new file mode 100644
index 0000000..f55dbb0
--- /dev/null
+++ b/gcc/testsuite/gnat.dg/specs/loop_optimization1_pkg.adb
@@ -0,0 +1,16 @@
+package body Loop_Optimization1_Pkg is
+
+ type Unconstrained_Array_Type
+ is array (Index_Type range <>) of Element_Type;
+
+ procedure Local (UA : in out Unconstrained_Array_Type) is
+ begin
+ null;
+ end;
+
+ procedure Proc (CA : in out Constrained_Array_Type) is
+ begin
+ Local (Unconstrained_Array_Type (CA));
+ end;
+
+end Loop_Optimization1_Pkg;
diff --git a/gcc/testsuite/gnat.dg/specs/loop_optimization1_pkg.ads b/gcc/testsuite/gnat.dg/specs/loop_optimization1_pkg.ads
new file mode 100644
index 0000000..577b3a2
--- /dev/null
+++ b/gcc/testsuite/gnat.dg/specs/loop_optimization1_pkg.ads
@@ -0,0 +1,13 @@
+-- { dg-excess-errors "no code generated" }
+
+generic
+
+ type Element_Type is private;
+ type Index_Type is (<>);
+ type Constrained_Array_Type is array (Index_Type) of Element_Type;
+
+package Loop_Optimization1_Pkg is
+
+ procedure Proc (CA : in out Constrained_Array_Type);
+
+end Loop_Optimization1_Pkg;