This is the mail archive of the
gdb-patches@sourceware.org
mailing list for the GDB project.
Re: [patch] Fix crash on reading gcc HEAD Fortran module
On Mon, 01 Sep 2008 17:29:56 +0200, Daniel Jacobowitz wrote:
> please complain about children in DW_TAG_imported_declaration even in
> Fortran (see the comment above your change).
Originally I expected these complaints are just for detected DWARF violations:
_("Offset %d out of bounds for DW_AT_ranges attribute"),
But they are produced even just for unsupported DWARF features:
complaint (&symfile_complaints, _("unsupported tag: '%s'"),
Therefore it should always complain to any such DW_TAG_imported_* tag as they
are always at least unsupported. (And it does not matter if some of their
forms with or without children are invalid for DWARF or not.)
[ approval requested ]
Thanks,
Jan
2008-09-01 Jan Kratochvil <jan.kratochvil@redhat.com>
Stay compatible after the GCC PR fortran/29635 fix.
* dwarf2read.c (process_die <DW_TAG_imported_module>)
(process_die <DW_TAG_imported_module>): Do not assert anything about
these unsupported tags.
--- ./gdb/dwarf2read.c 29 Aug 2008 17:06:05 -0000 1.278
+++ ./gdb/dwarf2read.c 1 Sep 2008 16:35:17 -0000
@@ -2760,10 +2760,10 @@ process_die (struct die_info *die, struc
information contained in these. DW_TAG_imported_declaration
dies shouldn't have children; DW_TAG_imported_module dies
shouldn't in the C++ case, but conceivably could in the
- Fortran case, so we'll have to replace this gdb_assert if
- Fortran compilers start generating that info. */
+ Fortran case. */
processing_has_namespace_info = 1;
- gdb_assert (die->child == NULL);
+ complaint (&symfile_complaints, _("unsupported tag: '%s'"),
+ dwarf_tag_name (die->tag));
break;
default:
new_symbol (die, NULL, cu);