summaryrefslogtreecommitdiff
path: root/gcc/tree-cfg.c
diff options
context:
space:
mode:
authorrakdver <rakdver@138bc75d-0d04-0410-961f-82ee72b054a4>2005-09-02 09:04:45 +0000
committerrakdver <rakdver@138bc75d-0d04-0410-961f-82ee72b054a4>2005-09-02 09:04:45 +0000
commit3f9ee09bb6be862877da4abe16f8dc234cd932e1 (patch)
tree10236ee46b4efd9dc1aaaac43b3eeb7e281af3ba /gcc/tree-cfg.c
parent7263538cfcd0dede0932f0b3d8ffde2a4c64f533 (diff)
downloadgcc-3f9ee09bb6be862877da4abe16f8dc234cd932e1.tar.gz
PR tree-optimization/23626
* tree-cfg.c (replace_uses_by): Clean up eh info. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@103766 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/tree-cfg.c')
-rw-r--r--gcc/tree-cfg.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/gcc/tree-cfg.c b/gcc/tree-cfg.c
index 7a0bf1b9102..df97058afe2 100644
--- a/gcc/tree-cfg.c
+++ b/gcc/tree-cfg.c
@@ -1273,6 +1273,10 @@ replace_uses_by (tree name, tree val)
if (TREE_CODE (rhs) == ADDR_EXPR)
recompute_tree_invarant_for_addr_expr (rhs);
+ /* If the statement could throw and now cannot, we need to prune cfg. */
+ if (maybe_clean_or_replace_eh_stmt (stmt, stmt))
+ tree_purge_dead_eh_edges (bb_for_stmt (stmt));
+
mark_new_vars_to_rename (stmt);
}