]> git.ipfire.org Git - thirdparty/valgrind.git/commitdiff
Don't be spooked by DW_TAG_{structure,class,union}_type that has only
authorJulian Seward <jseward@acm.org>
Sat, 30 Jun 2012 20:21:58 +0000 (20:21 +0000)
committerJulian Seward <jseward@acm.org>
Sat, 30 Jun 2012 20:21:58 +0000 (20:21 +0000)
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

coregrind/m_debuginfo/readdwarf3.c

index 1654097fdd3696fd82f94bc317ad99027641d323..44dbc77ef5e9edcbe6589c0b2e1bacf394637ab3 100644 (file)
@@ -2588,8 +2588,14 @@ static void parse_type_DIE ( /*MOD*/XArray* /* of TyEnt */ tyents,
       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.