Lines Matching refs:ClassDecl
2835 void Sema::ActOnBaseSpecifiers(Decl *ClassDecl, in ActOnBaseSpecifiers() argument
2837 if (!ClassDecl || Bases.empty()) in ActOnBaseSpecifiers()
2840 AdjustDeclIfTemplate(ClassDecl); in ActOnBaseSpecifiers()
2841 AttachBaseSpecifiers(cast<CXXRecordDecl>(ClassDecl), Bases); in ActOnBaseSpecifiers()
4088 CXXRecordDecl *ClassDecl, in FindBaseInitializer() argument
4094 for (const auto &Base : ClassDecl->bases()) { in FindBaseInitializer()
4112 if (SemaRef.IsDerivedFrom(ClassDecl->getLocation(), in FindBaseInitializer()
4113 SemaRef.Context.getTypeDeclType(ClassDecl), in FindBaseInitializer()
4168 explicit MemInitializerValidatorCCC(CXXRecordDecl *ClassDecl) in MemInitializerValidatorCCC() argument
4169 : ClassDecl(ClassDecl) {} in MemInitializerValidatorCCC()
4174 return Member->getDeclContext()->getRedeclContext()->Equals(ClassDecl); in ValidateCandidate()
4185 CXXRecordDecl *ClassDecl; member in __anonc19065b01111::MemInitializerValidatorCCC
4190 ValueDecl *Sema::tryLookupCtorInitMemberDecl(CXXRecordDecl *ClassDecl, in tryLookupCtorInitMemberDecl() argument
4196 for (auto *D : ClassDecl->lookup(MemberOrBase)) in tryLookupCtorInitMemberDecl()
4234 CXXRecordDecl *ClassDecl = Constructor->getParent(); in BuildMemInitializer() local
4249 ClassDecl, SS, TemplateTypeTy, MemberOrBase)) { in BuildMemInitializer()
4321 MemInitializerValidatorCCC CCC(ClassDecl); in BuildMemInitializer()
4324 CCC, CTK_ErrorRecovery, ClassDecl))) { in BuildMemInitializer()
4336 if (FindBaseInitializer(*this, ClassDecl, in BuildMemInitializer()
4382 return BuildBaseInitializer(BaseType, TInfo, Init, ClassDecl, EllipsisLoc); in BuildMemInitializer()
4470 CXXRecordDecl *ClassDecl) { in BuildDelegatingInitializer() argument
4487 QualType(ClassDecl->getTypeForDecl(), 0)); in BuildDelegatingInitializer()
4511 QualType(ClassDecl->getTypeForDecl(), 0)); in BuildDelegatingInitializer()
4533 Expr *Init, CXXRecordDecl *ClassDecl, in BuildBaseInitializer() argument
4577 if (Context.hasSameUnqualifiedType(QualType(ClassDecl->getTypeForDecl(),0), in BuildBaseInitializer()
4579 return BuildDelegatingInitializer(BaseTInfo, Init, ClassDecl); in BuildBaseInitializer()
4581 FindBaseInitializer(*this, ClassDecl, BaseType, DirectBaseSpec, in BuildBaseInitializer()
4594 if (ClassDecl->hasAnyDependentBases()) in BuildBaseInitializer()
4598 << BaseType << Context.getTypeDeclType(ClassDecl) in BuildBaseInitializer()
5158 CXXRecordDecl *ClassDecl = Constructor->getParent()->getDefinition(); in SetCtorInitializers() local
5159 if (!ClassDecl) in SetCtorInitializers()
5189 for (auto &I : ClassDecl->bases()) { in SetCtorInitializers()
5195 for (auto &VBase : ClassDecl->vbases()) { in SetCtorInitializers()
5202 if (ClassDecl->isAbstract()) { in SetCtorInitializers()
5206 << VBase.getType() << ClassDecl; in SetCtorInitializers()
5207 DiagnoseAbstractType(ClassDecl); in SetCtorInitializers()
5211 } else if (!AnyErrors && !ClassDecl->isAbstract()) { in SetCtorInitializers()
5230 for (auto &Base : ClassDecl->bases()) { in SetCtorInitializers()
5252 for (auto *Mem : ClassDecl->decls()) { in SetCtorInitializers()
5278 assert(ClassDecl->hasFlexibleArrayMember() && in SetCtorInitializers()
5372 const CXXRecordDecl *ClassDecl = Constructor->getParent(); in DiagnoseBaseOrMemInitializerOrder() local
5375 for (const auto &VBase : ClassDecl->vbases()) in DiagnoseBaseOrMemInitializerOrder()
5379 for (const auto &Base : ClassDecl->bases()) { in DiagnoseBaseOrMemInitializerOrder()
5386 for (auto *Field : ClassDecl->fields()) { in DiagnoseBaseOrMemInitializerOrder()
5611 CXXRecordDecl *ClassDecl) { in MarkBaseAndMemberDestructorsReferenced() argument
5614 if (ClassDecl->isDependentContext() || ClassDecl->isUnion()) in MarkBaseAndMemberDestructorsReferenced()
5623 for (auto *Field : ClassDecl->fields()) { in MarkBaseAndMemberDestructorsReferenced()
5659 bool VisitVirtualBases = !ClassDecl->isAbstract(); in MarkBaseAndMemberDestructorsReferenced()
5665 CXXDestructorDecl *Dtor = ClassDecl->getDestructor(); in MarkBaseAndMemberDestructorsReferenced()
5673 for (const auto &Base : ClassDecl->bases()) { in MarkBaseAndMemberDestructorsReferenced()
5699 Context.getTypeDeclType(ClassDecl)); in MarkBaseAndMemberDestructorsReferenced()
5706 MarkVirtualBaseDestructorsReferenced(Location, ClassDecl, in MarkBaseAndMemberDestructorsReferenced()
5711 SourceLocation Location, CXXRecordDecl *ClassDecl, in MarkVirtualBaseDestructorsReferenced() argument
5714 for (const auto &VBase : ClassDecl->vbases()) { in MarkVirtualBaseDestructorsReferenced()
5732 ClassDecl->getLocation(), Dtor, in MarkVirtualBaseDestructorsReferenced()
5734 << Context.getTypeDeclType(ClassDecl) << VBase.getType(), in MarkVirtualBaseDestructorsReferenced()
5735 Context.getTypeDeclType(ClassDecl)) == in MarkVirtualBaseDestructorsReferenced()
5738 Context.getTypeDeclType(ClassDecl), VBase.getType(), in MarkVirtualBaseDestructorsReferenced()
5739 diag::err_access_dtor_vbase, 0, ClassDecl->getLocation(), in MarkVirtualBaseDestructorsReferenced()
7176 specialMemberIsConstexpr(Sema &S, CXXRecordDecl *ClassDecl, in specialMemberIsConstexpr() argument
7186 Inherited->findConstructorForBase(ClassDecl, InheritedCtor).first; in specialMemberIsConstexpr()
7192 return ClassDecl->hasConstexprDefaultConstructor(); in specialMemberIsConstexpr()
7194 return ClassDecl->hasConstexprDestructor(); in specialMemberIsConstexpr()
7197 lookupCallFromSpecialMember(S, ClassDecl, CSM, Quals, ConstRHS); in specialMemberIsConstexpr()
7208 Sema &S, CXXRecordDecl *ClassDecl, Sema::CXXSpecialMember CSM, in defaultedSpecialMemberIsConstexpr() argument
7227 return ClassDecl->defaultedDefaultConstructorIsConstexpr(); in defaultedSpecialMemberIsConstexpr()
7243 return ClassDecl->defaultedDestructorIsConstexpr(); in defaultedSpecialMemberIsConstexpr()
7256 if (Ctor && ClassDecl->isUnion()) in defaultedSpecialMemberIsConstexpr()
7258 ? ClassDecl->hasInClassInitializer() || in defaultedSpecialMemberIsConstexpr()
7259 !ClassDecl->hasVariantMembers() in defaultedSpecialMemberIsConstexpr()
7263 if (Ctor && ClassDecl->getNumVBases()) in defaultedSpecialMemberIsConstexpr()
7268 if (!Ctor && !ClassDecl->isLiteral()) in defaultedSpecialMemberIsConstexpr()
7275 for (const auto &B : ClassDecl->bases()) { in defaultedSpecialMemberIsConstexpr()
7292 for (const auto *F : ClassDecl->fields()) { in defaultedSpecialMemberIsConstexpr()
10184 void Sema::AddImplicitlyDeclaredMembersToClass(CXXRecordDecl *ClassDecl) { in AddImplicitlyDeclaredMembersToClass() argument
10188 if (!ClassDecl->isDependentType()) { in AddImplicitlyDeclaredMembersToClass()
10189 if (ClassDecl->needsImplicitDefaultConstructor()) { in AddImplicitlyDeclaredMembersToClass()
10192 if (ClassDecl->hasInheritedConstructor()) in AddImplicitlyDeclaredMembersToClass()
10193 DeclareImplicitDefaultConstructor(ClassDecl); in AddImplicitlyDeclaredMembersToClass()
10196 if (ClassDecl->needsImplicitCopyConstructor()) { in AddImplicitlyDeclaredMembersToClass()
10202 if (ClassDecl->needsOverloadResolutionForCopyConstructor() || in AddImplicitlyDeclaredMembersToClass()
10203 ClassDecl->hasInheritedConstructor()) in AddImplicitlyDeclaredMembersToClass()
10204 DeclareImplicitCopyConstructor(ClassDecl); in AddImplicitlyDeclaredMembersToClass()
10211 (ClassDecl->hasUserDeclaredMoveConstructor() || in AddImplicitlyDeclaredMembersToClass()
10212 ClassDecl->needsOverloadResolutionForMoveConstructor() || in AddImplicitlyDeclaredMembersToClass()
10213 ClassDecl->hasUserDeclaredMoveAssignment() || in AddImplicitlyDeclaredMembersToClass()
10214 ClassDecl->needsOverloadResolutionForMoveAssignment())) in AddImplicitlyDeclaredMembersToClass()
10215 DeclareImplicitCopyConstructor(ClassDecl); in AddImplicitlyDeclaredMembersToClass()
10219 ClassDecl->needsImplicitMoveConstructor()) { in AddImplicitlyDeclaredMembersToClass()
10222 if (ClassDecl->needsOverloadResolutionForMoveConstructor() || in AddImplicitlyDeclaredMembersToClass()
10223 ClassDecl->hasInheritedConstructor()) in AddImplicitlyDeclaredMembersToClass()
10224 DeclareImplicitMoveConstructor(ClassDecl); in AddImplicitlyDeclaredMembersToClass()
10227 if (ClassDecl->needsImplicitCopyAssignment()) { in AddImplicitlyDeclaredMembersToClass()
10234 if (ClassDecl->isDynamicClass() || in AddImplicitlyDeclaredMembersToClass()
10235 ClassDecl->needsOverloadResolutionForCopyAssignment() || in AddImplicitlyDeclaredMembersToClass()
10236 ClassDecl->hasInheritedAssignment()) in AddImplicitlyDeclaredMembersToClass()
10237 DeclareImplicitCopyAssignment(ClassDecl); in AddImplicitlyDeclaredMembersToClass()
10240 if (getLangOpts().CPlusPlus11 && ClassDecl->needsImplicitMoveAssignment()) { in AddImplicitlyDeclaredMembersToClass()
10244 if (ClassDecl->isDynamicClass() || in AddImplicitlyDeclaredMembersToClass()
10245 ClassDecl->needsOverloadResolutionForMoveAssignment() || in AddImplicitlyDeclaredMembersToClass()
10246 ClassDecl->hasInheritedAssignment()) in AddImplicitlyDeclaredMembersToClass()
10247 DeclareImplicitMoveAssignment(ClassDecl); in AddImplicitlyDeclaredMembersToClass()
10250 if (ClassDecl->needsImplicitDestructor()) { in AddImplicitlyDeclaredMembersToClass()
10257 if (ClassDecl->isDynamicClass() || in AddImplicitlyDeclaredMembersToClass()
10258 ClassDecl->needsOverloadResolutionForDestructor()) in AddImplicitlyDeclaredMembersToClass()
10259 DeclareImplicitDestructor(ClassDecl); in AddImplicitlyDeclaredMembersToClass()
10274 findImplicitlyDeclaredEqualityComparisons(Context, ClassDecl, in AddImplicitlyDeclaredMembersToClass()
10277 DeclareImplicitEqualityComparison(ClassDecl, FD); in AddImplicitlyDeclaredMembersToClass()
10516 CXXRecordDecl *ClassDecl in CheckConstructor() local
10518 if (!ClassDecl) in CheckConstructor()
10531 QualType ClassTy = Context.getTagDeclType(ClassDecl); in CheckConstructor()
10896 CXXRecordDecl *ClassDecl = cast<CXXRecordDecl>(Conversion->getDeclContext()); in ActOnConversionDeclarator() local
10907 = Context.getCanonicalType(Context.getTypeDeclType(ClassDecl)); in ActOnConversionDeclarator()
13285 CXXRecordDecl *ClassDecl = MD->getParent(); in ComputeDefaultedSpecialMemberExceptionSpec() local
13291 if (ClassDecl->isInvalidDecl()) in ComputeDefaultedSpecialMemberExceptionSpec()
13298 S.Context.getRecordType(ClassDecl), in ComputeDefaultedSpecialMemberExceptionSpec()
13411 CXXRecordDecl *ClassDecl) { in DeclareImplicitDefaultConstructor() argument
13418 assert(ClassDecl->needsImplicitDefaultConstructor() && in DeclareImplicitDefaultConstructor()
13421 DeclaringSpecialMember DSM(*this, ClassDecl, CXXDefaultConstructor); in DeclareImplicitDefaultConstructor()
13425 bool Constexpr = defaultedSpecialMemberIsConstexpr(*this, ClassDecl, in DeclareImplicitDefaultConstructor()
13431 = Context.getCanonicalType(Context.getTypeDeclType(ClassDecl)); in DeclareImplicitDefaultConstructor()
13432 SourceLocation ClassLoc = ClassDecl->getLocation(); in DeclareImplicitDefaultConstructor()
13437 Context, ClassDecl, ClassLoc, NameInfo, /*Type*/ QualType(), in DeclareImplicitDefaultConstructor()
13449 inferCUDATargetForImplicitSpecialMember(ClassDecl, CXXDefaultConstructor, in DeclareImplicitDefaultConstructor()
13456 DefaultCon->setTrivial(ClassDecl->hasTrivialDefaultConstructor()); in DeclareImplicitDefaultConstructor()
13461 Scope *S = getScopeForContext(ClassDecl); in DeclareImplicitDefaultConstructor()
13469 ClassDecl->addDecl(DefaultCon); in DeclareImplicitDefaultConstructor()
13483 CXXRecordDecl *ClassDecl = Constructor->getParent(); in DefineImplicitDefaultConstructor() local
13484 assert(ClassDecl && "DefineImplicitDefaultConstructor - invalid constructor"); in DefineImplicitDefaultConstructor()
13492 MarkVTableUsed(CurrentLocation, ClassDecl); in DefineImplicitDefaultConstructor()
13615 CXXRecordDecl *ClassDecl = Constructor->getParent(); in DefineInheritingConstructor() local
13630 MarkVTableUsed(CurrentLocation, ClassDecl); in DefineInheritingConstructor()
13694 CXXDestructorDecl *Sema::DeclareImplicitDestructor(CXXRecordDecl *ClassDecl) { in DeclareImplicitDestructor() argument
13699 assert(ClassDecl->needsImplicitDestructor()); in DeclareImplicitDestructor()
13701 DeclaringSpecialMember DSM(*this, ClassDecl, CXXDestructor); in DeclareImplicitDestructor()
13705 bool Constexpr = defaultedSpecialMemberIsConstexpr(*this, ClassDecl, in DeclareImplicitDestructor()
13711 = Context.getCanonicalType(Context.getTypeDeclType(ClassDecl)); in DeclareImplicitDestructor()
13712 SourceLocation ClassLoc = ClassDecl->getLocation(); in DeclareImplicitDestructor()
13717 Context, ClassDecl, ClassLoc, NameInfo, QualType(), nullptr, in DeclareImplicitDestructor()
13729 inferCUDATargetForImplicitSpecialMember(ClassDecl, CXXDestructor, in DeclareImplicitDestructor()
13736 Destructor->setTrivial(ClassDecl->hasTrivialDestructor()); in DeclareImplicitDestructor()
13737 Destructor->setTrivialForCall(ClassDecl->hasAttr<TrivialABIAttr>() || in DeclareImplicitDestructor()
13738 ClassDecl->hasTrivialDestructorForCall()); in DeclareImplicitDestructor()
13743 Scope *S = getScopeForContext(ClassDecl); in DeclareImplicitDestructor()
13749 if (ClassDecl->isCompleteDefinition() && in DeclareImplicitDestructor()
13756 ClassDecl->addDecl(Destructor); in DeclareImplicitDestructor()
13770 CXXRecordDecl *ClassDecl = Destructor->getParent(); in DefineImplicitDestructor() local
13771 assert(ClassDecl && "DefineImplicitDestructor - invalid destructor"); in DefineImplicitDestructor()
13779 MarkVTableUsed(CurrentLocation, ClassDecl); in DefineImplicitDestructor()
13808 CXXRecordDecl *ClassDecl = Destructor->getParent(); in CheckCompleteDestructorVariant() local
13811 assert(ClassDecl->getNumVBases() > 0 && in CheckCompleteDestructorVariant()
13819 MarkVirtualBaseDestructorsReferenced(Destructor->getLocation(), ClassDecl); in CheckCompleteDestructorVariant()
14130 CXXRecordDecl *ClassDecl = cast<CXXRecordDecl>(RecordTy->getDecl()); in buildSingleCopyAssignRecursively() local
14136 S.LookupQualifiedName(OpLookup, ClassDecl, false); in buildSingleCopyAssignRecursively()
14323 CXXMethodDecl *Sema::DeclareImplicitCopyAssignment(CXXRecordDecl *ClassDecl) { in DeclareImplicitCopyAssignment() argument
14328 assert(ClassDecl->needsImplicitCopyAssignment()); in DeclareImplicitCopyAssignment()
14330 DeclaringSpecialMember DSM(*this, ClassDecl, CXXCopyAssignment); in DeclareImplicitCopyAssignment()
14334 QualType ArgType = Context.getTypeDeclType(ClassDecl); in DeclareImplicitCopyAssignment()
14339 bool Const = ClassDecl->implicitCopyAssignmentHasConstParam(); in DeclareImplicitCopyAssignment()
14345 bool Constexpr = defaultedSpecialMemberIsConstexpr(*this, ClassDecl, in DeclareImplicitCopyAssignment()
14352 SourceLocation ClassLoc = ClassDecl->getLocation(); in DeclareImplicitCopyAssignment()
14355 Context, ClassDecl, ClassLoc, NameInfo, QualType(), in DeclareImplicitCopyAssignment()
14368 inferCUDATargetForImplicitSpecialMember(ClassDecl, CXXCopyAssignment, in DeclareImplicitCopyAssignment()
14382 ClassDecl->needsOverloadResolutionForCopyAssignment() in DeclareImplicitCopyAssignment()
14384 : ClassDecl->hasTrivialCopyAssignment()); in DeclareImplicitCopyAssignment()
14389 Scope *S = getScopeForContext(ClassDecl); in DeclareImplicitCopyAssignment()
14393 ClassDecl->setImplicitCopyAssignmentIsDeleted(); in DeclareImplicitCopyAssignment()
14399 ClassDecl->addDecl(CopyAssignment); in DeclareImplicitCopyAssignment()
14469 CXXRecordDecl *ClassDecl = CopyAssignOperator->getParent(); in DefineImplicitCopyAssignment() local
14470 if (ClassDecl->isInvalidDecl()) { in DefineImplicitCopyAssignment()
14526 for (auto &Base : ClassDecl->bases()) { in DefineImplicitCopyAssignment()
14565 for (auto *Field : ClassDecl->fields()) { in DefineImplicitCopyAssignment()
14578 Diag(ClassDecl->getLocation(), diag::err_uninitialized_member_for_assign) in DefineImplicitCopyAssignment()
14579 << Context.getTagDeclType(ClassDecl) << 0 << Field->getDeclName(); in DefineImplicitCopyAssignment()
14588 Diag(ClassDecl->getLocation(), diag::err_uninitialized_member_for_assign) in DefineImplicitCopyAssignment()
14589 << Context.getTagDeclType(ClassDecl) << 1 << Field->getDeclName(); in DefineImplicitCopyAssignment()
14601 assert(ClassDecl->hasFlexibleArrayMember() && in DefineImplicitCopyAssignment()
14662 CXXMethodDecl *Sema::DeclareImplicitMoveAssignment(CXXRecordDecl *ClassDecl) { in DeclareImplicitMoveAssignment() argument
14663 assert(ClassDecl->needsImplicitMoveAssignment()); in DeclareImplicitMoveAssignment()
14665 DeclaringSpecialMember DSM(*this, ClassDecl, CXXMoveAssignment); in DeclareImplicitMoveAssignment()
14672 QualType ArgType = Context.getTypeDeclType(ClassDecl); in DeclareImplicitMoveAssignment()
14679 bool Constexpr = defaultedSpecialMemberIsConstexpr(*this, ClassDecl, in DeclareImplicitMoveAssignment()
14686 SourceLocation ClassLoc = ClassDecl->getLocation(); in DeclareImplicitMoveAssignment()
14689 Context, ClassDecl, ClassLoc, NameInfo, QualType(), in DeclareImplicitMoveAssignment()
14702 inferCUDATargetForImplicitSpecialMember(ClassDecl, CXXMoveAssignment, in DeclareImplicitMoveAssignment()
14716 ClassDecl->needsOverloadResolutionForMoveAssignment() in DeclareImplicitMoveAssignment()
14718 : ClassDecl->hasTrivialMoveAssignment()); in DeclareImplicitMoveAssignment()
14723 Scope *S = getScopeForContext(ClassDecl); in DeclareImplicitMoveAssignment()
14727 ClassDecl->setImplicitMoveAssignmentIsDeleted(); in DeclareImplicitMoveAssignment()
14733 ClassDecl->addDecl(MoveAssignment); in DeclareImplicitMoveAssignment()
14832 CXXRecordDecl *ClassDecl = MoveAssignOperator->getParent(); in DefineImplicitMoveAssignment() local
14833 if (ClassDecl->isInvalidDecl()) { in DefineImplicitMoveAssignment()
14848 checkMoveAssignmentForRepeatedMove(*this, ClassDecl, CurrentLocation); in DefineImplicitMoveAssignment()
14883 for (auto &Base : ClassDecl->bases()) { in DefineImplicitMoveAssignment()
14931 for (auto *Field : ClassDecl->fields()) { in DefineImplicitMoveAssignment()
14944 Diag(ClassDecl->getLocation(), diag::err_uninitialized_member_for_assign) in DefineImplicitMoveAssignment()
14945 << Context.getTagDeclType(ClassDecl) << 0 << Field->getDeclName(); in DefineImplicitMoveAssignment()
14954 Diag(ClassDecl->getLocation(), diag::err_uninitialized_member_for_assign) in DefineImplicitMoveAssignment()
14955 << Context.getTagDeclType(ClassDecl) << 1 << Field->getDeclName(); in DefineImplicitMoveAssignment()
14967 assert(ClassDecl->hasFlexibleArrayMember() && in DefineImplicitMoveAssignment()
15033 CXXRecordDecl *ClassDecl) { in DeclareImplicitCopyConstructor() argument
15037 assert(ClassDecl->needsImplicitCopyConstructor()); in DeclareImplicitCopyConstructor()
15039 DeclaringSpecialMember DSM(*this, ClassDecl, CXXCopyConstructor); in DeclareImplicitCopyConstructor()
15043 QualType ClassType = Context.getTypeDeclType(ClassDecl); in DeclareImplicitCopyConstructor()
15045 bool Const = ClassDecl->implicitCopyConstructorHasConstParam(); in DeclareImplicitCopyConstructor()
15055 bool Constexpr = defaultedSpecialMemberIsConstexpr(*this, ClassDecl, in DeclareImplicitCopyConstructor()
15062 SourceLocation ClassLoc = ClassDecl->getLocation(); in DeclareImplicitCopyConstructor()
15068 Context, ClassDecl, ClassLoc, NameInfo, QualType(), /*TInfo=*/nullptr, in DeclareImplicitCopyConstructor()
15080 inferCUDATargetForImplicitSpecialMember(ClassDecl, CXXCopyConstructor, in DeclareImplicitCopyConstructor()
15089 if (inTemplateInstantiation() && ClassDecl->isLambda()) in DeclareImplicitCopyConstructor()
15100 ClassDecl->needsOverloadResolutionForCopyConstructor() in DeclareImplicitCopyConstructor()
15102 : ClassDecl->hasTrivialCopyConstructor()); in DeclareImplicitCopyConstructor()
15105 ClassDecl->hasAttr<TrivialABIAttr>() || in DeclareImplicitCopyConstructor()
15106 (ClassDecl->needsOverloadResolutionForCopyConstructor() in DeclareImplicitCopyConstructor()
15109 : ClassDecl->hasTrivialCopyConstructorForCall())); in DeclareImplicitCopyConstructor()
15114 Scope *S = getScopeForContext(ClassDecl); in DeclareImplicitCopyConstructor()
15118 ClassDecl->setImplicitCopyConstructorIsDeleted(); in DeclareImplicitCopyConstructor()
15124 ClassDecl->addDecl(CopyConstructor); in DeclareImplicitCopyConstructor()
15139 CXXRecordDecl *ClassDecl = CopyConstructor->getParent(); in DefineImplicitCopyConstructor() local
15140 assert(ClassDecl && "DefineImplicitCopyConstructor - invalid constructor"); in DefineImplicitCopyConstructor()
15148 MarkVTableUsed(CurrentLocation, ClassDecl); in DefineImplicitCopyConstructor()
15178 CXXRecordDecl *ClassDecl) { in DeclareImplicitMoveConstructor() argument
15179 assert(ClassDecl->needsImplicitMoveConstructor()); in DeclareImplicitMoveConstructor()
15181 DeclaringSpecialMember DSM(*this, ClassDecl, CXXMoveConstructor); in DeclareImplicitMoveConstructor()
15185 QualType ClassType = Context.getTypeDeclType(ClassDecl); in DeclareImplicitMoveConstructor()
15193 bool Constexpr = defaultedSpecialMemberIsConstexpr(*this, ClassDecl, in DeclareImplicitMoveConstructor()
15200 SourceLocation ClassLoc = ClassDecl->getLocation(); in DeclareImplicitMoveConstructor()
15207 Context, ClassDecl, ClassLoc, NameInfo, QualType(), /*TInfo=*/nullptr, in DeclareImplicitMoveConstructor()
15219 inferCUDATargetForImplicitSpecialMember(ClassDecl, CXXMoveConstructor, in DeclareImplicitMoveConstructor()
15233 ClassDecl->needsOverloadResolutionForMoveConstructor() in DeclareImplicitMoveConstructor()
15235 : ClassDecl->hasTrivialMoveConstructor()); in DeclareImplicitMoveConstructor()
15238 ClassDecl->hasAttr<TrivialABIAttr>() || in DeclareImplicitMoveConstructor()
15239 (ClassDecl->needsOverloadResolutionForMoveConstructor() in DeclareImplicitMoveConstructor()
15242 : ClassDecl->hasTrivialMoveConstructorForCall())); in DeclareImplicitMoveConstructor()
15247 Scope *S = getScopeForContext(ClassDecl); in DeclareImplicitMoveConstructor()
15251 ClassDecl->setImplicitMoveConstructorIsDeleted(); in DeclareImplicitMoveConstructor()
15257 ClassDecl->addDecl(MoveConstructor); in DeclareImplicitMoveConstructor()
15272 CXXRecordDecl *ClassDecl = MoveConstructor->getParent(); in DefineImplicitMoveConstructor() local
15273 assert(ClassDecl && "DefineImplicitMoveConstructor - invalid constructor"); in DefineImplicitMoveConstructor()
15281 MarkVTableUsed(CurrentLocation, ClassDecl); in DefineImplicitMoveConstructor()
15616 CXXRecordDecl *ClassDecl = cast<CXXRecordDecl>(Record->getDecl()); in FinalizeVarWithDestructor() local
15617 if (ClassDecl->isInvalidDecl()) return; in FinalizeVarWithDestructor()
15618 if (ClassDecl->hasIrrelevantDestructor()) return; in FinalizeVarWithDestructor()
15619 if (ClassDecl->isDependentContext()) return; in FinalizeVarWithDestructor()
15624 CXXDestructorDecl *Destructor = LookupDestructor(ClassDecl); in FinalizeVarWithDestructor()