Lines Matching refs:CSM

4980         CXXSpecialMember CSM = getSpecialMember(M);  in CheckCompletedCXXClass()  local
4981 if (CSM != CXXInvalid) { in CheckCompletedCXXClass()
4982 M->setTrivial(SpecialMemberIsTrivial(M, CSM)); in CheckCompletedCXXClass()
5035 Sema &S, CXXRecordDecl *Class, Sema::CXXSpecialMember CSM, in lookupCallFromSpecialMember() argument
5038 if (CSM == Sema::CXXCopyAssignment || CSM == Sema::CXXMoveAssignment) in lookupCallFromSpecialMember()
5042 if (CSM == Sema::CXXDefaultConstructor || CSM == Sema::CXXDestructor) in lookupCallFromSpecialMember()
5047 return S.LookupSpecialMember(Class, CSM, in lookupCallFromSpecialMember()
5058 Sema::CXXSpecialMember CSM, in specialMemberIsConstexpr() argument
5061 lookupCallFromSpecialMember(S, ClassDecl, CSM, Quals, ConstRHS); in specialMemberIsConstexpr()
5072 Sema::CXXSpecialMember CSM, in defaultedSpecialMemberIsConstexpr() argument
5080 switch (CSM) { in defaultedSpecialMemberIsConstexpr()
5136 if (!specialMemberIsConstexpr(S, BaseClassDecl, CSM, 0, ConstArg)) in defaultedSpecialMemberIsConstexpr()
5153 if (!specialMemberIsConstexpr(S, FieldRecDecl, CSM, in defaultedSpecialMemberIsConstexpr()
5224 CXXSpecialMember CSM = getSpecialMember(MD); in CheckExplicitlyDefaultedSpecialMember() local
5226 assert(MD->isExplicitlyDefaulted() && CSM != CXXInvalid && in CheckExplicitlyDefaultedSpecialMember()
5243 if (CSM == CXXDefaultConstructor || CSM == CXXDestructor) in CheckExplicitlyDefaultedSpecialMember()
5250 << CSM << MD->getSourceRange(); in CheckExplicitlyDefaultedSpecialMember()
5254 << CSM << MD->getSourceRange(); in CheckExplicitlyDefaultedSpecialMember()
5261 if (CSM == CXXCopyConstructor) in CheckExplicitlyDefaultedSpecialMember()
5263 else if (CSM == CXXCopyAssignment) in CheckExplicitlyDefaultedSpecialMember()
5267 if (CSM == CXXCopyAssignment || CSM == CXXMoveAssignment) { in CheckExplicitlyDefaultedSpecialMember()
5274 << (CSM == CXXMoveAssignment) << ExpectedReturnType; in CheckExplicitlyDefaultedSpecialMember()
5281 << (CSM == CXXMoveAssignment) << getLangOpts().CPlusPlus14; in CheckExplicitlyDefaultedSpecialMember()
5296 diag::err_defaulted_special_member_volatile_param) << CSM; in CheckExplicitlyDefaultedSpecialMember()
5301 if (CSM == CXXCopyConstructor || CSM == CXXCopyAssignment) { in CheckExplicitlyDefaultedSpecialMember()
5304 << (CSM == CXXCopyAssignment); in CheckExplicitlyDefaultedSpecialMember()
5309 << (CSM == CXXMoveAssignment); in CheckExplicitlyDefaultedSpecialMember()
5316 assert(CSM == CXXCopyAssignment && "unexpected non-ref argument"); in CheckExplicitlyDefaultedSpecialMember()
5328 bool Constexpr = defaultedSpecialMemberIsConstexpr(*this, RD, CSM, in CheckExplicitlyDefaultedSpecialMember()
5334 Diag(MD->getLocStart(), diag::err_incorrect_defaulted_constexpr) << CSM; in CheckExplicitlyDefaultedSpecialMember()
5373 if (ShouldDeleteSpecialMember(MD, CSM)) { in CheckExplicitlyDefaultedSpecialMember()
5380 Diag(MD->getLocation(), diag::err_out_of_line_default_deletes) << CSM; in CheckExplicitlyDefaultedSpecialMember()
5381 ShouldDeleteSpecialMember(MD, CSM, /*Diagnose*/true); in CheckExplicitlyDefaultedSpecialMember()
5441 Sema::CXXSpecialMember CSM; member
5451 Sema::CXXSpecialMember CSM, bool Diagnose) in SpecialMemberDeletionInfo()
5452 : S(S), MD(MD), CSM(CSM), Diagnose(Diagnose), in SpecialMemberDeletionInfo()
5456 switch (CSM) { in SpecialMemberDeletionInfo()
5490 return lookupCallFromSpecialMember(S, Class, CSM, Quals, in lookupIn()
5563 << CSM << MD->getParent() << /*IsField*/true in shouldDeleteForSubobjectCall()
5569 << CSM << MD->getParent() << /*IsField*/false in shouldDeleteForSubobjectCall()
5602 if (!(CSM == Sema::CXXDefaultConstructor && in shouldDeleteForClassSubobject()
5635 if (CSM == Sema::CXXDefaultConstructor) { in shouldDeleteForField()
5659 } else if (CSM == Sema::CXXCopyConstructor) { in shouldDeleteForField()
5707 if (CSM == Sema::CXXDefaultConstructor && AllVariantFieldsAreConst && in shouldDeleteForField()
5735 if (CSM == Sema::CXXDefaultConstructor && inUnion() && AllFieldsAreConst && in shouldDeleteForAllConstMembers()
5749 bool Sema::ShouldDeleteSpecialMember(CXXMethodDecl *MD, CXXSpecialMember CSM, in ShouldDeleteSpecialMember() argument
5763 (CSM == CXXDefaultConstructor || CSM == CXXCopyAssignment)) { in ShouldDeleteSpecialMember()
5772 if (CSM != CXXDefaultConstructor && CSM != CXXDestructor && in ShouldDeleteSpecialMember()
5781 (CSM == CXXCopyConstructor || CSM == CXXCopyAssignment)) { in ShouldDeleteSpecialMember()
5787 (!getLangOpts().MSVCCompat || CSM == CXXCopyConstructor)) { in ShouldDeleteSpecialMember()
5799 (!getLangOpts().MSVCCompat || CSM == CXXCopyAssignment)) { in ShouldDeleteSpecialMember()
5815 << (CSM == CXXCopyAssignment) << RD in ShouldDeleteSpecialMember()
5827 if (CSM == CXXDestructor && MD->isVirtual()) { in ShouldDeleteSpecialMember()
5839 SpecialMemberDeletionInfo SMI(*this, MD, CSM, Diagnose); in ShouldDeleteSpecialMember()
5865 return inferCUDATargetForImplicitSpecialMember(RD, CSM, MD, SMI.ConstArg, in ShouldDeleteSpecialMember()
5881 Sema::CXXSpecialMember CSM, unsigned Quals, in findTrivialSpecialMember() argument
5886 switch (CSM) { in findTrivialSpecialMember()
5972 lookupCallFromSpecialMember(S, RD, CSM, Quals, ConstRHS); in findTrivialSpecialMember()
6027 Sema::CXXSpecialMember CSM, in checkTrivialSubobjectCall() argument
6035 if (findTrivialSpecialMember(S, SubRD, CSM, SubType.getCVRQualifiers(), in checkTrivialSubobjectCall()
6043 if (!Selected && CSM == Sema::CXXDefaultConstructor) { in checkTrivialSubobjectCall()
6050 << Kind << SubType.getUnqualifiedType() << CSM << SubType; in checkTrivialSubobjectCall()
6054 << Kind << SubType.getUnqualifiedType() << CSM; in checkTrivialSubobjectCall()
6057 << Kind << SubType.getUnqualifiedType() << CSM; in checkTrivialSubobjectCall()
6063 << Kind << SubType.getUnqualifiedType() << CSM; in checkTrivialSubobjectCall()
6066 S.SpecialMemberIsTrivial(Selected, CSM, Diagnose); in checkTrivialSubobjectCall()
6076 Sema::CXXSpecialMember CSM, in checkTrivialClassMembers() argument
6087 CSM, ConstArg, Diagnose)) in checkTrivialClassMembers()
6096 if (CSM == Sema::CXXDefaultConstructor && FI->hasInClassInitializer()) { in checkTrivialClassMembers()
6116 CSM, TSK_Field, Diagnose)) in checkTrivialClassMembers()
6125 void Sema::DiagnoseNontrivial(const CXXRecordDecl *RD, CXXSpecialMember CSM) { in DiagnoseNontrivial() argument
6128 bool ConstArg = (CSM == CXXCopyConstructor || CSM == CXXCopyAssignment); in DiagnoseNontrivial()
6129 checkTrivialSubobjectCall(*this, RD->getLocation(), Ty, ConstArg, CSM, in DiagnoseNontrivial()
6136 bool Sema::SpecialMemberIsTrivial(CXXMethodDecl *MD, CXXSpecialMember CSM, in SpecialMemberIsTrivial() argument
6138 assert(!MD->isUserProvided() && CSM != CXXInvalid && "not special enough"); in SpecialMemberIsTrivial()
6147 switch (CSM) { in SpecialMemberIsTrivial()
6214 ConstArg, CSM, TSK_BaseClass, Diagnose)) in SpecialMemberIsTrivial()
6229 if (!checkTrivialClassMembers(*this, RD, CSM, ConstArg, Diagnose)) in SpecialMemberIsTrivial()
6235 if (CSM == CXXDestructor && MD->isVirtual()) { in SpecialMemberIsTrivial()
6244 if (CSM != CXXDestructor && MD->getParent()->isDynamicClass()) { in SpecialMemberIsTrivial()
8862 DeclaringSpecialMember(Sema &S, CXXRecordDecl *RD, Sema::CXXSpecialMember CSM) in DeclaringSpecialMember()
8863 : S(S), D(RD, CSM) { in DeclaringSpecialMember()