|
From: <sv...@va...> - 2009-08-10 19:00:07
|
Author: sewardj
Date: 2009-08-10 19:59:54 +0100 (Mon, 10 Aug 2009)
New Revision: 10770
Log:
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.
Modified:
trunk/coregrind/m_debuginfo/readdwarf3.c
Modified: trunk/coregrind/m_debuginfo/readdwarf3.c
===================================================================
--- trunk/coregrind/m_debuginfo/readdwarf3.c 2009-08-10 14:13:12 UTC (rev 10769)
+++ trunk/coregrind/m_debuginfo/readdwarf3.c 2009-08-10 18:59:54 UTC (rev 10770)
@@ -2307,6 +2307,14 @@
if (typeE.Te.TyStOrUn.name == NULL)
goto bad_DIE;
typeE.Te.TyStOrUn.complete = False;
+ /* JRS 2009 Aug 10: <possible kludge>? */
+ /* 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 );
+ /* </possible kludge> */
goto acquire_Type;
}
if ((!is_decl) /* && (!is_spec) */) {
|