diff options
author | jakub <jakub@138bc75d-0d04-0410-961f-82ee72b054a4> | 2012-02-09 11:41:25 +0000 |
---|---|---|
committer | jakub <jakub@138bc75d-0d04-0410-961f-82ee72b054a4> | 2012-02-09 11:41:25 +0000 |
commit | d5d74c5fb57cbf8ba7cc00f147abc4710966dcd1 (patch) | |
tree | e607f0fbeeed426598cccfd417fe54ef0a3532d8 /gcc/var-tracking.c | |
parent | f4a78d128009f9a4312281bfa24eda177c354580 (diff) | |
download | gcc-d5d74c5fb57cbf8ba7cc00f147abc4710966dcd1.tar.gz |
PR debug/52165
* var-tracking.c (emit_note_insn_var_location): If
EMIT_NOTE_BEFORE_INSN and insn is NOTE_INSN_CALL_ARG_LOCATION,
emit it before next non-NOTE_INSN_CALL_ARG_LOCATION
non-NOTE_DURING_CALL_P insn.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@184042 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/var-tracking.c')
-rw-r--r-- | gcc/var-tracking.c | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/gcc/var-tracking.c b/gcc/var-tracking.c index 1f4903a83fe..e9b5ca886ae 100644 --- a/gcc/var-tracking.c +++ b/gcc/var-tracking.c @@ -8225,9 +8225,14 @@ emit_note_insn_var_location (void **varp, void *data) /* Make sure that the call related notes come first. */ while (NEXT_INSN (insn) && NOTE_P (insn) - && NOTE_DURING_CALL_P (insn)) + && ((NOTE_KIND (insn) == NOTE_INSN_VAR_LOCATION + && NOTE_DURING_CALL_P (insn)) + || NOTE_KIND (insn) == NOTE_INSN_CALL_ARG_LOCATION)) insn = NEXT_INSN (insn); - if (NOTE_P (insn) && NOTE_DURING_CALL_P (insn)) + if (NOTE_P (insn) + && ((NOTE_KIND (insn) == NOTE_INSN_VAR_LOCATION + && NOTE_DURING_CALL_P (insn)) + || NOTE_KIND (insn) == NOTE_INSN_CALL_ARG_LOCATION)) note = emit_note_after (NOTE_INSN_VAR_LOCATION, insn); else note = emit_note_before (NOTE_INSN_VAR_LOCATION, insn); |