diff options
author | Andrew Pinski <pinskia@gmail.com> | 2007-10-28 10:00:54 -0700 |
---|---|---|
committer | Andrew Pinski <pinskia@gcc.gnu.org> | 2007-10-28 10:00:54 -0700 |
commit | 6f17d116b739645d9c331ffb4b741eebbfb69a5c (patch) | |
tree | fad15e9d1f8f69570d92a62e3714608f221b5abf /gcc/tree-outof-ssa.c | |
parent | eee717aa54264d9a11d842c4545384620227f0e4 (diff) | |
download | gcc-6f17d116b739645d9c331ffb4b741eebbfb69a5c.tar.gz |
re PR middle-end/33589 (ICE on valid code at -O2: verify_flow_info failed)
2007-10-28 Andrew Pinski <pinskia@gmail.com>
PR tree-opt/33589
* tree-outof-ssa.c (rewrite_trees): If the statement changed, cleanup
the eh information on the statement.
2007-10-28 Andrew Pinski <pinskia@gmail.com>
PR tree-opt/33589
* g++.dg/torture/pr33589-1.C: New testcase.
* g++.dg/torture/pr33589-2.C: New testcase.
From-SVN: r129700
Diffstat (limited to 'gcc/tree-outof-ssa.c')
-rw-r--r-- | gcc/tree-outof-ssa.c | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/gcc/tree-outof-ssa.c b/gcc/tree-outof-ssa.c index d01c663b2c5..fd22d327fe9 100644 --- a/gcc/tree-outof-ssa.c +++ b/gcc/tree-outof-ssa.c @@ -758,7 +758,12 @@ rewrite_trees (var_map map, tree *values) if (remove) bsi_remove (&si, true); else - bsi_next (&si); + { + if (changed) + if (maybe_clean_or_replace_eh_stmt (stmt, stmt)) + tree_purge_dead_eh_edges (bb); + bsi_next (&si); + } } phi = phi_nodes (bb); |