diff options
author | krebbel <krebbel@138bc75d-0d04-0410-961f-82ee72b054a4> | 2009-09-17 07:52:40 +0000 |
---|---|---|
committer | krebbel <krebbel@138bc75d-0d04-0410-961f-82ee72b054a4> | 2009-09-17 07:52:40 +0000 |
commit | 9dbb96fec5e08762f97dda771522283f1fe9710f (patch) | |
tree | 4514b02eb3f66a3122257eb620cf2f322e1a4902 /gcc/cfglayout.c | |
parent | 870c2cb98c9e2f1f59df279aeb8be6b3aebc8367 (diff) | |
download | gcc-9dbb96fec5e08762f97dda771522283f1fe9710f.tar.gz |
2009-09-17 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
* cfglayout.c (fixup_reorder_chain): Accept conditional jumps
without a fallthrough edge.
2009-09-17 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
* gcc.c-torture/compile/20090917-1.c: New testcase.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@151790 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/cfglayout.c')
-rw-r--r-- | gcc/cfglayout.c | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/gcc/cfglayout.c b/gcc/cfglayout.c index bc8ed8b7f32..d6d1b3ab697 100644 --- a/gcc/cfglayout.c +++ b/gcc/cfglayout.c @@ -787,6 +787,17 @@ fixup_reorder_chain (void) { if (any_condjump_p (bb_end_insn)) { + /* This might happen if the conditional jump has side + effects and could therefore not be optimized away. + Make the basic block to end with a barrier in order + to prevent rtl_verify_flow_info from complaining. */ + if (!e_fall) + { + gcc_assert (!onlyjump_p (bb_end_insn)); + bb->il.rtl->footer = emit_barrier_after (bb_end_insn); + continue; + } + /* If the old fallthru is still next, nothing to do. */ if (bb->aux == e_fall->dest || e_fall->dest == EXIT_BLOCK_PTR) |