Lines Matching defs:CSM

7074     CXXSpecialMemberKind CSM = getSpecialMember(M);
7076 if (CSM != CXXSpecialMemberKind::Invalid) {
7077 M->setTrivial(SpecialMemberIsTrivial(M, CSM));
7082 SpecialMemberIsTrivial(M, CSM, TAH_ConsiderTrivialABI));
7089 if ((CSM == CXXSpecialMemberKind::CopyConstructor ||
7090 CSM == CXXSpecialMemberKind::MoveConstructor ||
7091 CSM == CXXSpecialMemberKind::Destructor) &&
7101 (CSM == CXXSpecialMemberKind::DefaultConstructor ||
7102 CSM == CXXSpecialMemberKind::CopyConstructor ||
7103 CSM == CXXSpecialMemberKind::Destructor))
7146 if (CSM != CXXSpecialMemberKind::Invalid && !M->isDeleted() &&
7265 /// \param CSM The kind of special member function.
7272 CXXSpecialMemberKind CSM, unsigned FieldQuals,
7275 if (CSM == CXXSpecialMemberKind::CopyAssignment ||
7276 CSM == CXXSpecialMemberKind::MoveAssignment)
7280 if (CSM == CXXSpecialMemberKind::DefaultConstructor ||
7281 CSM == CXXSpecialMemberKind::Destructor)
7286 return S.LookupSpecialMember(Class, CSM,
7378 Sema &S, CXXRecordDecl *ClassDecl, CXXSpecialMemberKind CSM, unsigned Quals,
7389 assert(CSM == CXXSpecialMemberKind::DefaultConstructor);
7396 if (CSM == CXXSpecialMemberKind::DefaultConstructor)
7398 if (CSM == CXXSpecialMemberKind::Destructor)
7402 lookupCallFromSpecialMember(S, ClassDecl, CSM, Quals, ConstRHS);
7413 Sema &S, CXXRecordDecl *ClassDecl, CXXSpecialMemberKind CSM, bool ConstArg,
7422 switch (CSM) {
7462 return CSM == CXXSpecialMemberKind::DefaultConstructor
7486 if (!specialMemberIsConstexpr(S, BaseClassDecl, CSM, 0, ConstArg,
7503 if (CSM == CXXSpecialMemberKind::DefaultConstructor &&
7509 if (!specialMemberIsConstexpr(S, FieldRecDecl, CSM,
7513 } else if (CSM == CXXSpecialMemberKind::DefaultConstructor) {
7546 CXXSpecialMemberKind CSM,
7630 CXXSpecialMemberKind CSM,
7634 assert(MD->isExplicitlyDefaulted() && CSM != CXXSpecialMemberKind::Invalid &&
7660 if (CSM == CXXSpecialMemberKind::DefaultConstructor ||
7661 CSM == CXXSpecialMemberKind::Destructor)
7668 << llvm::to_underlying(CSM) << MD->getSourceRange();
7675 << llvm::to_underlying(CSM) << MD->getSourceRange();
7683 if (CSM == CXXSpecialMemberKind::CopyConstructor)
7685 else if (CSM == CXXSpecialMemberKind::CopyAssignment)
7689 if (CSM == CXXSpecialMemberKind::CopyAssignment ||
7690 CSM == CXXSpecialMemberKind::MoveAssignment) {
7704 << (CSM == CXXSpecialMemberKind::MoveAssignment)
7715 << (CSM == CXXSpecialMemberKind::MoveAssignment)
7738 << (CSM == CXXSpecialMemberKind::MoveAssignment) << RD
7762 << llvm::to_underlying(CSM);
7770 else if (CSM == CXXSpecialMemberKind::CopyConstructor ||
7771 CSM == CXXSpecialMemberKind::CopyAssignment) {
7774 << (CSM == CXXSpecialMemberKind::CopyAssignment);
7780 << (CSM == CXXSpecialMemberKind::MoveAssignment);
7787 assert(CSM == CXXSpecialMemberKind::CopyAssignment &&
7802 bool Constexpr = defaultedSpecialMemberIsConstexpr(*this, RD, CSM,
7823 << llvm::to_underlying(CSM);
7828 << llvm::to_underlying(CSM) << MD->isConsteval();
7857 if (ShouldDeleteForTypeMismatch || ShouldDeleteSpecialMember(MD, CSM)) {
7862 << llvm::to_underlying(CSM);
7865 << llvm::to_underlying(CSM);
7866 } else if (ShouldDeleteSpecialMember(MD, CSM, nullptr,
7876 << llvm::to_underlying(CSM);
7883 << llvm::to_underlying(CSM);
7885 ShouldDeleteSpecialMember(MD, CSM, nullptr, /*Diagnose*/true);
9231 CXXSpecialMemberKind CSM;
9237 SpecialMemberVisitor(Sema &S, CXXMethodDecl *MD, CXXSpecialMemberKind CSM,
9239 : S(S), MD(MD), CSM(CSM), ICI(ICI) {
9240 switch (CSM) {
9267 return CSM == CXXSpecialMemberKind::MoveConstructor ||
9268 CSM == CXXSpecialMemberKind::MoveAssignment;
9274 return lookupCallFromSpecialMember(S, Class, CSM, Quals,
9283 assert(CSM == CXXSpecialMemberKind::DefaultConstructor);
9353 CXXSpecialMemberKind CSM,
9355 : SpecialMemberVisitor(S, MD, CSM, ICI), Diagnose(Diagnose),
9361 return ICI ? CXXSpecialMemberKind::Invalid : CSM;
9427 if (CSM == CXXSpecialMemberKind::DefaultConstructor) {
9489 if (!(CSM == CXXSpecialMemberKind::DefaultConstructor && Field &&
9519 if (CSM == CXXSpecialMemberKind::DefaultConstructor &&
9572 if (CSM == CXXSpecialMemberKind::DefaultConstructor) {
9595 } else if (CSM == CXXSpecialMemberKind::CopyConstructor) {
9646 if (CSM == CXXSpecialMemberKind::DefaultConstructor &&
9675 if (CSM == CXXSpecialMemberKind::DefaultConstructor && inUnion() &&
9696 CXXSpecialMemberKind CSM,
9713 (CSM == CXXSpecialMemberKind::DefaultConstructor ||
9714 CSM == CXXSpecialMemberKind::CopyAssignment)) {
9723 if (CSM != CXXSpecialMemberKind::DefaultConstructor &&
9724 CSM != CXXSpecialMemberKind::Destructor && RD->isAnonymousStructOrUnion())
9731 if (MD->isImplicit() && (CSM == CXXSpecialMemberKind::CopyConstructor ||
9732 CSM == CXXSpecialMemberKind::CopyAssignment)) {
9744 CSM == CXXSpecialMemberKind::CopyConstructor)) {
9757 CSM == CXXSpecialMemberKind::CopyAssignment)) {
9773 << (CSM == CXXSpecialMemberKind::CopyAssignment) << RD
9785 if (CSM == CXXSpecialMemberKind::Destructor && MD->isVirtual()) {
9797 SpecialMemberDeletionInfo SMI(*this, MD, CSM, ICI, Diagnose);
9815 // For inherited constructors (non-null ICI), CSM may be passed so that MD
9818 // expects CSM to match MD, therefore recalculate CSM.
9819 assert(ICI || CSM == getSpecialMember(MD));
9820 auto RealCSM = CSM;
9859 CXXSpecialMemberKind CSM, unsigned Quals,
9866 switch (CSM) {
9956 lookupCallFromSpecialMember(S, RD, CSM, Quals, ConstRHS);
9977 (CSM == CXXSpecialMemberKind::CopyConstructor ||
9978 CSM == CXXSpecialMemberKind::MoveConstructor))
10016 CXXSpecialMemberKind CSM,
10025 if (findTrivialSpecialMember(S, SubRD, CSM, SubType.getCVRQualifiers(),
10033 if (!Selected && CSM == CXXSpecialMemberKind::DefaultConstructor) {
10040 << Kind << SubType.getUnqualifiedType() << llvm::to_underlying(CSM)
10045 << Kind << SubType.getUnqualifiedType() << llvm::to_underlying(CSM);
10048 << Kind << SubType.getUnqualifiedType() << llvm::to_underlying(CSM);
10054 << Kind << SubType.getUnqualifiedType() << llvm::to_underlying(CSM);
10057 S.SpecialMemberIsTrivial(Selected, CSM, Sema::TAH_IgnoreTrivialABI,
10068 CXXSpecialMemberKind CSM, bool ConstArg,
10080 CSM, ConstArg, TAH, Diagnose))
10089 if (CSM == CXXSpecialMemberKind::DefaultConstructor &&
10110 CSM, TSK_Field, TAH, Diagnose))
10118 CXXSpecialMemberKind CSM) {
10121 bool ConstArg = (CSM == CXXSpecialMemberKind::CopyConstructor ||
10122 CSM == CXXSpecialMemberKind::CopyAssignment);
10123 checkTrivialSubobjectCall(*this, RD->getLocation(), Ty, ConstArg, CSM,
10128 bool Sema::SpecialMemberIsTrivial(CXXMethodDecl *MD, CXXSpecialMemberKind CSM,
10130 assert(!MD->isUserProvided() && CSM != CXXSpecialMemberKind::Invalid &&
10140 switch (CSM) {
10220 ConstArg, CSM, TSK_BaseClass, TAH, Diagnose))
10235 if (!checkTrivialClassMembers(*this, RD, CSM, ConstArg, TAH, Diagnose))
10241 if (CSM == CXXSpecialMemberKind::Destructor && MD->isVirtual()) {
10250 if (CSM != CXXSpecialMemberKind::Destructor &&
13704 CXXSpecialMemberKind CSM,
13707 : SpecialMemberVisitor(S, MD, CSM, ICI), Loc(Loc), ExceptSpec(S) {}
13737 if (CSM == CXXSpecialMemberKind::DefaultConstructor &&
13797 Sema &S, SourceLocation Loc, CXXMethodDecl *MD, CXXSpecialMemberKind CSM,
13806 SpecialMemberExceptionSpecInfo Info(S, MD, CSM, ICI, MD->getLocation());
13847 DeclaringSpecialMember(Sema &S, CXXRecordDecl *RD, CXXSpecialMemberKind CSM)
13848 : S(S), D(RD, CSM), SavedContext(S, RD) {
13867 Ctx.SpecialMember = CSM;