diff options
author | Eric Botcazou <ebotcazou@adacore.com> | 2011-12-19 19:17:10 +0000 |
---|---|---|
committer | Eric Botcazou <ebotcazou@gcc.gnu.org> | 2011-12-19 19:17:10 +0000 |
commit | a062c51e003b7b03989e13604553c4217b76d0c7 (patch) | |
tree | e1bde4ec47f89af5ed91249b36394c424912b1bc | |
parent | f7593cb4c6cf026f8293ea7634eb49f5639a1b92 (diff) | |
download | gcc-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
-rw-r--r-- | gcc/testsuite/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/testsuite/gnat.dg/specs/loop_optimization1.ads | 14 | ||||
-rw-r--r-- | gcc/testsuite/gnat.dg/specs/loop_optimization1_pkg.adb | 16 | ||||
-rw-r--r-- | gcc/testsuite/gnat.dg/specs/loop_optimization1_pkg.ads | 13 |
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; |