tree-ssa-reassoc.c (reassociate_bb): Properly reset the statement iterator after statement removal.

2008-08-18  Richard Guenther  <rguenther@suse.de>

	* tree-ssa-reassoc.c (reassociate_bb): Properly reset the
	statement iterator after statement removal.

From-SVN: r139201
This commit is contained in:
Richard Guenther 2008-08-18 15:36:15 +00:00 committed by Richard Biener
parent 5289e80852
commit e46587281e
2 changed files with 17 additions and 0 deletions

View File

@ -1,3 +1,8 @@
2008-08-18 Richard Guenther <rguenther@suse.de>
* tree-ssa-reassoc.c (reassociate_bb): Properly reset the
statement iterator after statement removal.
2008-08-18 Andreas Tobler <a.tobler@schweiz.org>
* config/rs6000/driver-rs6000.c (detect_caches_freebsd): New function.

View File

@ -1771,6 +1771,18 @@ reassociate_bb (basic_block bb)
{
gsi_remove (&gsi, true);
release_defs (stmt);
/* We might end up removing the last stmt above which
places the iterator to the end of the sequence.
Reset it to the last stmt in this case which might
be the end of the sequence as well if we removed
the last statement of the sequence. In which case
we need to bail out. */
if (gsi_end_p (gsi))
{
gsi = gsi_last_bb (bb);
if (gsi_end_p (gsi))
break;
}
}
continue;
}