aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorZdenek Dvorak <dvorakz@suse.cz>2005-09-02 11:04:45 +0200
committerZdenek Dvorak <rakdver@gcc.gnu.org>2005-09-02 09:04:45 +0000
commitb8c4f9a4ce7eafd29a90298d51cd50294fe8d8a7 (patch)
tree10236ee46b4efd9dc1aaaac43b3eeb7e281af3ba
parent73eb8cb64276f52ab72b11a09534dbe293910e0b (diff)
downloadgcc-b8c4f9a4ce7eafd29a90298d51cd50294fe8d8a7.zip
gcc-b8c4f9a4ce7eafd29a90298d51cd50294fe8d8a7.tar.gz
gcc-b8c4f9a4ce7eafd29a90298d51cd50294fe8d8a7.tar.bz2
re PR tree-optimization/23626 (ICE after cunrolling)
PR tree-optimization/23626 * tree-cfg.c (replace_uses_by): Clean up eh info. From-SVN: r103766
-rw-r--r--gcc/ChangeLog5
-rw-r--r--gcc/tree-cfg.c4
2 files changed, 9 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 4437e82..44b66fb 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,8 @@
+2005-09-02 Zdenek Dvorak <dvorakz@suse.cz>
+
+ PR tree-optimization/23626
+ * tree-cfg.c (replace_uses_by): Clean up eh info.
+
2005-09-01 DJ Delorie <dj@redhat.com>
* config/m32c/m32c.c (m32c_valid_pointer_mode): Remove stray debug
diff --git a/gcc/tree-cfg.c b/gcc/tree-cfg.c
index 7a0bf1b..df97058 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);
}