aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJeff Law <law@redhat.com>2014-01-17 10:50:10 -0700
committerJeff Law <law@gcc.gnu.org>2014-01-17 10:50:10 -0700
commit4ee5c75293ba06e0ce83479134eed69fe08070a5 (patch)
tree2174f734fb733aa40ea263276a82ee2797d9893c
parent40cfac7c7ee1989d80b0a1535c3747ab57769604 (diff)
downloadgcc-4ee5c75293ba06e0ce83479134eed69fe08070a5.zip
gcc-4ee5c75293ba06e0ce83479134eed69fe08070a5.tar.gz
gcc-4ee5c75293ba06e0ce83479134eed69fe08070a5.tar.bz2
re PR middle-end/57904 (Bogus(?) "invokes undefined behavior" warning with Fortran's finalization wrapper (gfortran.dg/class_48.f90))
PR middle-end/57904 * passes.def: Reorder pass_copy_prop, pass_unrolli, pass_ccp sequence so that pass_ccp runs first. PR middle-end/57904 * gfortran.dg/pr57904.f90: New test. From-SVN: r206723
-rw-r--r--gcc/ChangeLog6
-rw-r--r--gcc/passes.def4
-rw-r--r--gcc/testsuite/ChangeLog5
-rw-r--r--gcc/testsuite/gfortran.dg/pr57904.f9022
4 files changed, 35 insertions, 2 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 9a2160d..76f5c6e 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,9 @@
+2014-01-17 Jeff Law <law@redhat.com>
+
+ PR middle-end/57904
+ * passes.def: Reorder pass_copy_prop, pass_unrolli, pass_ccp sequence
+ so that pass_ccp runs first.
+
2014-01-17 H.J. Lu <hongjiu.lu@intel.com>
* config/i386/i386.c (ix86_lea_outperforms): Use TARGET_XXX.
diff --git a/gcc/passes.def b/gcc/passes.def
index 95ea8ce..c98b048 100644
--- a/gcc/passes.def
+++ b/gcc/passes.def
@@ -132,11 +132,11 @@ along with GCC; see the file COPYING3. If not see
They ensure memory accesses are not indirect wherever possible. */
NEXT_PASS (pass_strip_predict_hints);
NEXT_PASS (pass_rename_ssa_copies);
- NEXT_PASS (pass_copy_prop);
- NEXT_PASS (pass_complete_unrolli);
NEXT_PASS (pass_ccp);
/* After CCP we rewrite no longer addressed locals into SSA
form if possible. */
+ NEXT_PASS (pass_copy_prop);
+ NEXT_PASS (pass_complete_unrolli);
NEXT_PASS (pass_phiprop);
NEXT_PASS (pass_forwprop);
NEXT_PASS (pass_object_sizes);
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 98bc528..5d80c8e 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,8 @@
+2014-01-17 Jeff Law <law@redhat.com>
+
+ PR middle-end/57904
+ * gfortran.dg/pr57904.f90: New test.
+
2014-01-17 Paolo Carlini <paolo.carlini@oracle.com>
PR c++/59269
diff --git a/gcc/testsuite/gfortran.dg/pr57904.f90 b/gcc/testsuite/gfortran.dg/pr57904.f90
new file mode 100644
index 0000000..69fa7ed
--- /dev/null
+++ b/gcc/testsuite/gfortran.dg/pr57904.f90
@@ -0,0 +1,22 @@
+! { dg-do compile }
+! { dg-options "-O2" }
+
+program test
+ call test2 ()
+contains
+ subroutine test2 ()
+ type t
+ integer, allocatable :: x
+ end type t
+
+ type t2
+ class(t), allocatable :: a
+ end type t2
+
+ type(t2) :: one, two
+
+ allocate (two%a)
+ one = two
+ end subroutine test2
+end program test
+