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
This commit is contained in:
Richard Biener 2018-09-17 10:21:21 +00:00 committed by Richard Biener
parent dda107dfb4
commit ecfb64f692
4 changed files with 49 additions and 1 deletions

View File

@ -1,3 +1,9 @@
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.
2018-09-17 Martin Liska <mliska@suse.cz>
PR gcov-profile/85871

View File

@ -1,3 +1,8 @@
2018-09-17 Richard Biener <rguenther@suse.de>
PR tree-optimization/87301
* gcc.dg/torture/pr87301.c: New testcase.
2018-09-17 Paul Thomas <pault@gcc.gnu.org>
PR fortran/85954

View File

@ -0,0 +1,34 @@
/* { dg-do compile } */
/* { dg-additional-options "-Wno-div-by-zero" } */
void
bl (int *be)
{
int lo;
{
int **ny;
if (*be == 0)
{
int ***k8 = &ny;
int uj = (__INTPTR_TYPE__)&lo;
for (;;)
if (***k8 == 0)
{
uj = !!(1 / 0) ? !(lo = 0) : 0;
(void) uj;
if (*ny == 0)
for (;;)
if (***k8 == 0)
{
}
for (lo = 0; lo < 2; ++lo)
{
}
}
}
}
}

View File

@ -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