diff options
author | rakdver <rakdver@138bc75d-0d04-0410-961f-82ee72b054a4> | 2003-10-07 22:14:07 +0000 |
---|---|---|
committer | rakdver <rakdver@138bc75d-0d04-0410-961f-82ee72b054a4> | 2003-10-07 22:14:07 +0000 |
commit | 55ec176d3bf1a31badf6361aa55176e1bcb5557d (patch) | |
tree | 5554435c6caa08e77bbf6bd4506512708e7215b0 /gcc/cfgloopmanip.c | |
parent | 7d1895d3434f725cd4b0b85dca7e14c368d42bed (diff) | |
download | gcc-55ec176d3bf1a31badf6361aa55176e1bcb5557d.tar.gz |
* cfgloopmanip.c (fix_irreducible_loops): Initialize e correctly.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@72207 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/cfgloopmanip.c')
-rw-r--r-- | gcc/cfgloopmanip.c | 24 |
1 files changed, 14 insertions, 10 deletions
diff --git a/gcc/cfgloopmanip.c b/gcc/cfgloopmanip.c index de1210ce3f2..ca50760f384 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); } |