[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