diff options
author | Joern Rennecke <amylaar@gcc.gnu.org> | 2004-06-16 17:49:22 +0100 |
---|---|---|
committer | Joern Rennecke <amylaar@gcc.gnu.org> | 2004-06-16 17:49:22 +0100 |
commit | e370de6e30762a5fb49cd39832c6ed98a60bd82b (patch) | |
tree | 1526ec7e5b1437fb93008fca9d6e2ab2848f9db4 | |
parent | d9c75fe042245114199810c6bae601bba0aeb87f (diff) | |
download | gcc-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.c | 6 |
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; |