aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJosef Zlomek <zlomekj@suse.cz>2003-01-15 21:16:22 +0100
committerJosef Zlomek <zlomek@gcc.gnu.org>2003-01-15 20:16:22 +0000
commit6982ae1549bb0e1b0d98d9ee26ea6506c6c024ff (patch)
tree1f93777c7ecda37cf370265d01192c7e1d438a05
parent8c12fc6345f63891dd543ef7b11d459f861b9b96 (diff)
downloadgcc-6982ae1549bb0e1b0d98d9ee26ea6506c6c024ff.zip
gcc-6982ae1549bb0e1b0d98d9ee26ea6506c6c024ff.tar.gz
gcc-6982ae1549bb0e1b0d98d9ee26ea6506c6c024ff.tar.bz2
cfganal.c (set_edge_can_fallthru_flag): Clear the EDGE_CAN_FALLTHRU flag before setting it.
* cfganal.c (set_edge_can_fallthru_flag): Clear the EDGE_CAN_FALLTHRU flag before setting it. From-SVN: r61345
-rw-r--r--gcc/ChangeLog5
-rw-r--r--gcc/cfganal.c10
2 files changed, 12 insertions, 3 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 06387e8..4063e78 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,8 @@
+2003-01-15 Josef Zlomek <zlomekj@suse.cz>
+
+ * cfganal.c (set_edge_can_fallthru_flag): Clear the EDGE_CAN_FALLTHRU
+ flag before setting it.
+
2003-01-15 Roger Sayle <roger@eyesopen.com>
* c-semantics.c (genrtl_while_stmt): Improve initial RTL generation
diff --git a/gcc/cfganal.c b/gcc/cfganal.c
index a787817..325a64d 100644
--- a/gcc/cfganal.c
+++ b/gcc/cfganal.c
@@ -225,10 +225,14 @@ set_edge_can_fallthru_flag ()
{
edge e;
- /* The FALLTHRU edge is also CAN_FALLTHRU edge. */
for (e = bb->succ; e; e = e->succ_next)
- if (e->flags & EDGE_FALLTHRU)
- e->flags |= EDGE_CAN_FALLTHRU;
+ {
+ e->flags &= ~EDGE_CAN_FALLTHRU;
+
+ /* The FALLTHRU edge is also CAN_FALLTHRU edge. */
+ if (e->flags & EDGE_FALLTHRU)
+ e->flags |= EDGE_CAN_FALLTHRU;
+ }
/* If the BB ends with an invertable condjump all (2) edges are
CAN_FALLTHRU edges. */