]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
gcc/ChangeLog:
authoraoliva <aoliva@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 16 Mar 2007 05:08:25 +0000 (05:08 +0000)
committeraoliva <aoliva@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 16 Mar 2007 05:08:25 +0000 (05:08 +0000)
PR debug/29906
* dwarf2out.c (force_type_die): Adjust comment.
(dwarf2out_imported_module_or_decl): Handle base AT_import types.
gcc/testsuite/ChangeLog:
PR debug/29906
* g++.dg/debug/pr29906.C: New

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@122976 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/ChangeLog
gcc/dwarf2out.c
gcc/testsuite/ChangeLog
gcc/testsuite/g++.dg/debug/pr29906.C [new file with mode: 0644]

index 6b1c432b7510960c3bae755dae114e7c44ceb39f..c1aa2e0943e7b8a270328cb79d7e7713a7608616 100644 (file)
@@ -1,3 +1,9 @@
+2007-03-16  Alexandre Oliva  <aoliva@redhat.com>
+
+       PR debug/29906
+       * dwarf2out.c (force_type_die): Adjust comment.
+       (dwarf2out_imported_module_or_decl): Handle base AT_import types.
+
 2007-03-15  DJ Delorie  <dj@redhat.com>
 
        * config/frv/predicates.md (minmax_operator): Don't check operands
index 476f6ebf794c70bbdd531eae318397dc7b7214f1..fa00452e594efe0ad09bb6fded911bf8ce423082 100644 (file)
@@ -13160,7 +13160,8 @@ force_decl_die (tree decl)
   return decl_die;
 }
 
-/* Returns the DIE for TYPE.  A DIE is always returned.  */
+/* Returns the DIE for TYPE, that must not be a base type.  A DIE is
+   always returned.  */
 
 static dw_die_ref
 force_type_die (tree type)
@@ -13488,7 +13489,12 @@ dwarf2out_imported_module_or_decl (tree decl, tree context)
 
   /* For TYPE_DECL or CONST_DECL, lookup TREE_TYPE.  */
   if (TREE_CODE (decl) == TYPE_DECL || TREE_CODE (decl) == CONST_DECL)
-    at_import_die = force_type_die (TREE_TYPE (decl));
+    {
+      if (is_base_type (TREE_TYPE (decl)))
+       at_import_die = base_type_die (TREE_TYPE (decl));
+      else
+       at_import_die = force_type_die (TREE_TYPE (decl));
+    }
   else
     {
       at_import_die = lookup_decl_die (decl);
index 63e7ef5daa7ccf21884645dc8ab0e84279c93cd9..395028ac3e88c66b1c4db1266b02178729c9f3b9 100644 (file)
@@ -1,3 +1,8 @@
+2007-03-16  Alexandre Oliva  <aoliva@redhat.com>
+
+       PR debug/29906
+       * g++.dg/debug/pr29906.C: New
+
 2007-03-15  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
 
        PR libgfortran/31099
diff --git a/gcc/testsuite/g++.dg/debug/pr29906.C b/gcc/testsuite/g++.dg/debug/pr29906.C
new file mode 100644 (file)
index 0000000..08bbe87
--- /dev/null
@@ -0,0 +1,10 @@
+// { dg-do compile }
+// { dg-options "-g -fno-emit-class-debug-always" }
+
+struct A{
+  typedef int T;
+  virtual ~A();
+};
+struct B:public A{
+  using A::T;
+};