Michael137 wrote: Ah looks like in `GetClangDeclForDIE`, when trying to parse the `DW_AT_specification` that the CU-level `DW_TAG_variable` points to, we now try to `CreateVariableDeclaration`, because the static member is a `DW_TAG_variable` too. Whereas previously we would just fall-through [this switch-statement](https://github.com/llvm/llvm-project/blob/640ef55bbbc081b72a87f71cab1bce08762e48b0/lldb/source/Plugins/SymbolFile/DWARF/DWARFASTParserClang.cpp#L3324), i.e., it was a no-op. Adding `VarDecl`s to `RecordDecl`s for static data members should always be done in `CreateStaticMemberVariable`.
In your reproducer it looks like we only ever emit a forward declaration for the containing structure `t1`. So it seems like for DWARFv4, we just never end up trying to call `CreateStaticMemberVariable` on a `CXXRecordDecl` without a definition. Maybe the solution is to add a check inside `GetClangDeclForDIE` whether we're referring to a static data member, and if we do, restore previous behaviour where we don't try to create a `VarDecl` at that point. https://github.com/llvm/llvm-project/pull/72235 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits