diff options
author | Richard Guenther <rguenther@suse.de> | 2012-04-20 10:17:46 +0000 |
---|---|---|
committer | Richard Biener <rguenth@gcc.gnu.org> | 2012-04-20 10:17:46 +0000 |
commit | 4cbc836ed7d6a17696e1bebfeca37582b199ce41 (patch) | |
tree | 092f1ecbcb4b5054b625106893dd5f673a1094ef /gcc | |
parent | efb496b5dcb68ac5885e6f20ea3c00b002ee5831 (diff) | |
download | gcc-4cbc836ed7d6a17696e1bebfeca37582b199ce41.zip gcc-4cbc836ed7d6a17696e1bebfeca37582b199ce41.tar.gz gcc-4cbc836ed7d6a17696e1bebfeca37582b199ce41.tar.bz2 |
re PR c++/53050 (ssa_forward_propagate_and_combine: segmentation fault)
2012-04-20 Richard Guenther <rguenther@suse.de>
PR tree-optimization/53050
* tree-ssa-forwprop.c (ssa_forward_propagate_and_combine):
Do only one transform on COND_EXPRs at the same time.
From-SVN: r186620
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/tree-ssa-forwprop.c | 9 |
2 files changed, 12 insertions, 3 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 4c8825d..f1d9799a 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2012-04-20 Richard Guenther <rguenther@suse.de> + + PR tree-optimization/53050 + * tree-ssa-forwprop.c (ssa_forward_propagate_and_combine): + Do only one transform on COND_EXPRs at the same time. + 2012-04-19 Jan Hubicka <jh@suse.cz> * symtab.c (dump_symtab_base): Revert accidental checkin. diff --git a/gcc/tree-ssa-forwprop.c b/gcc/tree-ssa-forwprop.c index 3e2371b..965f441 100644 --- a/gcc/tree-ssa-forwprop.c +++ b/gcc/tree-ssa-forwprop.c @@ -2536,9 +2536,12 @@ ssa_forward_propagate_and_combine (void) || code == VEC_COND_EXPR) { /* In this case the entire COND_EXPR is in rhs1. */ - changed |= forward_propagate_into_cond (&gsi); - changed |= combine_cond_exprs (&gsi); - stmt = gsi_stmt (gsi); + if (forward_propagate_into_cond (&gsi) + || combine_cond_exprs (&gsi)) + { + changed = true; + stmt = gsi_stmt (gsi); + } } else if (TREE_CODE_CLASS (code) == tcc_comparison) { |