Sweet, thanks Greg! It looks like that commit fixes the buildbots. Dan
On 2013-09-16 6:16 PM, "Greg Clayton" <[email protected]> wrote: >I believe 190811 just fixed this. Please let me know your results! > >On Sep 16, 2013, at 12:12 PM, Malea, Daniel <[email protected]> >wrote: > >> Hi Greg, >> >> This commit seems to introduce a few errors on the buildbots in the >>following tests: >> - TestDynamicValue >> - TestVirtual >> >> http://lab.llvm.org:8011/builders/lldb-x86_64-linux/builds/6709 >> >> When you have a moment, can you take a look? >> >> >> Thanks, >> Dan >> >> -----Original Message----- >> From: [email protected] >>[mailto:[email protected]] On Behalf Of Greg Clayton >> Sent: Friday, August 9, 2013 8:10 PM >> To: [email protected] >> Subject: [Lldb-commits] [lldb] r188124 - Fixed a case where GCC was >>emitting a DW_TAG_class_type that has a DW_AT_declaration set to true, >>yet the class actually contains a definition for the class in that DIE. >> >> Author: gclayton >> Date: Fri Aug 9 19:09:35 2013 >> New Revision: 188124 >> >> URL: http://llvm.org/viewvc/llvm-project?rev=188124&view=rev >> Log: >> Fixed a case where GCC was emitting a DW_TAG_class_type that has a >>DW_AT_declaration set to true, yet the class actually contains a >>definition for the class in that DIE. >> >> >> Modified: >> lldb/trunk/source/Plugins/SymbolFile/DWARF/SymbolFileDWARF.cpp >> >> Modified: lldb/trunk/source/Plugins/SymbolFile/DWARF/SymbolFileDWARF.cpp >> URL: >>http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Plugins/SymbolFile/ >>DWARF/SymbolFileDWARF.cpp?rev=188124&r1=188123&r2=188124&view=diff >> >>========================================================================= >>===== >> --- lldb/trunk/source/Plugins/SymbolFile/DWARF/SymbolFileDWARF.cpp >>(original) >> +++ lldb/trunk/source/Plugins/SymbolFile/DWARF/SymbolFileDWARF.cpp Fri >>Aug 9 19:09:35 2013 >> @@ -6193,6 +6193,30 @@ SymbolFileDWARF::ParseType (const Symbol >> GetUniqueDWARFASTTypeMap().Insert >>(type_name_const_str, >> >>unique_ast_entry); >> >> + if (is_forward_declaration && die->HasChildren()) >> + { >> + // Check to see if the DIE actually has a >>definition, some version of GCC will >> + // emit DIEs with DW_AT_declaration set to >>true, but yet still have subprogram, >> + // members, or inheritance, so we can't trust >>it >> + const DWARFDebugInfoEntry *child_die = >>die->GetFirstChild(); >> + while (child_die) >> + { >> + switch (child_die->Tag()) >> + { >> + case DW_TAG_inheritance: >> + case DW_TAG_subprogram: >> + case DW_TAG_member: >> + case DW_TAG_APPLE_property: >> + child_die = NULL; >> + is_forward_declaration = false; >> + break; >> + default: >> + child_die = >>child_die->GetSibling(); >> + break; >> + } >> + } >> + } >> + >> if (!is_forward_declaration) >> { >> // Always start the definition for a class type >>so that >> >> >> _______________________________________________ >> lldb-commits mailing list >> [email protected] >> http://lists.cs.uiuc.edu/mailman/listinfo/lldb-commits > _______________________________________________ lldb-commits mailing list [email protected] http://lists.cs.uiuc.edu/mailman/listinfo/lldb-commits
