================
@@ -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);
----------------
ZequanWu wrote:

Yes, the DWARF is reasonable. I added this just in case of 
`UniqueDWARFASTTypeMap` failing to find the existing type again for some other 
reasons in the future... This checks doesn't get trigger for the test you 
reported before. Maybe it's not necessary, because the following loop also just 
check for the fully qualified names: 
https://github.com/llvm/llvm-project/blob/main/lldb/source/Plugins/SymbolFile/DWARF/UniqueDWARFASTType.cpp#L39-L71.
 

https://github.com/llvm/llvm-project/pull/93839
_______________________________________________
lldb-commits mailing list
lldb-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits

Reply via email to