re PR tree-optimization/71462 (gcc ICE at -O3 on valid code on x86_64-linux-gnu with “seg fault”)

2016-06-09  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/71462
	* tree-ssa-loop-manip.c (find_uses_to_rename): Guard against
	removed blocks.

	* gcc.dg/torture/pr71462.c: New testcase.

From-SVN: r237254
This commit is contained in:
Richard Biener 2016-06-09 11:36:22 +00:00 committed by Richard Biener
parent 28cd6814b5
commit 36d5798666
4 changed files with 44 additions and 2 deletions

View File

@ -1,3 +1,9 @@
2016-06-09 Richard Biener <rguenther@suse.de>
PR tree-optimization/71462
* tree-ssa-loop-manip.c (find_uses_to_rename): Guard against
removed blocks.
2016-06-09 Martin Liska <mliska@suse.cz>
* predict.c (filter_predictions): New function.

View File

@ -1,3 +1,8 @@
2016-06-09 Richard Biener <rguenther@suse.de>
PR tree-optimization/71462
* gcc.dg/torture/pr71462.c: New testcase.
2016-06-09 Marek Polacek <polacek@redhat.com>
PR c/65471

View File

@ -0,0 +1,28 @@
/* { dg-do compile } */
short a;
long b;
void fn1()
{
int c = a = 1;
for (; a; a++)
{
for (; 9 <= 8;)
for (;;) {
a = 20;
for (; a <= 35; a++)
;
line:;
}
if ((c += 264487869) == 9)
{
unsigned *d = 0;
for (; b;)
d = (unsigned *)&c;
if (d)
for (;;)
;
}
}
goto line;
}

View File

@ -472,8 +472,11 @@ find_uses_to_rename (bitmap changed_bbs, bitmap *use_blocks, bitmap need_phis,
if (changed_bbs)
EXECUTE_IF_SET_IN_BITMAP (changed_bbs, 0, index, bi)
find_uses_to_rename_bb (BASIC_BLOCK_FOR_FN (cfun, index), use_blocks,
need_phis, use_flags);
{
bb = BASIC_BLOCK_FOR_FN (cfun, index);
if (bb)
find_uses_to_rename_bb (bb, use_blocks, need_phis, use_flags);
}
else
FOR_EACH_BB_FN (bb, cfun)
find_uses_to_rename_bb (bb, use_blocks, need_phis, use_flags);