]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
re PR debug/37726 (Even at -O0 -g debuginfo for vars mentioned in nested fns is not...
authorJakub Jelinek <jakub@redhat.com>
Fri, 3 Oct 2008 18:55:39 +0000 (20:55 +0200)
committerJakub Jelinek <jakub@gcc.gnu.org>
Fri, 3 Oct 2008 18:55:39 +0000 (20:55 +0200)
PR debug/37726
* gimplify.c (declare_vars): Use gimple_bind_block instead of
gimple_block.

* gcc.dg/debug/dwarf2/pr37726.c: New test.

From-SVN: r140857

gcc/ChangeLog
gcc/gimplify.c
gcc/testsuite/ChangeLog
gcc/testsuite/gcc.dg/debug/dwarf2/pr37726.c [new file with mode: 0644]

index 7084d1850980dc3aa7e037931253fecd830d9136..96499931370c87ff4c2c7cf8a55defbf94ed2627 100644 (file)
@@ -1,3 +1,9 @@
+2008-10-03  Jakub Jelinek  <jakub@redhat.com>
+
+       PR debug/37726
+       * gimplify.c (declare_vars): Use gimple_bind_block instead of
+       gimple_block.
+
 2008-10-03  Pascal Obry  <obry@adacore.com>
 
        * gcov.c (create_file_names): Properly handle UNIX and DOS
index d723d9f16a925d17d527924c3a8af6358032fbbc..5123efdf321d76821286fcfedcc7e6070274c67b 100644 (file)
@@ -772,7 +772,7 @@ declare_vars (tree vars, gimple scope, bool debug_info)
 
       temps = nreverse (last);
 
-      block = gimple_block (scope);
+      block = gimple_bind_block (scope);
       gcc_assert (!block || TREE_CODE (block) == BLOCK);
       if (!block || !debug_info)
        {
index f2c8bf235d21b39ceb7d1d6927906a5d4a032893..9078edc460bb5c57ae5c8a356432e321988cf9bb 100644 (file)
@@ -1,3 +1,8 @@
+2008-10-03  Jakub Jelinek  <jakub@redhat.com>
+
+       PR debug/37726
+       * gcc.dg/debug/dwarf2/pr37726.c: New test.
+
 2008-10-03  Paolo Carlini  <paolo.carlini@oracle.com>
 
        PR c++/37719
diff --git a/gcc/testsuite/gcc.dg/debug/dwarf2/pr37726.c b/gcc/testsuite/gcc.dg/debug/dwarf2/pr37726.c
new file mode 100644 (file)
index 0000000..60fb839
--- /dev/null
@@ -0,0 +1,25 @@
+/* PR debug/37726 */
+/* { dg-do compile } */
+/* { dg-options "-g -O0 -dA -fno-merge-debug-strings" } */
+
+int foo (int parm)
+{
+  int var = 0;
+  int bar (void)
+  {
+    return parm + var;
+  }
+  parm++;
+  var++;
+  return bar ();
+}
+
+int
+main (void)
+{
+  return foo (4) - 6;
+}
+
+/* Both parm and var variables should be in debug info for both foo and bar.  */
+/* { dg-final { scan-assembler-times "\"parm\[^\n\]*\"\[^\n\]*DW_AT_name" 2 } } */
+/* { dg-final { scan-assembler-times "\"var\[^\n\]*\"\[^\n\]*DW_AT_name" 2 } } */