diff options
author | nathan <nathan@138bc75d-0d04-0410-961f-82ee72b054a4> | 2003-06-16 08:27:05 +0000 |
---|---|---|
committer | nathan <nathan@138bc75d-0d04-0410-961f-82ee72b054a4> | 2003-06-16 08:27:05 +0000 |
commit | 0a3b3d880c4de5ff0fb816bc6c282cade7e1e5ae (patch) | |
tree | 2b5cb543169ef70477d25bcc0683bd89eb4851a2 /gcc/integrate.c | |
parent | 227ea5664211b8f4fa0c3bd56c876392877383c9 (diff) | |
download | gcc-0a3b3d880c4de5ff0fb816bc6c282cade7e1e5ae.tar.gz |
* function.h (struct emit_status): Remove x_last_linenum,
x_last_filename. Add x_last_location.
* rtl.h: #include "input.h".
(NOTE_DATA): New.
* cfglayout.c (duplicate_insn_chain): Use emit_line_note for line
number notes.
* emit-rtl.c (last_linenum, last_filename): Remove.
(last_location): New.
(emit_line_note_after): LINE must always be >= 0.
(emit_line_note): Likewise. Check not duplicate here...
(emit_note): ... rather than here.
(emit_line_note_force, force_next_line_note, init_emit): Adjust.
* integrate.c (expand_inline_function): Use emit_line_note for
line number notes.
(copy_insn_list): Likewise.
* unroll.c (copy_loop_body): Likewise.
* Makefile.in (RTL_H): Add input.h.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@68002 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/integrate.c')
-rw-r--r-- | gcc/integrate.c | 27 |
1 files changed, 14 insertions, 13 deletions
diff --git a/gcc/integrate.c b/gcc/integrate.c index 4152fb27fa4..e9719e5f5c3 100644 --- a/gcc/integrate.c +++ b/gcc/integrate.c @@ -925,8 +925,8 @@ expand_inline_function (fndecl, parms, target, ignore, type, if (GET_CODE (parm_insns) == NOTE && NOTE_LINE_NUMBER (parm_insns) > 0) { - rtx note = emit_note (NOTE_SOURCE_FILE (parm_insns), - NOTE_LINE_NUMBER (parm_insns)); + rtx note = emit_line_note (NOTE_SOURCE_FILE (parm_insns), + NOTE_LINE_NUMBER (parm_insns)); if (note) RTX_INTEGRATED_P (note) = 1; } @@ -1017,8 +1017,8 @@ expand_inline_function (fndecl, parms, target, ignore, type, && ! (GET_CODE (XEXP (loc, 0)) == REG && REGNO (XEXP (loc, 0)) > LAST_VIRTUAL_REGISTER)) { - rtx note = emit_note (DECL_SOURCE_FILE (formal), - DECL_SOURCE_LINE (formal)); + rtx note = emit_line_note (DECL_SOURCE_FILE (formal), + DECL_SOURCE_LINE (formal)); if (note) RTX_INTEGRATED_P (note) = 1; @@ -1305,7 +1305,7 @@ expand_inline_function (fndecl, parms, target, ignore, type, This line number note is still needed for debugging though, so we can't delete it. */ if (flag_test_coverage) - emit_note (0, NOTE_INSN_REPEATED_LINE_NUMBER); + emit_note (NULL, NOTE_INSN_REPEATED_LINE_NUMBER); emit_line_note (input_filename, input_line); @@ -1683,15 +1683,17 @@ copy_insn_list (insns, map, static_chain_value) NOTE_INSN_DELETED notes aren't useful. */ - if (NOTE_LINE_NUMBER (insn) != NOTE_INSN_FUNCTION_END + if (NOTE_LINE_NUMBER (insn) > 0) + copy = emit_line_note (NOTE_SOURCE_FILE (insn), + NOTE_LINE_NUMBER (insn)); + else if (NOTE_LINE_NUMBER (insn) != NOTE_INSN_FUNCTION_END && NOTE_LINE_NUMBER (insn) != NOTE_INSN_FUNCTION_BEG && NOTE_LINE_NUMBER (insn) != NOTE_INSN_DELETED) { - copy = emit_note (NOTE_SOURCE_FILE (insn), - NOTE_LINE_NUMBER (insn)); - if (copy - && (NOTE_LINE_NUMBER (copy) == NOTE_INSN_BLOCK_BEG - || NOTE_LINE_NUMBER (copy) == NOTE_INSN_BLOCK_END) + copy = emit_note (NULL, NOTE_LINE_NUMBER (insn)); + NOTE_DATA (copy) = NOTE_DATA (insn); + if ((NOTE_LINE_NUMBER (copy) == NOTE_INSN_BLOCK_BEG + || NOTE_LINE_NUMBER (copy) == NOTE_INSN_BLOCK_END) && NOTE_BLOCK (insn)) { tree *mapped_block_p; @@ -1708,8 +1710,7 @@ copy_insn_list (insns, map, static_chain_value) else NOTE_BLOCK (copy) = *mapped_block_p; } - else if (copy - && NOTE_LINE_NUMBER (copy) == NOTE_INSN_EXPECTED_VALUE) + else if (NOTE_LINE_NUMBER (copy) == NOTE_INSN_EXPECTED_VALUE) NOTE_EXPECTED_VALUE (copy) = copy_rtx_and_substitute (NOTE_EXPECTED_VALUE (insn), map, 0); |