aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorZdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>2003-10-08 00:14:07 +0200
committerZdenek Dvorak <rakdver@gcc.gnu.org>2003-10-07 22:14:07 +0000
commit3ed961a056fa188b2a709183fa66c91a558589b2 (patch)
tree5554435c6caa08e77bbf6bd4506512708e7215b0 /gcc
parent1b288fecdeb9929c72515dd2471e4c7bec264d2a (diff)
downloadgcc-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/ChangeLog4
-rw-r--r--gcc/cfgloopmanip.c24
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);
}