aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJoern Rennecke <amylaar@gcc.gnu.org>2004-06-16 17:49:22 +0100
committerJoern Rennecke <amylaar@gcc.gnu.org>2004-06-16 17:49:22 +0100
commite370de6e30762a5fb49cd39832c6ed98a60bd82b (patch)
tree1526ec7e5b1437fb93008fca9d6e2ab2848f9db4
parentd9c75fe042245114199810c6bae601bba0aeb87f (diff)
downloadgcc-e370de6e30762a5fb49cd39832c6ed98a60bd82b.zip
gcc-e370de6e30762a5fb49cd39832c6ed98a60bd82b.tar.gz
gcc-e370de6e30762a5fb49cd39832c6ed98a60bd82b.tar.bz2
cfglayout.c (fixup_reorder_chain): Handle case where the destination of E_FALL is EXIT_BLOCK_PTR.
* cfglayout.c (fixup_reorder_chain): Handle case where the destination of E_FALL is EXIT_BLOCK_PTR. From-SVN: r83247
-rw-r--r--gcc/cfglayout.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/gcc/cfglayout.c b/gcc/cfglayout.c
index ca3913f..0c13c56 100644
--- a/gcc/cfglayout.c
+++ b/gcc/cfglayout.c
@@ -712,13 +712,15 @@ fixup_reorder_chain (void)
if (note
&& INTVAL (XEXP (note, 0)) < REG_BR_PROB_BASE / 2
&& 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);
e = e_fall, e_fall = e_taken, e_taken = e;