This is the mail archive of the
mailing list for the Archer project.
Re: DW_TAG_imported_declaration DW_TAG_base_type w/o DW_AT_name[Re: using directive patch]
On Wed, 17 Jun 2009 18:42:24 +0200, Tom Tromey wrote:
> Thanks for this. I see I was not fully understanding the code.
> That comment should explain the failing case more clearly, like this.
please check it into the appropriate branches
(archer-swagiaal-using-directive, archer-keiths-expr-cumulative, assuming the
FSF GDB post will be updated anyway).
2009-06-19 Jan Kratochvil <firstname.lastname@example.org>
* dwarf2read.c (read_import_statement <imported_name == NULL>): Extend
@@ -2966,7 +2966,18 @@ read_import_statement (struct die_info *die, struct dwarf2_cu *cu)
imported_name = namespace_name (imported_die, &is_anonymous, cu);
if (imported_name == NULL)
- /* C++ imports from std:: DW_TAG_base_type with no DW_AT_name - why? */
+ /* DW_TAG_imported_declaration DW_TAG_base_type
+ variable DIE variable IMPORTED_DIE
+ A (invalid) anonymous anonymous
+ B (standard import) anonymous DW_AT_name present
+ C (unhandled now) DW_AT_name present anonymous
+ D (renamed import) DW_AT_name present DW_AT_name present
+ The NULL condition for this block of code catches cases A and C.
+ FIXME: Case C should be fixed below to be parsed correctly. There are
+ AFAIK no existing DWARF files containing such C case. */