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.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@12691 a5019735-40e9-0310-863c-91ae7b9d1cf9
diff --git a/coregrind/m_debuginfo/readdwarf3.c b/coregrind/m_debuginfo/readdwarf3.c
index 1654097..44dbc77 100644
--- a/coregrind/m_debuginfo/readdwarf3.c
+++ b/coregrind/m_debuginfo/readdwarf3.c
@@ -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.