[clang] [llvm] [clang] Add support for emitting DW_AT_defaulted (PR #213188)
Alex Langford via cfe-commits
cfe-commits at lists.llvm.org
Mon Aug 3 09:56:11 PDT 2026
================
@@ -2504,6 +2504,19 @@ llvm::DISubprogram *CGDebugInfo::CreateCXXMemberFunction(
if (Method->getCanonicalDecl()->isDeleted())
SPFlags |= llvm::DISubprogram::SPFlagDeleted;
+ const bool isExplicitlyDefaultable =
+ isa<CXXDestructorDecl>(Method) ||
+ (isa<CXXConstructorDecl>(Method) &&
+ cast<CXXConstructorDecl>(Method)->isDefaultConstructor()) ||
+ Method->isCopyOrMoveConstructorOrAssignment();
+ if (Method->isExplicitlyDefaulted())
+ SPFlags |= Method->isOutOfLine()
+ ? llvm::DISubprogram::SPFlagDefaultedOutOfClass
+ : llvm::DISubprogram::SPFlagDefaultedInClass;
+ else if (isExplicitlyDefaultable && !Method->isImplicit() &&
----------------
bulbazord wrote:
I think it should be `isImplicit` because we don't want to emit any attributes for artificial (i.e. compiler-generated) constructors/destructors.
https://github.com/llvm/llvm-project/pull/213188
More information about the cfe-commits
mailing list