Lines Matching refs:CSM

6960     CXXSpecialMember CSM = getSpecialMember(M);  in CheckCompletedCXXClass()  local
6962 if (CSM != CXXInvalid) { in CheckCompletedCXXClass()
6963 M->setTrivial(SpecialMemberIsTrivial(M, CSM)); in CheckCompletedCXXClass()
6968 SpecialMemberIsTrivial(M, CSM, TAH_ConsiderTrivialABI)); in CheckCompletedCXXClass()
6975 if ((CSM == CXXCopyConstructor || CSM == CXXMoveConstructor || in CheckCompletedCXXClass()
6976 CSM == CXXDestructor) && M->isUserProvided()) { in CheckCompletedCXXClass()
6985 (CSM == CXXDefaultConstructor || CSM == CXXCopyConstructor || in CheckCompletedCXXClass()
6986 CSM == CXXDestructor)) in CheckCompletedCXXClass()
6998 if (CSM != CXXInvalid && !M->isDeleted() && M->isDefaulted() && in CheckCompletedCXXClass()
7121 Sema &S, CXXRecordDecl *Class, Sema::CXXSpecialMember CSM, in lookupCallFromSpecialMember() argument
7124 if (CSM == Sema::CXXCopyAssignment || CSM == Sema::CXXMoveAssignment) in lookupCallFromSpecialMember()
7128 if (CSM == Sema::CXXDefaultConstructor || CSM == Sema::CXXDestructor) in lookupCallFromSpecialMember()
7133 return S.LookupSpecialMember(Class, CSM, in lookupCallFromSpecialMember()
7226 Sema::CXXSpecialMember CSM, unsigned Quals, in specialMemberIsConstexpr() argument
7238 assert(CSM == Sema::CXXDefaultConstructor); in specialMemberIsConstexpr()
7245 if (CSM == Sema::CXXDefaultConstructor) in specialMemberIsConstexpr()
7247 if (CSM == Sema::CXXDestructor) in specialMemberIsConstexpr()
7251 lookupCallFromSpecialMember(S, ClassDecl, CSM, Quals, ConstRHS); in specialMemberIsConstexpr()
7262 Sema &S, CXXRecordDecl *ClassDecl, Sema::CXXSpecialMember CSM, in defaultedSpecialMemberIsConstexpr() argument
7271 switch (CSM) { in defaultedSpecialMemberIsConstexpr()
7311 return CSM == Sema::CXXDefaultConstructor in defaultedSpecialMemberIsConstexpr()
7334 if (!specialMemberIsConstexpr(S, BaseClassDecl, CSM, 0, ConstArg, in defaultedSpecialMemberIsConstexpr()
7349 if (CSM == Sema::CXXDefaultConstructor && F->hasInClassInitializer()) in defaultedSpecialMemberIsConstexpr()
7354 if (!specialMemberIsConstexpr(S, FieldRecDecl, CSM, in defaultedSpecialMemberIsConstexpr()
7358 } else if (CSM == Sema::CXXDefaultConstructor) { in defaultedSpecialMemberIsConstexpr()
7389 Sema &S, SourceLocation Loc, CXXMethodDecl *MD, Sema::CXXSpecialMember CSM,
7466 CXXSpecialMember CSM, in CheckExplicitlyDefaultedSpecialMember() argument
7470 assert(MD->isExplicitlyDefaulted() && CSM != CXXInvalid && in CheckExplicitlyDefaultedSpecialMember()
7496 if (CSM == CXXDefaultConstructor || CSM == CXXDestructor) in CheckExplicitlyDefaultedSpecialMember()
7503 << CSM << MD->getSourceRange(); in CheckExplicitlyDefaultedSpecialMember()
7510 << CSM << MD->getSourceRange(); in CheckExplicitlyDefaultedSpecialMember()
7518 if (CSM == CXXCopyConstructor) in CheckExplicitlyDefaultedSpecialMember()
7520 else if (CSM == CXXCopyAssignment) in CheckExplicitlyDefaultedSpecialMember()
7524 if (CSM == CXXCopyAssignment || CSM == CXXMoveAssignment) { in CheckExplicitlyDefaultedSpecialMember()
7535 << (CSM == CXXMoveAssignment) << ExpectedReturnType; in CheckExplicitlyDefaultedSpecialMember()
7545 << (CSM == CXXMoveAssignment) << getLangOpts().CPlusPlus14; in CheckExplicitlyDefaultedSpecialMember()
7564 diag::err_defaulted_special_member_volatile_param) << CSM; in CheckExplicitlyDefaultedSpecialMember()
7572 else if (CSM == CXXCopyConstructor || CSM == CXXCopyAssignment) { in CheckExplicitlyDefaultedSpecialMember()
7575 << (CSM == CXXCopyAssignment); in CheckExplicitlyDefaultedSpecialMember()
7581 << (CSM == CXXMoveAssignment); in CheckExplicitlyDefaultedSpecialMember()
7588 assert(CSM == CXXCopyAssignment && "unexpected non-ref argument"); in CheckExplicitlyDefaultedSpecialMember()
7602 bool Constexpr = defaultedSpecialMemberIsConstexpr(*this, RD, CSM, in CheckExplicitlyDefaultedSpecialMember()
7623 << CSM; in CheckExplicitlyDefaultedSpecialMember()
7651 if (ShouldDeleteForTypeMismatch || ShouldDeleteSpecialMember(MD, CSM)) { in CheckExplicitlyDefaultedSpecialMember()
7655 Diag(MD->getLocation(), diag::warn_defaulted_method_deleted) << CSM; in CheckExplicitlyDefaultedSpecialMember()
7657 Diag(MD->getLocation(), diag::note_deleted_type_mismatch) << CSM; in CheckExplicitlyDefaultedSpecialMember()
7658 } else if (ShouldDeleteSpecialMember(MD, CSM, nullptr, in CheckExplicitlyDefaultedSpecialMember()
7667 diag::warn_cxx17_compat_defaulted_method_type_mismatch) << CSM; in CheckExplicitlyDefaultedSpecialMember()
7673 Diag(MD->getLocation(), diag::err_out_of_line_default_deletes) << CSM; in CheckExplicitlyDefaultedSpecialMember()
7675 ShouldDeleteSpecialMember(MD, CSM, nullptr, /*Diagnose*/true); in CheckExplicitlyDefaultedSpecialMember()
8965 Sema::CXXSpecialMember CSM; member
8971 SpecialMemberVisitor(Sema &S, CXXMethodDecl *MD, Sema::CXXSpecialMember CSM, in SpecialMemberVisitor()
8973 : S(S), MD(MD), CSM(CSM), ICI(ICI) { in SpecialMemberVisitor()
8974 switch (CSM) { in SpecialMemberVisitor()
9001 return CSM == Sema::CXXMoveConstructor || CSM == Sema::CXXMoveAssignment; in isMove()
9007 return lookupCallFromSpecialMember(S, Class, CSM, Quals, in lookupIn()
9016 assert(CSM == Sema::CXXDefaultConstructor); in lookupInheritedCtor()
9086 Sema::CXXSpecialMember CSM, in SpecialMemberDeletionInfo()
9088 : SpecialMemberVisitor(S, MD, CSM, ICI), Diagnose(Diagnose), in SpecialMemberDeletionInfo()
9094 return ICI ? Sema::CXXInvalid : CSM; in getEffectiveCSM()
9210 if (!(CSM == Sema::CXXDefaultConstructor && in shouldDeleteForClassSubobject()
9240 if (CSM == Sema::CXXDefaultConstructor && FD->hasInClassInitializer()) in shouldDeleteForVariantObjCPtrMember()
9292 if (CSM == Sema::CXXDefaultConstructor) { in shouldDeleteForField()
9315 } else if (CSM == Sema::CXXCopyConstructor) { in shouldDeleteForField()
9366 if (CSM == Sema::CXXDefaultConstructor && AllVariantFieldsAreConst && in shouldDeleteForField()
9395 if (CSM == Sema::CXXDefaultConstructor && inUnion() && AllFieldsAreConst) { in shouldDeleteForAllConstMembers()
9414 bool Sema::ShouldDeleteSpecialMember(CXXMethodDecl *MD, CXXSpecialMember CSM, in ShouldDeleteSpecialMember() argument
9430 (CSM == CXXDefaultConstructor || CSM == CXXCopyAssignment)) { in ShouldDeleteSpecialMember()
9439 if (CSM != CXXDefaultConstructor && CSM != CXXDestructor && in ShouldDeleteSpecialMember()
9448 (CSM == CXXCopyConstructor || CSM == CXXCopyAssignment)) { in ShouldDeleteSpecialMember()
9459 (!DeletesOnlyMatchingCopy || CSM == CXXCopyConstructor)) { in ShouldDeleteSpecialMember()
9471 (!DeletesOnlyMatchingCopy || CSM == CXXCopyAssignment)) { in ShouldDeleteSpecialMember()
9487 << (CSM == CXXCopyAssignment) << RD in ShouldDeleteSpecialMember()
9499 if (CSM == CXXDestructor && MD->isVirtual()) { in ShouldDeleteSpecialMember()
9511 SpecialMemberDeletionInfo SMI(*this, MD, CSM, ICI, Diagnose); in ShouldDeleteSpecialMember()
9533 assert(ICI || CSM == getSpecialMember(MD)); in ShouldDeleteSpecialMember()
9534 auto RealCSM = CSM; in ShouldDeleteSpecialMember()
9573 Sema::CXXSpecialMember CSM, unsigned Quals, in findTrivialSpecialMember() argument
9580 switch (CSM) { in findTrivialSpecialMember()
9670 lookupCallFromSpecialMember(S, RD, CSM, Quals, ConstRHS); in findTrivialSpecialMember()
9691 (CSM == Sema::CXXCopyConstructor || CSM == Sema::CXXMoveConstructor)) in findTrivialSpecialMember()
9729 Sema::CXXSpecialMember CSM, in checkTrivialSubobjectCall() argument
9737 if (findTrivialSpecialMember(S, SubRD, CSM, SubType.getCVRQualifiers(), in checkTrivialSubobjectCall()
9745 if (!Selected && CSM == Sema::CXXDefaultConstructor) { in checkTrivialSubobjectCall()
9752 << Kind << SubType.getUnqualifiedType() << CSM << SubType; in checkTrivialSubobjectCall()
9756 << Kind << SubType.getUnqualifiedType() << CSM; in checkTrivialSubobjectCall()
9759 << Kind << SubType.getUnqualifiedType() << CSM; in checkTrivialSubobjectCall()
9765 << Kind << SubType.getUnqualifiedType() << CSM; in checkTrivialSubobjectCall()
9768 S.SpecialMemberIsTrivial(Selected, CSM, Sema::TAH_IgnoreTrivialABI, in checkTrivialSubobjectCall()
9779 Sema::CXXSpecialMember CSM, in checkTrivialClassMembers() argument
9792 CSM, ConstArg, TAH, Diagnose)) in checkTrivialClassMembers()
9801 if (CSM == Sema::CXXDefaultConstructor && FI->hasInClassInitializer()) { in checkTrivialClassMembers()
9821 CSM, TSK_Field, TAH, Diagnose)) in checkTrivialClassMembers()
9830 void Sema::DiagnoseNontrivial(const CXXRecordDecl *RD, CXXSpecialMember CSM) { in DiagnoseNontrivial() argument
9833 bool ConstArg = (CSM == CXXCopyConstructor || CSM == CXXCopyAssignment); in DiagnoseNontrivial()
9834 checkTrivialSubobjectCall(*this, RD->getLocation(), Ty, ConstArg, CSM, in DiagnoseNontrivial()
9842 bool Sema::SpecialMemberIsTrivial(CXXMethodDecl *MD, CXXSpecialMember CSM, in SpecialMemberIsTrivial() argument
9844 assert(!MD->isUserProvided() && CSM != CXXInvalid && "not special enough"); in SpecialMemberIsTrivial()
9853 switch (CSM) { in SpecialMemberIsTrivial()
9933 ConstArg, CSM, TSK_BaseClass, TAH, Diagnose)) in SpecialMemberIsTrivial()
9948 if (!checkTrivialClassMembers(*this, RD, CSM, ConstArg, TAH, Diagnose)) in SpecialMemberIsTrivial()
9954 if (CSM == CXXDestructor && MD->isVirtual()) { in SpecialMemberIsTrivial()
9963 if (CSM != CXXDestructor && MD->getParent()->isDynamicClass()) { in SpecialMemberIsTrivial()
13298 Sema::CXXSpecialMember CSM, in SpecialMemberExceptionSpecInfo()
13301 : SpecialMemberVisitor(S, MD, CSM, ICI), Loc(Loc), ExceptSpec(S) {} in SpecialMemberExceptionSpecInfo()
13331 if (CSM == Sema::CXXDefaultConstructor && FD->hasInClassInitializer()) { in visitField()
13390 Sema &S, SourceLocation Loc, CXXMethodDecl *MD, Sema::CXXSpecialMember CSM, in ComputeDefaultedSpecialMemberExceptionSpec() argument
13399 SpecialMemberExceptionSpecInfo Info(S, MD, CSM, ICI, MD->getLocation()); in ComputeDefaultedSpecialMemberExceptionSpec()
13440 DeclaringSpecialMember(Sema &S, CXXRecordDecl *RD, Sema::CXXSpecialMember CSM) in DeclaringSpecialMember()
13441 : S(S), D(RD, CSM), SavedContext(S, RD) { in DeclaringSpecialMember()
13460 Ctx.SpecialMember = CSM; in DeclaringSpecialMember()