aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJ"orn Rennecke <joern.rennecke@superh.com>2004-06-15 11:58:40 +0000
committerJoern Rennecke <amylaar@gcc.gnu.org>2004-06-15 12:58:40 +0100
commit8cff2a9522fcd7b7af3181f73aa91a2fce666722 (patch)
tree5185fc8c015e7cb9d1447751c3d58a33ddf4a370
parent9264db16997eea54e44c44a4869845f94f6102f7 (diff)
downloadgcc-8cff2a9522fcd7b7af3181f73aa91a2fce666722.zip
gcc-8cff2a9522fcd7b7af3181f73aa91a2fce666722.tar.gz
gcc-8cff2a9522fcd7b7af3181f73aa91a2fce666722.tar.bz2
cfglayout.c (fixup_reorder_chain): Handle case where the destination of E_TAKEN is EXIT_BLOCK_PTR.
* cfglayout.c (fixup_reorder_chain): Handle case where the destination of E_TAKEN is EXIT_BLOCK_PTR. From-SVN: r83179
-rw-r--r--gcc/ChangeLog5
-rw-r--r--gcc/cfglayout.c6
2 files changed, 9 insertions, 2 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 6c953a1..24b12e3 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,8 @@
+2004-06-15 J"orn Rennecke <joern.rennecke@superh.com>
+
+ * cfglayout.c (fixup_reorder_chain): Handle case where the
+ destination of E_TAKEN is EXIT_BLOCK_PTR.
+
2004-06-15 Diego Novillo <dnovillo@redhat.com>
* tree-ssa-copy.c (cprop_into_successor_phis): Fix typo.
diff --git a/gcc/cfglayout.c b/gcc/cfglayout.c
index 6674268..ca3913f 100644
--- a/gcc/cfglayout.c
+++ b/gcc/cfglayout.c
@@ -733,13 +733,15 @@ fixup_reorder_chain (void)
/* Otherwise we can try to invert the jump. This will
basically never fail, however, keep up the pretense. */
else if (invert_jump (bb_end_insn,
- label_for_bb (e_fall->dest), 0))
+ (e_fall->dest == EXIT_BLOCK_PTR
+ ? NULL_RTX
+ : label_for_bb (e_fall->dest)), 0))
{
+ e_fall->flags &= ~EDGE_FALLTHRU;
#ifdef ENABLE_CHECKING
if (!could_fall_through (e_taken->src, e_taken->dest))
abort ();
#endif
- e_fall->flags &= ~EDGE_FALLTHRU;
e_taken->flags |= EDGE_FALLTHRU;
update_br_prob_note (bb);
continue;