Home | History | Annotate | Download | only in Sema

Lines Matching defs:CSM

4239         CXXSpecialMember CSM = getSpecialMember(*M);
4240 if (CSM != CXXInvalid) {
4241 M->setTrivial(SpecialMemberIsTrivial(*M, CSM));
4302 Sema::CXXSpecialMember CSM,
4305 S.LookupSpecialMember(ClassDecl, CSM, ConstArg,
4317 Sema::CXXSpecialMember CSM,
4325 switch (CSM) {
4383 if (!specialMemberIsConstexpr(S, BaseClassDecl, CSM, ConstArg))
4402 if (!specialMemberIsConstexpr(S, FieldRecDecl, CSM, ConstArg))
4467 CXXSpecialMember CSM = getSpecialMember(MD);
4469 assert(MD->isExplicitlyDefaulted() && CSM != CXXInvalid &&
4486 if (CSM == CXXDefaultConstructor || CSM == CXXDestructor)
4493 << CSM << MD->getSourceRange();
4497 << CSM << MD->getSourceRange();
4504 if (CSM == CXXCopyConstructor)
4506 else if (CSM == CXXCopyAssignment)
4510 if (CSM == CXXCopyAssignment || CSM == CXXMoveAssignment) {
4517 << (CSM == CXXMoveAssignment) << ExpectedReturnType;
4524 << (CSM == CXXMoveAssignment) << getLangOpts().CPlusPlus1y;
4539 diag::err_defaulted_special_member_volatile_param) << CSM;
4544 if (CSM == CXXCopyConstructor || CSM == CXXCopyAssignment) {
4547 << (CSM == CXXCopyAssignment);
4552 << (CSM == CXXMoveAssignment);
4559 assert(CSM == CXXCopyAssignment && "unexpected non-ref argument");
4571 bool Constexpr = defaultedSpecialMemberIsConstexpr(*this, RD, CSM,
4577 Diag(MD->getLocStart(), diag::err_incorrect_defaulted_constexpr) << CSM;
4616 if (ShouldDeleteSpecialMember(MD, CSM)) {
4623 Diag(MD->getLocation(), diag::err_out_of_line_default_deletes) << CSM;
4666 Sema::CXXSpecialMember CSM;
4676 Sema::CXXSpecialMember CSM, bool Diagnose)
4677 : S(S), MD(MD), CSM(CSM), Diagnose(Diagnose),
4681 switch (CSM) {
4716 if (CSM == Sema::CXXDefaultConstructor || CSM == Sema::CXXDestructor)
4718 return S.LookupSpecialMember(Class, CSM,
4795 << CSM << MD->getParent() << /*IsField*/true
4801 << CSM << MD->getParent() << /*IsField*/false
4833 if (!(CSM == Sema::CXXDefaultConstructor &&
4865 if (CSM == Sema::CXXDefaultConstructor) {
4889 } else if (CSM == Sema::CXXCopyConstructor) {
4939 if (CSM == Sema::CXXDefaultConstructor && AllVariantFieldsAreConst &&
4967 if (CSM == Sema::CXXDefaultConstructor && inUnion() && AllFieldsAreConst &&
4981 bool Sema::ShouldDeleteSpecialMember(CXXMethodDecl *MD, CXXSpecialMember CSM,
4995 (CSM == CXXDefaultConstructor || CSM == CXXCopyAssignment)) {
5004 if (CSM != CXXDefaultConstructor && CSM != CXXDestructor &&
5013 (CSM == CXXCopyConstructor || CSM == CXXCopyAssignment)) {
5019 (!getLangOpts().MicrosoftMode || CSM == CXXCopyConstructor)) {
5032 (!getLangOpts().MicrosoftMode || CSM == CXXCopyAssignment)) {
5049 << (CSM == CXXCopyAssignment) << RD
5061 if (CSM == CXXDestructor && MD->isVirtual()) {
5073 SpecialMemberDeletionInfo SMI(*this, MD, CSM, Diagnose);
5112 Sema::CXXSpecialMember CSM, unsigned Quals,
5117 switch (CSM) {
5204 S.LookupSpecialMember(RD, CSM,
5264 Sema::CXXSpecialMember CSM,
5272 if (findTrivialSpecialMember(S, SubRD, CSM, SubType.getCVRQualifiers(),
5277 if (!Selected && CSM == Sema::CXXDefaultConstructor) {
5284 << Kind << SubType.getUnqualifiedType() << CSM << SubType;
5288 << Kind << SubType.getUnqualifiedType() << CSM;
5291 << Kind << SubType.getUnqualifiedType() << CSM;
5297 << Kind << SubType.getUnqualifiedType() << CSM;
5300 S.SpecialMemberIsTrivial(Selected, CSM, Diagnose);
5310 Sema::CXXSpecialMember CSM,
5322 CSM, ConstArg, Diagnose))
5331 if (CSM == Sema::CXXDefaultConstructor && FI->hasInClassInitializer()) {
5351 if (!checkTrivialSubobjectCall(S, FI->getLocation(), FieldType, CSM,
5361 void Sema::DiagnoseNontrivial(const CXXRecordDecl *RD, CXXSpecialMember CSM) {
5363 if (CSM == CXXCopyConstructor || CSM == CXXCopyAssignment)
5366 checkTrivialSubobjectCall(*this, RD->getLocation(), Ty, CSM,
5373 bool Sema::SpecialMemberIsTrivial(CXXMethodDecl *MD, CXXSpecialMember CSM,
5375 assert(!MD->isUserProvided() && CSM != CXXInvalid && "not special enough");
5384 switch (CSM) {
5459 CSM, TSK_BaseClass, Diagnose))
5474 if (!checkTrivialClassMembers(*this, RD, CSM, ConstArg, Diagnose))
5480 if (CSM == CXXDestructor && MD->isVirtual()) {
5489 if (CSM != CXXDestructor && MD->getParent()->isDynamicClass()) {
7852 DeclaringSpecialMember(Sema &S, CXXRecordDecl *RD, Sema::CXXSpecialMember CSM)
7853 : S(S), D(RD, CSM) {