This is the mail archive of the mailing list for the Archer project.

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

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).


2009-06-19  Jan Kratochvil  <>

	* 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.  */

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]