aboutsummaryrefslogtreecommitdiff
path: root/gcc/tree-ssa-sccvn.c
diff options
context:
space:
mode:
authorRichard Biener <rguenther@suse.de>2018-09-17 10:21:21 +0000
committerRichard Biener <rguenth@gcc.gnu.org>2018-09-17 10:21:21 +0000
commitecfb64f692c561ef16bca0ff17b3d7e9ee14b418 (patch)
tree4dea08a33e31624b173fce6f88262bcff5da2738 /gcc/tree-ssa-sccvn.c
parentdda107dfb419d4272fdd10ccec93948d9fc7b6ba (diff)
downloadgcc-ecfb64f692c561ef16bca0ff17b3d7e9ee14b418.zip
gcc-ecfb64f692c561ef16bca0ff17b3d7e9ee14b418.tar.gz
gcc-ecfb64f692c561ef16bca0ff17b3d7e9ee14b418.tar.bz2
re PR tree-optimization/87301 (ICE: verify_gimple failed (error: statement marked for throw, but doesn't))
2018-09-17 Richard Biener <rguenther@suse.de> PR tree-optimization/87301 * tree-ssa-sccvn.c (eliminate_dom_walker::eliminate_cleanup): Properly clean EH info from leftover copy assignments. * gcc.dg/torture/pr87301.c: New testcase. From-SVN: r264364
Diffstat (limited to 'gcc/tree-ssa-sccvn.c')
-rw-r--r--gcc/tree-ssa-sccvn.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/gcc/tree-ssa-sccvn.c b/gcc/tree-ssa-sccvn.c
index 1c95306..a9e4d34 100644
--- a/gcc/tree-ssa-sccvn.c
+++ b/gcc/tree-ssa-sccvn.c
@@ -5461,7 +5461,10 @@ eliminate_dom_walker::eliminate_cleanup (bool region_p)
if (is_gimple_assign (stmt))
{
gimple_assign_set_rhs_from_tree (&gsi, sprime);
- update_stmt (gsi_stmt (gsi));
+ stmt = gsi_stmt (gsi);
+ update_stmt (stmt);
+ if (maybe_clean_or_replace_eh_stmt (stmt, stmt))
+ bitmap_set_bit (need_eh_cleanup, gimple_bb (stmt)->index);
continue;
}
else