diff options
author | aoliva <aoliva@138bc75d-0d04-0410-961f-82ee72b054a4> | 2007-03-16 05:08:25 +0000 |
---|---|---|
committer | aoliva <aoliva@138bc75d-0d04-0410-961f-82ee72b054a4> | 2007-03-16 05:08:25 +0000 |
commit | a357c7c28357d8f2679236617438986d345bb874 (patch) | |
tree | c07f79b5f6b1696929bc0a960575e32ab6389bd7 /gcc/dwarf2out.c | |
parent | 1296ed59fe0322ffd251ec67456c1c2ac84c180b (diff) | |
download | gcc-a357c7c28357d8f2679236617438986d345bb874.tar.gz |
gcc/ChangeLog:
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
Diffstat (limited to 'gcc/dwarf2out.c')
-rw-r--r-- | gcc/dwarf2out.c | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/gcc/dwarf2out.c b/gcc/dwarf2out.c index 476f6ebf794..fa00452e594 100644 --- a/gcc/dwarf2out.c +++ b/gcc/dwarf2out.c @@ -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); |