summaryrefslogtreecommitdiffstats
path: root/gcc/function.c
diff options
context:
space:
mode:
authoruweigand <uweigand@138bc75d-0d04-0410-961f-82ee72b054a4>2004-03-27 16:18:56 +0000
committeruweigand <uweigand@138bc75d-0d04-0410-961f-82ee72b054a4>2004-03-27 16:18:56 +0000
commitdc8def524053753133bdc82735e1d50e9935e062 (patch)
tree7014f4929b7eefb376966d4ee1e5b6b6445a0659 /gcc/function.c
parent8f46af08aed71e7f92e36f1fdb24b984e88f313f (diff)
downloadppe42-gcc-dc8def524053753133bdc82735e1d50e9935e062.tar.gz
ppe42-gcc-dc8def524053753133bdc82735e1d50e9935e062.zip
* function.c (thread_prologue_and_epilogue): Move
NOTE_INSN_FUNCTION_END and NOTE_INSN_FUNCTION_BEG notes before the epilogue. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@80025 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/function.c')
-rw-r--r--gcc/function.c9
1 files changed, 7 insertions, 2 deletions
diff --git a/gcc/function.c b/gcc/function.c
index 4236d156bb9..0972615d89f 100644
--- a/gcc/function.c
+++ b/gcc/function.c
@@ -8014,11 +8014,16 @@ epilogue_done:
/* Similarly, move any line notes that appear after the epilogue.
There is no need, however, to be quite so anal about the existence
- of such a note. */
+ of such a note. Also move the NOTE_INSN_FUNCTION_END and (possibly)
+ NOTE_INSN_FUNCTION_BEG notes, as those can be relevant for debug
+ info generation. */
for (insn = epilogue_end; insn; insn = next)
{
next = NEXT_INSN (insn);
- if (GET_CODE (insn) == NOTE && NOTE_LINE_NUMBER (insn) > 0)
+ if (GET_CODE (insn) == NOTE
+ && (NOTE_LINE_NUMBER (insn) > 0
+ || NOTE_LINE_NUMBER (insn) == NOTE_INSN_FUNCTION_BEG
+ || NOTE_LINE_NUMBER (insn) == NOTE_INSN_FUNCTION_END))
reorder_insns (insn, insn, PREV_INSN (epilogue_end));
}
}
OpenPOWER on IntegriCloud