Lines Matching defs:CSM

7007     CXXSpecialMemberKind CSM = getSpecialMember(M);
7009 if (CSM != CXXSpecialMemberKind::Invalid) {
7010 M->setTrivial(SpecialMemberIsTrivial(M, CSM));
7015 SpecialMemberIsTrivial(M, CSM, TAH_ConsiderTrivialABI));
7022 if ((CSM == CXXSpecialMemberKind::CopyConstructor ||
7023 CSM == CXXSpecialMemberKind::MoveConstructor ||
7024 CSM == CXXSpecialMemberKind::Destructor) &&
7034 (CSM == CXXSpecialMemberKind::DefaultConstructor ||
7035 CSM == CXXSpecialMemberKind::CopyConstructor ||
7036 CSM == CXXSpecialMemberKind::Destructor))
7079 if (CSM != CXXSpecialMemberKind::Invalid && !M->isDeleted() &&
7198 /// \param CSM The kind of special member function.
7205 CXXSpecialMemberKind CSM, unsigned FieldQuals,
7208 if (CSM == CXXSpecialMemberKind::CopyAssignment ||
7209 CSM == CXXSpecialMemberKind::MoveAssignment)
7213 if (CSM == CXXSpecialMemberKind::DefaultConstructor ||
7214 CSM == CXXSpecialMemberKind::Destructor)
7219 return S.LookupSpecialMember(Class, CSM,
7311 Sema &S, CXXRecordDecl *ClassDecl, CXXSpecialMemberKind CSM, unsigned Quals,
7322 assert(CSM == CXXSpecialMemberKind::DefaultConstructor);
7329 if (CSM == CXXSpecialMemberKind::DefaultConstructor)
7331 if (CSM == CXXSpecialMemberKind::Destructor)
7335 lookupCallFromSpecialMember(S, ClassDecl, CSM, Quals, ConstRHS);
7346 Sema &S, CXXRecordDecl *ClassDecl, CXXSpecialMemberKind CSM, bool ConstArg,
7355 switch (CSM) {
7395 return CSM == CXXSpecialMemberKind::DefaultConstructor
7419 if (!specialMemberIsConstexpr(S, BaseClassDecl, CSM, 0, ConstArg,
7436 if (CSM == CXXSpecialMemberKind::DefaultConstructor &&
7442 if (!specialMemberIsConstexpr(S, FieldRecDecl, CSM,
7446 } else if (CSM == CXXSpecialMemberKind::DefaultConstructor) {
7479 CXXSpecialMemberKind CSM,
7556 CXXSpecialMemberKind CSM,
7560 assert(MD->isExplicitlyDefaulted() && CSM != CXXSpecialMemberKind::Invalid &&
7586 if (CSM == CXXSpecialMemberKind::DefaultConstructor ||
7587 CSM == CXXSpecialMemberKind::Destructor)
7594 << llvm::to_underlying(CSM) << MD->getSourceRange();
7601 << llvm::to_underlying(CSM) << MD->getSourceRange();
7609 if (CSM == CXXSpecialMemberKind::CopyConstructor)
7611 else if (CSM == CXXSpecialMemberKind::CopyAssignment)
7615 if (CSM == CXXSpecialMemberKind::CopyAssignment ||
7616 CSM == CXXSpecialMemberKind::MoveAssignment) {
7630 << (CSM == CXXSpecialMemberKind::MoveAssignment)
7641 << (CSM == CXXSpecialMemberKind::MoveAssignment)
7660 << (CSM == CXXSpecialMemberKind::MoveAssignment) << RD
7684 << llvm::to_underlying(CSM);
7692 else if (CSM == CXXSpecialMemberKind::CopyConstructor ||
7693 CSM == CXXSpecialMemberKind::CopyAssignment) {
7696 << (CSM == CXXSpecialMemberKind::CopyAssignment);
7702 << (CSM == CXXSpecialMemberKind::MoveAssignment);
7709 assert(CSM == CXXSpecialMemberKind::CopyAssignment &&
7724 bool Constexpr = defaultedSpecialMemberIsConstexpr(*this, RD, CSM,
7745 << llvm::to_underlying(CSM);
7750 << llvm::to_underlying(CSM) << MD->isConsteval();
7779 if (ShouldDeleteForTypeMismatch || ShouldDeleteSpecialMember(MD, CSM)) {
7784 << llvm::to_underlying(CSM);
7787 << llvm::to_underlying(CSM);
7788 } else if (ShouldDeleteSpecialMember(MD, CSM, nullptr,
7798 << llvm::to_underlying(CSM);
7805 << llvm::to_underlying(CSM);
7807 ShouldDeleteSpecialMember(MD, CSM, nullptr, /*Diagnose*/true);
9150 CXXSpecialMemberKind CSM;
9156 SpecialMemberVisitor(Sema &S, CXXMethodDecl *MD, CXXSpecialMemberKind CSM,
9158 : S(S), MD(MD), CSM(CSM), ICI(ICI) {
9159 switch (CSM) {
9186 return CSM == CXXSpecialMemberKind::MoveConstructor ||
9187 CSM == CXXSpecialMemberKind::MoveAssignment;
9193 return lookupCallFromSpecialMember(S, Class, CSM, Quals,
9202 assert(CSM == CXXSpecialMemberKind::DefaultConstructor);
9272 CXXSpecialMemberKind CSM,
9274 : SpecialMemberVisitor(S, MD, CSM, ICI), Diagnose(Diagnose),
9280 return ICI ? CXXSpecialMemberKind::Invalid : CSM;
9346 if (CSM == CXXSpecialMemberKind::DefaultConstructor) {
9408 if (!(CSM == CXXSpecialMemberKind::DefaultConstructor && Field &&
9438 if (CSM == CXXSpecialMemberKind::DefaultConstructor &&
9491 if (CSM == CXXSpecialMemberKind::DefaultConstructor) {
9514 } else if (CSM == CXXSpecialMemberKind::CopyConstructor) {
9565 if (CSM == CXXSpecialMemberKind::DefaultConstructor &&
9594 if (CSM == CXXSpecialMemberKind::DefaultConstructor && inUnion() &&
9615 CXXSpecialMemberKind CSM,
9632 (CSM == CXXSpecialMemberKind::DefaultConstructor ||
9633 CSM == CXXSpecialMemberKind::CopyAssignment)) {
9642 if (CSM != CXXSpecialMemberKind::DefaultConstructor &&
9643 CSM != CXXSpecialMemberKind::Destructor && RD->isAnonymousStructOrUnion())
9650 if (MD->isImplicit() && (CSM == CXXSpecialMemberKind::CopyConstructor ||
9651 CSM == CXXSpecialMemberKind::CopyAssignment)) {
9663 CSM == CXXSpecialMemberKind::CopyConstructor)) {
9676 CSM == CXXSpecialMemberKind::CopyAssignment)) {
9692 << (CSM == CXXSpecialMemberKind::CopyAssignment) << RD
9704 if (CSM == CXXSpecialMemberKind::Destructor && MD->isVirtual()) {
9716 SpecialMemberDeletionInfo SMI(*this, MD, CSM, ICI, Diagnose);
9734 // For inherited constructors (non-null ICI), CSM may be passed so that MD
9737 // expects CSM to match MD, therefore recalculate CSM.
9738 assert(ICI || CSM == getSpecialMember(MD));
9739 auto RealCSM = CSM;
9778 CXXSpecialMemberKind CSM, unsigned Quals,
9785 switch (CSM) {
9875 lookupCallFromSpecialMember(S, RD, CSM, Quals, ConstRHS);
9896 (CSM == CXXSpecialMemberKind::CopyConstructor ||
9897 CSM == CXXSpecialMemberKind::MoveConstructor))
9935 CXXSpecialMemberKind CSM,
9944 if (findTrivialSpecialMember(S, SubRD, CSM, SubType.getCVRQualifiers(),
9952 if (!Selected && CSM == CXXSpecialMemberKind::DefaultConstructor) {
9959 << Kind << SubType.getUnqualifiedType() << llvm::to_underlying(CSM)
9964 << Kind << SubType.getUnqualifiedType() << llvm::to_underlying(CSM);
9967 << Kind << SubType.getUnqualifiedType() << llvm::to_underlying(CSM);
9973 << Kind << SubType.getUnqualifiedType() << llvm::to_underlying(CSM);
9976 S.SpecialMemberIsTrivial(Selected, CSM, Sema::TAH_IgnoreTrivialABI,
9987 CXXSpecialMemberKind CSM, bool ConstArg,
9999 CSM, ConstArg, TAH, Diagnose))
10008 if (CSM == CXXSpecialMemberKind::DefaultConstructor &&
10029 CSM, TSK_Field, TAH, Diagnose))
10037 CXXSpecialMemberKind CSM) {
10040 bool ConstArg = (CSM == CXXSpecialMemberKind::CopyConstructor ||
10041 CSM == CXXSpecialMemberKind::CopyAssignment);
10042 checkTrivialSubobjectCall(*this, RD->getLocation(), Ty, ConstArg, CSM,
10047 bool Sema::SpecialMemberIsTrivial(CXXMethodDecl *MD, CXXSpecialMemberKind CSM,
10049 assert(!MD->isUserProvided() && CSM != CXXSpecialMemberKind::Invalid &&
10059 switch (CSM) {
10139 ConstArg, CSM, TSK_BaseClass, TAH, Diagnose))
10154 if (!checkTrivialClassMembers(*this, RD, CSM, ConstArg, TAH, Diagnose))
10160 if (CSM == CXXSpecialMemberKind::Destructor && MD->isVirtual()) {
10169 if (CSM != CXXSpecialMemberKind::Destructor &&
13604 CXXSpecialMemberKind CSM,
13607 : SpecialMemberVisitor(S, MD, CSM, ICI), Loc(Loc), ExceptSpec(S) {}
13637 if (CSM == CXXSpecialMemberKind::DefaultConstructor &&
13697 Sema &S, SourceLocation Loc, CXXMethodDecl *MD, CXXSpecialMemberKind CSM,
13706 SpecialMemberExceptionSpecInfo Info(S, MD, CSM, ICI, MD->getLocation());
13747 DeclaringSpecialMember(Sema &S, CXXRecordDecl *RD, CXXSpecialMemberKind CSM)
13748 : S(S), D(RD, CSM), SavedContext(S, RD) {
13767 Ctx.SpecialMember = CSM;