This is the mail archive of the
archer@sourceware.org
mailing list for the Archer project.
Re: DW_TAG_imported_declaration DW_TAG_base_type w/o DW_AT_name[Re: using directive patch]
Hi Sami,
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).
Thanks,
Jan
gdb/
2009-06-19 Jan Kratochvil <jan.kratochvil@redhat.com>
* dwarf2read.c (read_import_statement <imported_name == NULL>): Extend
the comment.
--- a/gdb/dwarf2read.c
+++ b/gdb/dwarf2read.c
@@ -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. */
+
return;
}