aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorJakub Jelinek <jakub@gcc.gnu.org>2009-10-14 11:53:55 +0200
committerJakub Jelinek <jakub@gcc.gnu.org>2009-10-14 11:53:55 +0200
commitb29ee46cf2f0010084b621c1d2ec50bb5b6a8964 (patch)
treeabd2f224224e9cd62618bc0a46713303c77d86be /gcc
parent1b5bc8e9f21dcf98f5bb9ca3e096c5633cbc2ada (diff)
downloadgcc-b29ee46cf2f0010084b621c1d2ec50bb5b6a8964.zip
gcc-b29ee46cf2f0010084b621c1d2ec50bb5b6a8964.tar.gz
gcc-b29ee46cf2f0010084b621c1d2ec50bb5b6a8964.tar.bz2
re PR debug/41695 (Invalid .debug_loc created)
PR debug/41695 * dwarf2out.c (dwarf2out_var_location): Always clear last_postcall_label when changing last_label. * gcc.dg/debug/dwarf2/pr41695.c: New test. From-SVN: r152760
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog6
-rw-r--r--gcc/dwarf2out.c3
-rw-r--r--gcc/testsuite/ChangeLog7
-rw-r--r--gcc/testsuite/gcc.dg/debug/dwarf2/pr41695.c18
4 files changed, 31 insertions, 3 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index bbb97ec..992f9b6 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,9 @@
+2009-10-14 Jakub Jelinek <jakub@redhat.com>
+
+ PR debug/41695
+ * dwarf2out.c (dwarf2out_var_location): Always clear
+ last_postcall_label when changing last_label.
+
2009-10-14 Pascal Obry <obry@adacore.com>
* gcc.c (DEFAULT_SWITCH_CURTAILS_COMPILATION): Add -E.
diff --git a/gcc/dwarf2out.c b/gcc/dwarf2out.c
index 1e47e7a..2f9d2b8 100644
--- a/gcc/dwarf2out.c
+++ b/gcc/dwarf2out.c
@@ -20013,8 +20013,7 @@ dwarf2out_var_location (rtx loc_note)
ASM_OUTPUT_DEBUG_LABEL (asm_out_file, "LVL", loclabel_num);
loclabel_num++;
last_label = ggc_strdup (loclabel);
- if (!NOTE_DURING_CALL_P (loc_note))
- last_postcall_label = NULL;
+ last_postcall_label = NULL;
}
newloc->var_loc_note = loc_note;
newloc->next = NULL;
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 3faf8f2..c93c579 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,8 +1,13 @@
+2009-10-14 Jakub Jelinek <jakub@redhat.com>
+
+ PR debug/41695
+ * gcc.dg/debug/dwarf2/pr41695.c: New test.
+
2009-10-14 Uros Bizjak <ubizjak@gmail.com>
* gcc.target/i386/i386.exp (check_effective_target_ms_hook_prologue):
New procedure.
- * gcc.target/i386/ms_hook_prologue.c: Check for ms_hook_prologue
+ * gcc.target/i386/ms_hook_prologue.c: Check for ms_hook_prologue
effective target.
2009-10-14 Jason Merrill <jason@redhat.com>
diff --git a/gcc/testsuite/gcc.dg/debug/dwarf2/pr41695.c b/gcc/testsuite/gcc.dg/debug/dwarf2/pr41695.c
new file mode 100644
index 0000000..d61b5a2
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/debug/dwarf2/pr41695.c
@@ -0,0 +1,18 @@
+/* PR debug/41695 */
+/* { dg-do compile } */
+/* { dg-options "-g -O2 -dA -fno-merge-debug-strings" } */
+
+int bar (int);
+
+void
+foo (void)
+{
+ int b = 0;
+ b = bar (b);
+ b = bar (b);
+ b = bar (b);
+ b = bar (b);
+ bar (b);
+}
+
+/* { dg-final { scan-assembler-not "LVL(\[0-9\]+)-\[^1\]\[^\\r\\n\]*Location list begin address\[^\\r\\n\]*\[\\r\\n\]+\[^\\r\\n\]*LVL\\1-1-" } } */