diff options
author | Jan Hubicka <jh@suse.cz> | 2003-09-06 23:50:20 +0200 |
---|---|---|
committer | Jan Hubicka <hubicka@gcc.gnu.org> | 2003-09-06 21:50:20 +0000 |
commit | 9778f2f8b539a9229cd205e933d1d20c60f1768e (patch) | |
tree | ad864c023f86a39edeb88a3acff0497534d95463 /gcc/cfgcleanup.c | |
parent | 0761f342c524819173182b1cb0ec75d02c2f709b (diff) | |
download | gcc-9778f2f8b539a9229cd205e933d1d20c60f1768e.tar.gz |
re PR target/12070 (ICE converting between double and long double with -msoft-float)
PR target/12070
* calls.c (emit_library_call_value_1): Fix saving of BLKmode arguments.
PR opt/12082
* cfgcleanup.c (try_simplify_condjump): Avoid unreachable code warning.
From-SVN: r71147
Diffstat (limited to 'gcc/cfgcleanup.c')
-rw-r--r-- | gcc/cfgcleanup.c | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/gcc/cfgcleanup.c b/gcc/cfgcleanup.c index 074812d54ef..fc5be846dee 100644 --- a/gcc/cfgcleanup.c +++ b/gcc/cfgcleanup.c @@ -118,6 +118,8 @@ try_simplify_condjump (basic_block cbranch_block) basic_block jump_block, jump_dest_block, cbranch_dest_block; edge cbranch_jump_edge, cbranch_fallthru_edge; rtx cbranch_insn; + rtx insn, next; + rtx end; /* Verify that there are exactly two successors. */ if (!cbranch_block->succ @@ -170,6 +172,20 @@ try_simplify_condjump (basic_block cbranch_block) cbranch_fallthru_edge->flags &= ~EDGE_FALLTHRU; update_br_prob_note (cbranch_block); + end = jump_block->end; + /* Deleting a block may produce unreachable code warning even when we are + not deleting anything live. Supress it by moving all the line number + notes out of the block. */ + for (insn = jump_block->head; insn != NEXT_INSN (jump_block->end); + insn = next) + { + next = NEXT_INSN (insn); + if (GET_CODE (insn) == NOTE && NOTE_LINE_NUMBER (insn) > 0) + { + reorder_insns (insn, insn, end); + end = insn; + } + } /* Delete the block with the unconditional jump, and clean up the mess. */ delete_block (jump_block); tidy_fallthru_edge (cbranch_jump_edge, cbranch_block, cbranch_dest_block); |