diff options
author | Nathan Sidwell <nathan@gcc.gnu.org> | 2003-06-16 08:27:05 +0000 |
---|---|---|
committer | Nathan Sidwell <nathan@gcc.gnu.org> | 2003-06-16 08:27:05 +0000 |
commit | fd3acbb3a2c176dc658f2b957c3693dfebb2ae7e (patch) | |
tree | 2b5cb543169ef70477d25bcc0683bd89eb4851a2 /gcc/integrate.c | |
parent | 695a94b30aef2dbf9d30e96d02c8fdfa5d99c3eb (diff) | |
download | gcc-fd3acbb3a2c176dc658f2b957c3693dfebb2ae7e.zip gcc-fd3acbb3a2c176dc658f2b957c3693dfebb2ae7e.tar.gz gcc-fd3acbb3a2c176dc658f2b957c3693dfebb2ae7e.tar.bz2 |
function.h (struct emit_status): Remove x_last_linenum, x_last_filename.
* 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.
From-SVN: r68002
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 4152fb2..e9719e5 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); |