diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 9aa6e8e5079..9602625ace4 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2012-09-23 Eric Botcazou + + PR tree-optimization/54669 + * tree-ssa-loop-ivcanon.c (propagate_into_all_uses): Invoke + maybe_clean_or_replace_eh_stmt on the modified use statements. + 2012-09-23 Marc Glisse * expr.c (do_store_flag): Remove duplicated code. diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index c7d950d7cff..a677859668a 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,10 +1,14 @@ +2012-09-23 Eric Botcazou + + * gcc.dg/pr54669.c: New test. + 2012-09-23 Paolo Carlini Dominique Dhumieres PR testsuite/54677 * g++.dg/cpp0x/decltype32.C: Add -ftemplate-depth=10. -2012-09-2323 Tobias Burnus +2012-09-23 Tobias Burnus PR fortran/54618 * gfortran.dg/class_array_14.f90: New. diff --git a/gcc/testsuite/gcc.dg/pr54669.c b/gcc/testsuite/gcc.dg/pr54669.c new file mode 100644 index 00000000000..3868ae691da --- /dev/null +++ b/gcc/testsuite/gcc.dg/pr54669.c @@ -0,0 +1,22 @@ +/* PR tree-optimization/54669 */ +/* Testcase by Zdenek Sojka */ + +/* { dg-compile } */ +/* { dg-options "-O2 -fexceptions -fnon-call-exceptions" } */ + +int a[10]; + +void +foo (void) +{ + int x; + int i; + for (i = 0; i < 1;) + { + int b[3]; + for (i = 0; i < 1; i++) + b[i] = a[i]; + if (&x) + a[0] = b[0]; + } +} diff --git a/gcc/tree-ssa-loop-ivcanon.c b/gcc/tree-ssa-loop-ivcanon.c index 1e44dd4c735..b790e1f43cc 100644 --- a/gcc/tree-ssa-loop-ivcanon.c +++ b/gcc/tree-ssa-loop-ivcanon.c @@ -531,6 +531,7 @@ propagate_into_all_uses (tree ssa_name, tree val) fold_stmt_inplace (&use_stmt_gsi); update_stmt (use_stmt); + maybe_clean_or_replace_eh_stmt (use_stmt, use_stmt); } }