================ @@ -3059,9 +3059,8 @@ void DWARFASTParserClang::ParseSingleMember( // This needs to be done after updating FieldInfo which keeps track of where // field start/end so we don't later try to fill the space of this // artificial member with (unnamed bitfield) padding. - // FIXME: This check should verify that this is indeed an artificial member - // we are supposed to ignore. - if (attrs.is_artificial) { + if (attrs.is_artificial && + TypeSystemClang::ShouldIgnoreArtificialField(attrs.name)) { ---------------- hokein wrote:
This function is only used to parse `DW_TAG_MEMBER`. I took a look on all related usages of `createMemberType` with `llvm::DINode::FlagArtificial` in the llvm source repo: - vptr pointer: https://github.com/llvm/llvm-project/blob/main/clang/lib/CodeGen/CGDebugInfo.cpp#L2426 - coroutines: - https://github.com/llvm/llvm-project/blob/main/llvm/lib/Transforms/Coroutines/CoroFrame.cpp#L1058 - https://github.com/llvm/llvm-project/blob/main/llvm/lib/Transforms/Coroutines/CoroFrame.cpp#L1234 so two cases are virtual pointer, and coroutines frames. And to my best knowledge, not ignoring coroutine artificial fields should be fine, the coroutine frame is just a regular plain struct . https://github.com/llvm/llvm-project/pull/70779 _______________________________________________ lldb-commits mailing list lldb-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits