aboutsummaryrefslogtreecommitdiff
path: root/gcc/tree-cfg.c
diff options
context:
space:
mode:
authorJakub Jelinek <jakub@redhat.com>2011-12-19 15:24:29 +0100
committerJakub Jelinek <jakub@gcc.gnu.org>2011-12-19 15:24:29 +0100
commit77753f4dae3cd3188442e3137e6a4c4040d6e644 (patch)
treecc979d911c17471d4103c96caf085aed7e44c878 /gcc/tree-cfg.c
parent083481d85c2d1ee12392667f9b74ea404872b988 (diff)
downloadgcc-77753f4dae3cd3188442e3137e6a4c4040d6e644.zip
gcc-77753f4dae3cd3188442e3137e6a4c4040d6e644.tar.gz
gcc-77753f4dae3cd3188442e3137e6a4c4040d6e644.tar.bz2
re PR tree-optimization/51596 (ICE: verify_flow_info failed: BB 6 can not throw but has an EH edge with -fnon-call-exceptions)
PR tree-optimization/51596 * tree-cfg.c (replace_uses_by): Call gimple_purge_dead_eh_edges when needed. * g++.dg/opt/pr51596.C: New test. From-SVN: r182481
Diffstat (limited to 'gcc/tree-cfg.c')
-rw-r--r--gcc/tree-cfg.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/gcc/tree-cfg.c b/gcc/tree-cfg.c
index cd77942..df5695c 100644
--- a/gcc/tree-cfg.c
+++ b/gcc/tree-cfg.c
@@ -1627,7 +1627,8 @@ replace_uses_by (tree name, tree val)
if (fold_stmt (&gsi))
stmt = gsi_stmt (gsi);
- maybe_clean_or_replace_eh_stmt (orig_stmt, stmt);
+ if (maybe_clean_or_replace_eh_stmt (orig_stmt, stmt))
+ gimple_purge_dead_eh_edges (gimple_bb (stmt));
update_stmt (stmt);
}