diff options
author | Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz> | 2003-10-08 00:14:07 +0200 |
---|---|---|
committer | Zdenek Dvorak <rakdver@gcc.gnu.org> | 2003-10-07 22:14:07 +0000 |
commit | 3ed961a056fa188b2a709183fa66c91a558589b2 (patch) | |
tree | 5554435c6caa08e77bbf6bd4506512708e7215b0 /gcc | |
parent | 1b288fecdeb9929c72515dd2471e4c7bec264d2a (diff) | |
download | gcc-3ed961a056fa188b2a709183fa66c91a558589b2.zip gcc-3ed961a056fa188b2a709183fa66c91a558589b2.tar.gz gcc-3ed961a056fa188b2a709183fa66c91a558589b2.tar.bz2 |
* cfgloopmanip.c (fix_irreducible_loops): Initialize e correctly.
From-SVN: r72207
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 4 | ||||
-rw-r--r-- | gcc/cfgloopmanip.c | 24 |
2 files changed, 18 insertions, 10 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 9d8ee41..eb5b687 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,7 @@ +2003-10-07 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz> + + * cfgloopmanip.c (fix_irreducible_loops): Initialize e correctly. + 2003-10-07 Jason Merrill <jason@redhat.com> PR c++/12519 diff --git a/gcc/cfgloopmanip.c b/gcc/cfgloopmanip.c index de1210c..ca50760 100644 --- a/gcc/cfgloopmanip.c +++ b/gcc/cfgloopmanip.c @@ -310,18 +310,22 @@ fix_irreducible_loops (basic_block from) } for (i = 0; i < n_edges; i++) - if (e->flags & EDGE_IRREDUCIBLE_LOOP) - { - if (!flow_bb_inside_loop_p (from->loop_father, e->dest)) - continue; + { + e = edges[i]; - e->flags &= ~EDGE_IRREDUCIBLE_LOOP; - if (TEST_BIT (on_stack, e->dest->index)) - continue; + if (e->flags & EDGE_IRREDUCIBLE_LOOP) + { + if (!flow_bb_inside_loop_p (from->loop_father, e->dest)) + continue; - SET_BIT (on_stack, e->dest->index); - stack[stack_top++] = e->dest; - } + e->flags &= ~EDGE_IRREDUCIBLE_LOOP; + if (TEST_BIT (on_stack, e->dest->index)) + continue; + + SET_BIT (on_stack, e->dest->index); + stack[stack_top++] = e->dest; + } + } free (edges); } |