diff options
author | hubicka <hubicka@138bc75d-0d04-0410-961f-82ee72b054a4> | 2006-11-27 15:07:10 +0000 |
---|---|---|
committer | hubicka <hubicka@138bc75d-0d04-0410-961f-82ee72b054a4> | 2006-11-27 15:07:10 +0000 |
commit | 737251e7585f75e2730d497bf244ab6af5c3f26c (patch) | |
tree | 3174477a8d1b3916f3d18072026872cc7db41e00 /gcc/cfgexpand.c | |
parent | 22c2f6bdda9682df91ef7761d4b77c01e8bbcd37 (diff) | |
download | gcc-737251e7585f75e2730d497bf244ab6af5c3f26c.tar.gz |
* cfgexpand.c (construct_exit_block): Don't disturb end of last BB.
* rtl.texi (NOTE_INSN_FUNCTION_END): Remove.
* final.c (final_scan_insn): Don't scan NOTE_INSN_FUNCTION_END.
* insn-notes.def (FUNCTION_END): Remove.
* jump.c (delete_related_insns): Don't worry about FUNCTION_END.
(redicect_jump_2): Don't accept -1 parameter to remove FUNCTION_END
note.
* ifcvt.c (dead_or_predictable): Update call of redirect_jump_2.
* function.c (expand_function_end): Don't emit NOTE_INSN_FUNCTION_END
* cfglayout.c (duplicate_insn_chain): Don't worry about
NOTE_FUNCTION_END.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@119250 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/cfgexpand.c')
-rw-r--r-- | gcc/cfgexpand.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/gcc/cfgexpand.c b/gcc/cfgexpand.c index 76f603f7820..d0a560ec00b 100644 --- a/gcc/cfgexpand.c +++ b/gcc/cfgexpand.c @@ -1465,6 +1465,7 @@ construct_exit_block (void) edge e, e2; unsigned ix; edge_iterator ei; + rtx orig_end = BB_END (EXIT_BLOCK_PTR->prev_bb); /* Make sure the locus is set to the end of the function, so that epilogue line numbers and warnings are set properly. */ @@ -1484,6 +1485,9 @@ construct_exit_block (void) end = get_last_insn (); if (head == end) return; + /* While emitting the function end we could move end of the last basic block. + */ + BB_END (EXIT_BLOCK_PTR->prev_bb) = orig_end; while (NEXT_INSN (head) && NOTE_P (NEXT_INSN (head))) head = NEXT_INSN (head); exit_block = create_basic_block (NEXT_INSN (head), end, |