]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
re PR debug/39471 (DW_TAG_imported_module should be used (not DW_TAG_imported_declara...
authorJakub Jelinek <jakub@redhat.com>
Tue, 17 Mar 2009 17:49:28 +0000 (18:49 +0100)
committerJakub Jelinek <jakub@gcc.gnu.org>
Tue, 17 Mar 2009 17:49:28 +0000 (18:49 +0100)
PR debug/39471
* dwarf2out.c (dwarf2out_imported_module_or_decl_1): Emit
DW_TAG_imported_module even if decl is IMPORTED_DECL with
NAMESPACE_DECL in its DECL_INITIAL.

* cp-gimplify.c (cp_gimplify_expr): Don't set DECL_NAME
on IMPORTED_DECL.

* g++.dg/debug/dwarf2/imported-module-2.C: Expect
DW_TAG_imported_module, not just any DW_TAG_imported prefixed tag.
* g++.dg/debug/dwarf2/imported-module-3.C: Likewise.
* g++.dg/debug/dwarf2/imported-module-4.C: Likewise.

From-SVN: r144911

gcc/ChangeLog
gcc/cp/ChangeLog
gcc/cp/cp-gimplify.c
gcc/dwarf2out.c
gcc/testsuite/ChangeLog
gcc/testsuite/g++.dg/debug/dwarf2/imported-module-2.C
gcc/testsuite/g++.dg/debug/dwarf2/imported-module-3.C
gcc/testsuite/g++.dg/debug/dwarf2/imported-module-4.C

index 7af0db068e42dc750ec5a0d9cb10a119bd1353ff..f758952095f8c74f6316b8dd05faa1d66a256616 100644 (file)
@@ -1,5 +1,10 @@
 2009-03-17  Jakub Jelinek  <jakub@redhat.com>
 
+       PR debug/39471
+       * dwarf2out.c (dwarf2out_imported_module_or_decl_1): Emit
+       DW_TAG_imported_module even if decl is IMPORTED_DECL with
+       NAMESPACE_DECL in its DECL_INITIAL.
+
        PR middle-end/39443
        * optabs.c (set_user_assembler_libfunc): New function.
        * expr.h (set_user_assembler_libfunc): New prototype.
index e4161c504cb2f97a45747edf0f988ea6b3b13024..b015dfa14c4f5507792b5f612cc79d5900a92f96 100644 (file)
@@ -1,3 +1,9 @@
+2009-03-17  Jakub Jelinek  <jakub@redhat.com>
+
+       PR debug/39471
+       * cp-gimplify.c (cp_gimplify_expr): Don't set DECL_NAME
+       on IMPORTED_DECL.
+
 2009-03-09  Jakub Jelinek  <jakub@redhat.com>
 
        PR c++/39371
index 838a9d6fa423f0efe29649d3f03bbd93ff7200f9..12d632bdc4b44f07af015e6e4c643ee1c6f80536 100644 (file)
@@ -593,8 +593,6 @@ cp_gimplify_expr (tree *expr_p, gimple_seq *pre_p, gimple_seq *post_p)
 
          IMPORTED_DECL_ASSOCIATED_DECL (using_directive)
            = TREE_OPERAND (*expr_p, 0);
-         DECL_NAME (using_directive)
-           = DECL_NAME (TREE_OPERAND (*expr_p, 0));
          TREE_CHAIN (using_directive) = BLOCK_VARS (block);
          BLOCK_VARS (block) = using_directive;
        }
index 67117775ba3022bc3f62e45b4b844916669b9160..79651e135a00049dbfa43dad591cf4c4430bb27f 100644 (file)
@@ -15380,12 +15380,11 @@ dwarf2out_imported_module_or_decl_1 (tree decl,
     }
   else if (TREE_CODE (decl) == IMPORTED_DECL)
     {
-      tree imported_ns_decl;
+      tree imported_ns_decl = IMPORTED_DECL_ASSOCIATED_DECL (decl);
       /* IMPORTED_DECL nodes that are not imported namespace are just not
          supported yet.  */
-      gcc_assert (DECL_INITIAL (decl)
-                 && TREE_CODE (DECL_INITIAL (decl)) == NAMESPACE_DECL);
-      imported_ns_decl = DECL_INITIAL (decl);
+      gcc_assert (imported_ns_decl
+                 && TREE_CODE (imported_ns_decl) == NAMESPACE_DECL);
       at_import_die = lookup_decl_die (imported_ns_decl);
       if (!at_import_die)
        at_import_die = force_decl_die (imported_ns_decl);
@@ -15414,7 +15413,10 @@ dwarf2out_imported_module_or_decl_1 (tree decl,
        }
     }
 
-  if (TREE_CODE (decl) == NAMESPACE_DECL)
+  if (TREE_CODE (decl) == NAMESPACE_DECL
+      || (TREE_CODE (decl) == IMPORTED_DECL
+         && (TREE_CODE (IMPORTED_DECL_ASSOCIATED_DECL (decl))
+             == NAMESPACE_DECL)))
     imported_die = new_die (DW_TAG_imported_module,
                            lexical_block_die,
                            lexical_block);
index ae361a5c7e75307f168cd909e74eb81b9760e767..5c34253363ee199b33437aafd0e3adfed10e7d16 100644 (file)
@@ -1,5 +1,11 @@
 2009-03-17  Jakub Jelinek  <jakub@redhat.com>
 
+       PR debug/39471
+       * g++.dg/debug/dwarf2/imported-module-2.C: Expect
+       DW_TAG_imported_module, not just any DW_TAG_imported prefixed tag.
+       * g++.dg/debug/dwarf2/imported-module-3.C: Likewise.
+       * g++.dg/debug/dwarf2/imported-module-4.C: Likewise.
+
        PR middle-end/39443
        * gcc.dg/pr39443.c: New test.
 
index 86128975b474423d1a769ce8d544bedeb944ac95..9a4821ab54ab3d2e065b8324f1ef84d2dac197c8 100644 (file)
@@ -2,7 +2,7 @@
 // Origin: PR debug/38390
 // { dg-do compile  }
 // { dg-options "-g -dA" }
-// { dg-final { scan-assembler "DW_TAG_imported" }  }
+// { dg-final { scan-assembler "DW_TAG_imported_module" }  }
 
 namespace A
 {
index d62a506f49b9fd2e0f2885f6b353566dc91e60e0..9559bcb4ce2a65118993718c94b741818b894e8b 100644 (file)
@@ -1,7 +1,7 @@
 // PR debug/39379
 // { dg-do compile }
 // { dg-options "-g -dA" }
-// { dg-final { scan-assembler "DW_TAG_imported" }  }
+// { dg-final { scan-assembler "DW_TAG_imported_module" }  }
 
 namespace A
 {
index 6e9b52e1f193cdc0d19a99ac6d4b65581433f96b..7ac6bab498d12a0cb35c40baaaa0b5afb71fedf8 100644 (file)
@@ -1,7 +1,7 @@
 // PR debug/39379
 // { dg-do compile }
 // { dg-options "-g -dA" }
-// { dg-final { scan-assembler "DW_TAG_imported" }  }
+// { dg-final { scan-assembler "DW_TAG_imported_module" }  }
 
 namespace A
 {