cfgrtl.c (purge_dead_edges): Don't remove fake edges.

2005-05-18  Daniel Berlin  <dberlin@dberlin.org>

	* cfgrtl.c (purge_dead_edges): Don't remove fake edges.

From-SVN: r99897
This commit is contained in:
Daniel Berlin 2005-05-18 13:29:38 +00:00 committed by Daniel Berlin
parent 23e66a36cb
commit 2afa8dceda
2 changed files with 8 additions and 1 deletions

View File

@ -1,3 +1,7 @@
2005-05-18 Daniel Berlin <dberlin@dberlin.org>
* cfgrtl.c (purge_dead_edges): Don't remove fake edges.
2005-05-18 Daniel Berlin <dberlin@dberlin.org>
Fix PR tree-optimization/21407

View File

@ -2428,9 +2428,12 @@ purge_dead_edges (basic_block bb)
if (!found)
return purged;
/* Remove all but the fake and fallthru edges. The fake edge may be
the only successor for this block in the case of noreturn
calls. */
for (ei = ei_start (bb->succs); (e = ei_safe_edge (ei)); )
{
if (!(e->flags & EDGE_FALLTHRU))
if (!(e->flags & (EDGE_FALLTHRU | EDGE_FAKE)))
{
bb->flags |= BB_DIRTY;
remove_edge (e);