From: Julian Seward Date: Mon, 10 Aug 2009 18:59:54 +0000 (+0000) Subject: parse_type_DIE: push incomplete structure tyents on the type stack, X-Git-Tag: svn/VALGRIND_3_5_0~80 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=8379ad7f3b49895fe52d23922b035bf9c9b36c27;p=thirdparty%2Fvalgrind.git parse_type_DIE: push incomplete structure tyents on the type stack, since gcc-4.4 on Fedora 11 will create DW_TAG_member entries within it, and we need to have a plausible parent type on the stack. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@10770 --- diff --git a/coregrind/m_debuginfo/readdwarf3.c b/coregrind/m_debuginfo/readdwarf3.c index fff92d5466..174b9d2c80 100644 --- a/coregrind/m_debuginfo/readdwarf3.c +++ b/coregrind/m_debuginfo/readdwarf3.c @@ -2307,6 +2307,14 @@ static void parse_type_DIE ( /*MOD*/XArray* /* of TyEnt */ tyents, if (typeE.Te.TyStOrUn.name == NULL) goto bad_DIE; typeE.Te.TyStOrUn.complete = False; + /* JRS 2009 Aug 10: ? */ + /* Push this tyent on the stack, even though it's incomplete. + It appears that gcc-4.4 on Fedora 11 will sometimes create + DW_TAG_member entries for it, and so we need to have a + plausible parent present in order for that to work. See + #200029 comments 8 and 9. */ + typestack_push( cc, parser, td3, &typeE, level ); + /* */ goto acquire_Type; } if ((!is_decl) /* && (!is_spec) */) {