diff options
author | Jan Hubicka <jh@suse.cz> | 2006-11-27 16:07:10 +0100 |
---|---|---|
committer | Jan Hubicka <hubicka@gcc.gnu.org> | 2006-11-27 15:07:10 +0000 |
commit | 071a42f958c1514d608870c965de88af5f797ec2 (patch) | |
tree | 3174477a8d1b3916f3d18072026872cc7db41e00 /gcc/cfgexpand.c | |
parent | 2505a3f233da445e15c2a5d6bdb82c7a6dd6a2d4 (diff) | |
download | gcc-071a42f958c1514d608870c965de88af5f797ec2.zip gcc-071a42f958c1514d608870c965de88af5f797ec2.tar.gz gcc-071a42f958c1514d608870c965de88af5f797ec2.tar.bz2 |
cfgexpand.c (construct_exit_block): Don't disturb end of last BB.
* 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.
From-SVN: r119250
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 76f603f..d0a560e 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, |