summaryrefslogtreecommitdiff
path: root/gcc/cfgloopmanip.c
diff options
context:
space:
mode:
authorrakdver <rakdver@138bc75d-0d04-0410-961f-82ee72b054a4>2003-10-07 22:14:07 +0000
committerrakdver <rakdver@138bc75d-0d04-0410-961f-82ee72b054a4>2003-10-07 22:14:07 +0000
commit55ec176d3bf1a31badf6361aa55176e1bcb5557d (patch)
tree5554435c6caa08e77bbf6bd4506512708e7215b0 /gcc/cfgloopmanip.c
parent7d1895d3434f725cd4b0b85dca7e14c368d42bed (diff)
downloadgcc-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.c24
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);
}