summaryrefslogtreecommitdiff
path: root/gcc/cfglayout.c
diff options
context:
space:
mode:
authoramylaar <amylaar@138bc75d-0d04-0410-961f-82ee72b054a4>2004-06-15 11:58:40 +0000
committeramylaar <amylaar@138bc75d-0d04-0410-961f-82ee72b054a4>2004-06-15 11:58:40 +0000
commitf3e1a7275a876f9e90ea46dc57fa7352f39cb892 (patch)
tree5185fc8c015e7cb9d1447751c3d58a33ddf4a370 /gcc/cfglayout.c
parent01e816015cefe35dbdf226cd6957fd3c88e15c25 (diff)
downloadgcc-f3e1a7275a876f9e90ea46dc57fa7352f39cb892.tar.gz
* cfglayout.c (fixup_reorder_chain): Handle case where the
destination of E_TAKEN is EXIT_BLOCK_PTR. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@83179 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/cfglayout.c')
-rw-r--r--gcc/cfglayout.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/gcc/cfglayout.c b/gcc/cfglayout.c
index 66742686e16..ca3913f5fdf 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;