|
From: <sv...@va...> - 2012-06-30 20:22:08
|
sewardj 2012-06-30 21:21:58 +0100 (Sat, 30 Jun 2012)
New Revision: 12691
Log:
Don't be spooked by DW_TAG_{structure,class,union}_type that has only
a DW_AT_declaration but no name. Just make up a name and add the
type.
Modified files:
trunk/coregrind/m_debuginfo/readdwarf3.c
Modified: trunk/coregrind/m_debuginfo/readdwarf3.c (+7 -1)
===================================================================
--- trunk/coregrind/m_debuginfo/readdwarf3.c 2012-06-30 19:00:08 +01:00 (rev 12690)
+++ trunk/coregrind/m_debuginfo/readdwarf3.c 2012-06-30 21:21:58 +01:00 (rev 12691)
@@ -2588,8 +2588,14 @@
if (is_decl && (!is_spec)) {
/* It's a DW_AT_declaration. We require the name but
nothing else. */
+ /* JRS 2012-06-28: following discussion w/ tromey, if the the
+ type doesn't have name, just make one up, and accept it.
+ It might be referred to by other DIEs, so ignoring it
+ doesn't seem like a safe option. */
if (typeE.Te.TyStOrUn.name == NULL)
- goto bad_DIE;
+ typeE.Te.TyStOrUn.name
+ = ML_(dinfo_strdup)( "di.readdwarf3.ptD.struct_type.3",
+ "<anon_struct_type>" );
typeE.Te.TyStOrUn.complete = False;
/* JRS 2009 Aug 10: <possible kludge>? */
/* Push this tyent on the stack, even though it's incomplete.
|