diff options
author | Alan Modra <amodra@gmail.com> | 2011-11-15 22:10:46 +0000 |
---|---|---|
committer | Alan Modra <amodra@gmail.com> | 2011-11-15 22:10:46 +0000 |
commit | a046dfa9358e787262052b59312818dc9f9d3073 (patch) | |
tree | c814da4f13ebed12c285b46b9e5e6e88467e11b4 /gcc/function.c | |
parent | 3a04a07dbd7012a9392bb560eb3ce46ce7e867d8 (diff) |
PR rtl-optimization/51051
PR bootstrap/51086
* function.c (thread_prologue_and_epilogue_insns): Guard
emitting return with single_succ_p test.
git-svn-id: https://gcc.gnu.org/svn/gcc/trunk@181391 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/function.c')
-rw-r--r-- | gcc/function.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/gcc/function.c b/gcc/function.c index 0ee69ef22b6..664858a29e3 100644 --- a/gcc/function.c +++ b/gcc/function.c @@ -6230,7 +6230,8 @@ thread_prologue_and_epilogue_insns (void) && !active_insn_between (BB_HEAD (last_bb), BB_END (last_bb))) convert_jumps_to_returns (last_bb, false, NULL); - if (EDGE_COUNT (exit_fallthru_edge->src->preds) != 0) + if (EDGE_COUNT (last_bb->preds) != 0 + && single_succ_p (last_bb)) { last_bb = emit_return_for_exit (exit_fallthru_edge, false); epilogue_end = returnjump = BB_END (last_bb); |