Lines Matching refs:CSM

6912     CXXSpecialMember CSM = getSpecialMember(M);  in CheckCompletedCXXClass()  local
6914 if (CSM != CXXInvalid) { in CheckCompletedCXXClass()
6915 M->setTrivial(SpecialMemberIsTrivial(M, CSM)); in CheckCompletedCXXClass()
6920 SpecialMemberIsTrivial(M, CSM, TAH_ConsiderTrivialABI)); in CheckCompletedCXXClass()
6927 if ((CSM == CXXCopyConstructor || CSM == CXXMoveConstructor || in CheckCompletedCXXClass()
6928 CSM == CXXDestructor) && M->isUserProvided()) { in CheckCompletedCXXClass()
6937 (CSM == CXXDefaultConstructor || CSM == CXXCopyConstructor || in CheckCompletedCXXClass()
6938 CSM == CXXDestructor)) in CheckCompletedCXXClass()
7072 Sema &S, CXXRecordDecl *Class, Sema::CXXSpecialMember CSM, in lookupCallFromSpecialMember() argument
7075 if (CSM == Sema::CXXCopyAssignment || CSM == Sema::CXXMoveAssignment) in lookupCallFromSpecialMember()
7079 if (CSM == Sema::CXXDefaultConstructor || CSM == Sema::CXXDestructor) in lookupCallFromSpecialMember()
7084 return S.LookupSpecialMember(Class, CSM, in lookupCallFromSpecialMember()
7177 Sema::CXXSpecialMember CSM, unsigned Quals, in specialMemberIsConstexpr() argument
7184 assert(CSM == Sema::CXXDefaultConstructor); in specialMemberIsConstexpr()
7191 if (CSM == Sema::CXXDefaultConstructor) in specialMemberIsConstexpr()
7193 if (CSM == Sema::CXXDestructor) in specialMemberIsConstexpr()
7197 lookupCallFromSpecialMember(S, ClassDecl, CSM, Quals, ConstRHS); in specialMemberIsConstexpr()
7208 Sema &S, CXXRecordDecl *ClassDecl, Sema::CXXSpecialMember CSM, in defaultedSpecialMemberIsConstexpr() argument
7217 switch (CSM) { in defaultedSpecialMemberIsConstexpr()
7257 return CSM == Sema::CXXDefaultConstructor in defaultedSpecialMemberIsConstexpr()
7280 if (!specialMemberIsConstexpr(S, BaseClassDecl, CSM, 0, ConstArg, in defaultedSpecialMemberIsConstexpr()
7295 if (CSM == Sema::CXXDefaultConstructor && F->hasInClassInitializer()) in defaultedSpecialMemberIsConstexpr()
7300 if (!specialMemberIsConstexpr(S, FieldRecDecl, CSM, in defaultedSpecialMemberIsConstexpr()
7304 } else if (CSM == Sema::CXXDefaultConstructor) { in defaultedSpecialMemberIsConstexpr()
7335 Sema &S, SourceLocation Loc, CXXMethodDecl *MD, Sema::CXXSpecialMember CSM,
7411 CXXSpecialMember CSM) { in CheckExplicitlyDefaultedSpecialMember() argument
7414 assert(MD->isExplicitlyDefaulted() && CSM != CXXInvalid && in CheckExplicitlyDefaultedSpecialMember()
7440 if (CSM == CXXDefaultConstructor || CSM == CXXDestructor) in CheckExplicitlyDefaultedSpecialMember()
7447 << CSM << MD->getSourceRange(); in CheckExplicitlyDefaultedSpecialMember()
7454 << CSM << MD->getSourceRange(); in CheckExplicitlyDefaultedSpecialMember()
7462 if (CSM == CXXCopyConstructor) in CheckExplicitlyDefaultedSpecialMember()
7464 else if (CSM == CXXCopyAssignment) in CheckExplicitlyDefaultedSpecialMember()
7468 if (CSM == CXXCopyAssignment || CSM == CXXMoveAssignment) { in CheckExplicitlyDefaultedSpecialMember()
7478 << (CSM == CXXMoveAssignment) << ExpectedReturnType; in CheckExplicitlyDefaultedSpecialMember()
7488 << (CSM == CXXMoveAssignment) << getLangOpts().CPlusPlus14; in CheckExplicitlyDefaultedSpecialMember()
7507 diag::err_defaulted_special_member_volatile_param) << CSM; in CheckExplicitlyDefaultedSpecialMember()
7515 else if (CSM == CXXCopyConstructor || CSM == CXXCopyAssignment) { in CheckExplicitlyDefaultedSpecialMember()
7518 << (CSM == CXXCopyAssignment); in CheckExplicitlyDefaultedSpecialMember()
7524 << (CSM == CXXMoveAssignment); in CheckExplicitlyDefaultedSpecialMember()
7531 assert(CSM == CXXCopyAssignment && "unexpected non-ref argument"); in CheckExplicitlyDefaultedSpecialMember()
7545 bool Constexpr = defaultedSpecialMemberIsConstexpr(*this, RD, CSM, in CheckExplicitlyDefaultedSpecialMember()
7555 << CSM; in CheckExplicitlyDefaultedSpecialMember()
7585 if (ShouldDeleteForTypeMismatch || ShouldDeleteSpecialMember(MD, CSM)) { in CheckExplicitlyDefaultedSpecialMember()
7589 Diag(MD->getLocation(), diag::warn_defaulted_method_deleted) << CSM; in CheckExplicitlyDefaultedSpecialMember()
7591 Diag(MD->getLocation(), diag::note_deleted_type_mismatch) << CSM; in CheckExplicitlyDefaultedSpecialMember()
7593 ShouldDeleteSpecialMember(MD, CSM, nullptr, /*Diagnose*/true); in CheckExplicitlyDefaultedSpecialMember()
7598 diag::warn_cxx17_compat_defaulted_method_type_mismatch) << CSM; in CheckExplicitlyDefaultedSpecialMember()
7604 Diag(MD->getLocation(), diag::err_out_of_line_default_deletes) << CSM; in CheckExplicitlyDefaultedSpecialMember()
7606 ShouldDeleteSpecialMember(MD, CSM, nullptr, /*Diagnose*/true); in CheckExplicitlyDefaultedSpecialMember()
8879 Sema::CXXSpecialMember CSM; member
8885 SpecialMemberVisitor(Sema &S, CXXMethodDecl *MD, Sema::CXXSpecialMember CSM, in SpecialMemberVisitor()
8887 : S(S), MD(MD), CSM(CSM), ICI(ICI) { in SpecialMemberVisitor()
8888 switch (CSM) { in SpecialMemberVisitor()
8915 return CSM == Sema::CXXMoveConstructor || CSM == Sema::CXXMoveAssignment; in isMove()
8921 return lookupCallFromSpecialMember(S, Class, CSM, Quals, in lookupIn()
8930 assert(CSM == Sema::CXXDefaultConstructor); in lookupInheritedCtor()
9000 Sema::CXXSpecialMember CSM, in SpecialMemberDeletionInfo()
9002 : SpecialMemberVisitor(S, MD, CSM, ICI), Diagnose(Diagnose), in SpecialMemberDeletionInfo()
9008 return ICI ? Sema::CXXInvalid : CSM; in getEffectiveCSM()
9124 if (!(CSM == Sema::CXXDefaultConstructor && in shouldDeleteForClassSubobject()
9154 if (CSM == Sema::CXXDefaultConstructor && FD->hasInClassInitializer()) in shouldDeleteForVariantObjCPtrMember()
9206 if (CSM == Sema::CXXDefaultConstructor) { in shouldDeleteForField()
9229 } else if (CSM == Sema::CXXCopyConstructor) { in shouldDeleteForField()
9280 if (CSM == Sema::CXXDefaultConstructor && AllVariantFieldsAreConst && in shouldDeleteForField()
9309 if (CSM == Sema::CXXDefaultConstructor && inUnion() && AllFieldsAreConst) { in shouldDeleteForAllConstMembers()
9328 bool Sema::ShouldDeleteSpecialMember(CXXMethodDecl *MD, CXXSpecialMember CSM, in ShouldDeleteSpecialMember() argument
9344 (CSM == CXXDefaultConstructor || CSM == CXXCopyAssignment)) { in ShouldDeleteSpecialMember()
9353 if (CSM != CXXDefaultConstructor && CSM != CXXDestructor && in ShouldDeleteSpecialMember()
9362 (CSM == CXXCopyConstructor || CSM == CXXCopyAssignment)) { in ShouldDeleteSpecialMember()
9373 (!DeletesOnlyMatchingCopy || CSM == CXXCopyConstructor)) { in ShouldDeleteSpecialMember()
9385 (!DeletesOnlyMatchingCopy || CSM == CXXCopyAssignment)) { in ShouldDeleteSpecialMember()
9401 << (CSM == CXXCopyAssignment) << RD in ShouldDeleteSpecialMember()
9413 if (CSM == CXXDestructor && MD->isVirtual()) { in ShouldDeleteSpecialMember()
9425 SpecialMemberDeletionInfo SMI(*this, MD, CSM, ICI, Diagnose); in ShouldDeleteSpecialMember()
9447 assert(ICI || CSM == getSpecialMember(MD)); in ShouldDeleteSpecialMember()
9448 auto RealCSM = CSM; in ShouldDeleteSpecialMember()
9487 Sema::CXXSpecialMember CSM, unsigned Quals, in findTrivialSpecialMember() argument
9494 switch (CSM) { in findTrivialSpecialMember()
9584 lookupCallFromSpecialMember(S, RD, CSM, Quals, ConstRHS); in findTrivialSpecialMember()
9605 (CSM == Sema::CXXCopyConstructor || CSM == Sema::CXXMoveConstructor)) in findTrivialSpecialMember()
9643 Sema::CXXSpecialMember CSM, in checkTrivialSubobjectCall() argument
9651 if (findTrivialSpecialMember(S, SubRD, CSM, SubType.getCVRQualifiers(), in checkTrivialSubobjectCall()
9659 if (!Selected && CSM == Sema::CXXDefaultConstructor) { in checkTrivialSubobjectCall()
9666 << Kind << SubType.getUnqualifiedType() << CSM << SubType; in checkTrivialSubobjectCall()
9670 << Kind << SubType.getUnqualifiedType() << CSM; in checkTrivialSubobjectCall()
9673 << Kind << SubType.getUnqualifiedType() << CSM; in checkTrivialSubobjectCall()
9679 << Kind << SubType.getUnqualifiedType() << CSM; in checkTrivialSubobjectCall()
9682 S.SpecialMemberIsTrivial(Selected, CSM, Sema::TAH_IgnoreTrivialABI, in checkTrivialSubobjectCall()
9693 Sema::CXXSpecialMember CSM, in checkTrivialClassMembers() argument
9706 CSM, ConstArg, TAH, Diagnose)) in checkTrivialClassMembers()
9715 if (CSM == Sema::CXXDefaultConstructor && FI->hasInClassInitializer()) { in checkTrivialClassMembers()
9735 CSM, TSK_Field, TAH, Diagnose)) in checkTrivialClassMembers()
9744 void Sema::DiagnoseNontrivial(const CXXRecordDecl *RD, CXXSpecialMember CSM) { in DiagnoseNontrivial() argument
9747 bool ConstArg = (CSM == CXXCopyConstructor || CSM == CXXCopyAssignment); in DiagnoseNontrivial()
9748 checkTrivialSubobjectCall(*this, RD->getLocation(), Ty, ConstArg, CSM, in DiagnoseNontrivial()
9756 bool Sema::SpecialMemberIsTrivial(CXXMethodDecl *MD, CXXSpecialMember CSM, in SpecialMemberIsTrivial() argument
9758 assert(!MD->isUserProvided() && CSM != CXXInvalid && "not special enough"); in SpecialMemberIsTrivial()
9767 switch (CSM) { in SpecialMemberIsTrivial()
9847 ConstArg, CSM, TSK_BaseClass, TAH, Diagnose)) in SpecialMemberIsTrivial()
9862 if (!checkTrivialClassMembers(*this, RD, CSM, ConstArg, TAH, Diagnose)) in SpecialMemberIsTrivial()
9868 if (CSM == CXXDestructor && MD->isVirtual()) { in SpecialMemberIsTrivial()
9877 if (CSM != CXXDestructor && MD->getParent()->isDynamicClass()) { in SpecialMemberIsTrivial()
13189 Sema::CXXSpecialMember CSM, in SpecialMemberExceptionSpecInfo()
13192 : SpecialMemberVisitor(S, MD, CSM, ICI), Loc(Loc), ExceptSpec(S) {} in SpecialMemberExceptionSpecInfo()
13222 if (CSM == Sema::CXXDefaultConstructor && FD->hasInClassInitializer()) { in visitField()
13281 Sema &S, SourceLocation Loc, CXXMethodDecl *MD, Sema::CXXSpecialMember CSM, in ComputeDefaultedSpecialMemberExceptionSpec() argument
13290 SpecialMemberExceptionSpecInfo Info(S, MD, CSM, ICI, MD->getLocation()); in ComputeDefaultedSpecialMemberExceptionSpec()
13331 DeclaringSpecialMember(Sema &S, CXXRecordDecl *RD, Sema::CXXSpecialMember CSM) in DeclaringSpecialMember()
13332 : S(S), D(RD, CSM), SavedContext(S, RD) { in DeclaringSpecialMember()
13351 Ctx.SpecialMember = CSM; in DeclaringSpecialMember()