[Lldb-commits] [lldb] [lldb][DWARF] Fix adding children to clang type that hasn't started definition. (PR #93839)
Michael Buch via lldb-commits
lldb-commits at lists.llvm.org
Thu May 30 09:08:13 PDT 2024
================
@@ -2232,6 +2232,11 @@ bool DWARFASTParserClang::CompleteRecordType(const DWARFDIE &die,
// For objective C we don't start the definition when the class is
// created.
TypeSystemClang::StartTagDeclarationDefinition(clang_type);
+ } else if (!clang_type.IsBeingDefined()) {
+ // In case of some weired DWARF causing we don't start definition on this
+ // definition DIE because we failed to find existing clang_type from
+ // UniqueDWARFASTTypeMap due to overstrict checking.
+ TypeSystemClang::StartTagDeclarationDefinition(clang_type);
----------------
Michael137 wrote:
Hmmm in the crashing test case the DWARF itself seems reasonable right? So the comment is a bit misleading.
I like the idea of doing both `TypeSystemClang::StartTagDeclarationDefinition` *and* `TypeSystemClang::CompleteTagDeclarationDefinition` in `CompleteRecordType` (in fact that's what we're trying to do in https://discourse.llvm.org/t/rfc-lldb-more-reliable-completion-of-record-types/77442#changes-5), but I'd like to understand how we get here after https://github.com/llvm/llvm-project/pull/92328 but not prior. Let me re-read your comment
https://github.com/llvm/llvm-project/pull/93839
More information about the lldb-commits
mailing list