Lines Matching refs:ClassDecl

2869 void Sema::ActOnBaseSpecifiers(Decl *ClassDecl,  in ActOnBaseSpecifiers()  argument
2871 if (!ClassDecl || Bases.empty()) in ActOnBaseSpecifiers()
2874 AdjustDeclIfTemplate(ClassDecl); in ActOnBaseSpecifiers()
2875 AttachBaseSpecifiers(cast<CXXRecordDecl>(ClassDecl), Bases); in ActOnBaseSpecifiers()
4124 CXXRecordDecl *ClassDecl, in FindBaseInitializer() argument
4130 for (const auto &Base : ClassDecl->bases()) { in FindBaseInitializer()
4148 if (SemaRef.IsDerivedFrom(ClassDecl->getLocation(), in FindBaseInitializer()
4149 SemaRef.Context.getTypeDeclType(ClassDecl), in FindBaseInitializer()
4204 explicit MemInitializerValidatorCCC(CXXRecordDecl *ClassDecl) in MemInitializerValidatorCCC() argument
4205 : ClassDecl(ClassDecl) {} in MemInitializerValidatorCCC()
4210 return Member->getDeclContext()->getRedeclContext()->Equals(ClassDecl); in ValidateCandidate()
4221 CXXRecordDecl *ClassDecl; member in __anonb2dcaa771111::MemInitializerValidatorCCC
4226 ValueDecl *Sema::tryLookupCtorInitMemberDecl(CXXRecordDecl *ClassDecl, in tryLookupCtorInitMemberDecl() argument
4232 for (auto *D : ClassDecl->lookup(MemberOrBase)) in tryLookupCtorInitMemberDecl()
4270 CXXRecordDecl *ClassDecl = Constructor->getParent(); in BuildMemInitializer() local
4285 ClassDecl, SS, TemplateTypeTy, MemberOrBase)) { in BuildMemInitializer()
4351 for (auto const &Base : ClassDecl->bases()) { in BuildMemInitializer()
4367 MemInitializerValidatorCCC CCC(ClassDecl); in BuildMemInitializer()
4370 CCC, CTK_ErrorRecovery, ClassDecl))) { in BuildMemInitializer()
4382 if (FindBaseInitializer(*this, ClassDecl, in BuildMemInitializer()
4424 return BuildBaseInitializer(BaseType, TInfo, Init, ClassDecl, EllipsisLoc); in BuildMemInitializer()
4512 CXXRecordDecl *ClassDecl) { in BuildDelegatingInitializer() argument
4529 QualType(ClassDecl->getTypeForDecl(), 0)); in BuildDelegatingInitializer()
4553 QualType(ClassDecl->getTypeForDecl(), 0)); in BuildDelegatingInitializer()
4575 Expr *Init, CXXRecordDecl *ClassDecl, in BuildBaseInitializer() argument
4618 if (Context.hasSameUnqualifiedType(QualType(ClassDecl->getTypeForDecl(),0), in BuildBaseInitializer()
4620 return BuildDelegatingInitializer(BaseTInfo, Init, ClassDecl); in BuildBaseInitializer()
4622 FindBaseInitializer(*this, ClassDecl, BaseType, DirectBaseSpec, in BuildBaseInitializer()
4635 if (ClassDecl->hasAnyDependentBases()) in BuildBaseInitializer()
4639 << BaseType << Context.getTypeDeclType(ClassDecl) in BuildBaseInitializer()
5199 CXXRecordDecl *ClassDecl = Constructor->getParent()->getDefinition(); in SetCtorInitializers() local
5200 if (!ClassDecl) in SetCtorInitializers()
5230 for (auto &I : ClassDecl->bases()) { in SetCtorInitializers()
5236 for (auto &VBase : ClassDecl->vbases()) { in SetCtorInitializers()
5243 if (ClassDecl->isAbstract()) { in SetCtorInitializers()
5247 << VBase.getType() << ClassDecl; in SetCtorInitializers()
5248 DiagnoseAbstractType(ClassDecl); in SetCtorInitializers()
5252 } else if (!AnyErrors && !ClassDecl->isAbstract()) { in SetCtorInitializers()
5271 for (auto &Base : ClassDecl->bases()) { in SetCtorInitializers()
5293 for (auto *Mem : ClassDecl->decls()) { in SetCtorInitializers()
5319 assert(ClassDecl->hasFlexibleArrayMember() && in SetCtorInitializers()
5413 const CXXRecordDecl *ClassDecl = Constructor->getParent(); in DiagnoseBaseOrMemInitializerOrder() local
5416 for (const auto &VBase : ClassDecl->vbases()) in DiagnoseBaseOrMemInitializerOrder()
5420 for (const auto &Base : ClassDecl->bases()) { in DiagnoseBaseOrMemInitializerOrder()
5427 for (auto *Field : ClassDecl->fields()) { in DiagnoseBaseOrMemInitializerOrder()
5652 CXXRecordDecl *ClassDecl) { in MarkBaseAndMemberDestructorsReferenced() argument
5655 if (ClassDecl->isDependentContext() || ClassDecl->isUnion()) in MarkBaseAndMemberDestructorsReferenced()
5664 for (auto *Field : ClassDecl->fields()) { in MarkBaseAndMemberDestructorsReferenced()
5702 bool VisitVirtualBases = !ClassDecl->isAbstract(); in MarkBaseAndMemberDestructorsReferenced()
5708 CXXDestructorDecl *Dtor = ClassDecl->getDestructor(); in MarkBaseAndMemberDestructorsReferenced()
5716 for (const auto &Base : ClassDecl->bases()) { in MarkBaseAndMemberDestructorsReferenced()
5744 Context.getTypeDeclType(ClassDecl)); in MarkBaseAndMemberDestructorsReferenced()
5751 MarkVirtualBaseDestructorsReferenced(Location, ClassDecl, in MarkBaseAndMemberDestructorsReferenced()
5756 SourceLocation Location, CXXRecordDecl *ClassDecl, in MarkVirtualBaseDestructorsReferenced() argument
5759 for (const auto &VBase : ClassDecl->vbases()) { in MarkVirtualBaseDestructorsReferenced()
5779 ClassDecl->getLocation(), Dtor, in MarkVirtualBaseDestructorsReferenced()
5781 << Context.getTypeDeclType(ClassDecl) << VBase.getType(), in MarkVirtualBaseDestructorsReferenced()
5782 Context.getTypeDeclType(ClassDecl)) == in MarkVirtualBaseDestructorsReferenced()
5785 Context.getTypeDeclType(ClassDecl), VBase.getType(), in MarkVirtualBaseDestructorsReferenced()
5786 diag::err_access_dtor_vbase, 0, ClassDecl->getLocation(), in MarkVirtualBaseDestructorsReferenced()
7225 specialMemberIsConstexpr(Sema &S, CXXRecordDecl *ClassDecl, in specialMemberIsConstexpr() argument
7240 Inherited->findConstructorForBase(ClassDecl, InheritedCtor).first; in specialMemberIsConstexpr()
7246 return ClassDecl->hasConstexprDefaultConstructor(); in specialMemberIsConstexpr()
7248 return ClassDecl->hasConstexprDestructor(); in specialMemberIsConstexpr()
7251 lookupCallFromSpecialMember(S, ClassDecl, CSM, Quals, ConstRHS); in specialMemberIsConstexpr()
7262 Sema &S, CXXRecordDecl *ClassDecl, Sema::CXXSpecialMember CSM, in defaultedSpecialMemberIsConstexpr() argument
7281 return ClassDecl->defaultedDefaultConstructorIsConstexpr(); in defaultedSpecialMemberIsConstexpr()
7297 return ClassDecl->defaultedDestructorIsConstexpr(); in defaultedSpecialMemberIsConstexpr()
7310 if (Ctor && ClassDecl->isUnion()) in defaultedSpecialMemberIsConstexpr()
7312 ? ClassDecl->hasInClassInitializer() || in defaultedSpecialMemberIsConstexpr()
7313 !ClassDecl->hasVariantMembers() in defaultedSpecialMemberIsConstexpr()
7317 if (Ctor && ClassDecl->getNumVBases()) in defaultedSpecialMemberIsConstexpr()
7322 if (!Ctor && !ClassDecl->isLiteral()) in defaultedSpecialMemberIsConstexpr()
7329 for (const auto &B : ClassDecl->bases()) { in defaultedSpecialMemberIsConstexpr()
7346 for (const auto *F : ClassDecl->fields()) { in defaultedSpecialMemberIsConstexpr()
10272 void Sema::AddImplicitlyDeclaredMembersToClass(CXXRecordDecl *ClassDecl) { in AddImplicitlyDeclaredMembersToClass() argument
10276 if (!ClassDecl->isDependentType()) { in AddImplicitlyDeclaredMembersToClass()
10277 if (ClassDecl->needsImplicitDefaultConstructor()) { in AddImplicitlyDeclaredMembersToClass()
10280 if (ClassDecl->hasInheritedConstructor()) in AddImplicitlyDeclaredMembersToClass()
10281 DeclareImplicitDefaultConstructor(ClassDecl); in AddImplicitlyDeclaredMembersToClass()
10284 if (ClassDecl->needsImplicitCopyConstructor()) { in AddImplicitlyDeclaredMembersToClass()
10290 if (ClassDecl->needsOverloadResolutionForCopyConstructor() || in AddImplicitlyDeclaredMembersToClass()
10291 ClassDecl->hasInheritedConstructor()) in AddImplicitlyDeclaredMembersToClass()
10292 DeclareImplicitCopyConstructor(ClassDecl); in AddImplicitlyDeclaredMembersToClass()
10299 (ClassDecl->hasUserDeclaredMoveConstructor() || in AddImplicitlyDeclaredMembersToClass()
10300 ClassDecl->needsOverloadResolutionForMoveConstructor() || in AddImplicitlyDeclaredMembersToClass()
10301 ClassDecl->hasUserDeclaredMoveAssignment() || in AddImplicitlyDeclaredMembersToClass()
10302 ClassDecl->needsOverloadResolutionForMoveAssignment())) in AddImplicitlyDeclaredMembersToClass()
10303 DeclareImplicitCopyConstructor(ClassDecl); in AddImplicitlyDeclaredMembersToClass()
10307 ClassDecl->needsImplicitMoveConstructor()) { in AddImplicitlyDeclaredMembersToClass()
10310 if (ClassDecl->needsOverloadResolutionForMoveConstructor() || in AddImplicitlyDeclaredMembersToClass()
10311 ClassDecl->hasInheritedConstructor()) in AddImplicitlyDeclaredMembersToClass()
10312 DeclareImplicitMoveConstructor(ClassDecl); in AddImplicitlyDeclaredMembersToClass()
10315 if (ClassDecl->needsImplicitCopyAssignment()) { in AddImplicitlyDeclaredMembersToClass()
10322 if (ClassDecl->isDynamicClass() || in AddImplicitlyDeclaredMembersToClass()
10323 ClassDecl->needsOverloadResolutionForCopyAssignment() || in AddImplicitlyDeclaredMembersToClass()
10324 ClassDecl->hasInheritedAssignment()) in AddImplicitlyDeclaredMembersToClass()
10325 DeclareImplicitCopyAssignment(ClassDecl); in AddImplicitlyDeclaredMembersToClass()
10328 if (getLangOpts().CPlusPlus11 && ClassDecl->needsImplicitMoveAssignment()) { in AddImplicitlyDeclaredMembersToClass()
10332 if (ClassDecl->isDynamicClass() || in AddImplicitlyDeclaredMembersToClass()
10333 ClassDecl->needsOverloadResolutionForMoveAssignment() || in AddImplicitlyDeclaredMembersToClass()
10334 ClassDecl->hasInheritedAssignment()) in AddImplicitlyDeclaredMembersToClass()
10335 DeclareImplicitMoveAssignment(ClassDecl); in AddImplicitlyDeclaredMembersToClass()
10338 if (ClassDecl->needsImplicitDestructor()) { in AddImplicitlyDeclaredMembersToClass()
10345 if (ClassDecl->isDynamicClass() || in AddImplicitlyDeclaredMembersToClass()
10346 ClassDecl->needsOverloadResolutionForDestructor()) in AddImplicitlyDeclaredMembersToClass()
10347 DeclareImplicitDestructor(ClassDecl); in AddImplicitlyDeclaredMembersToClass()
10362 findImplicitlyDeclaredEqualityComparisons(Context, ClassDecl, in AddImplicitlyDeclaredMembersToClass()
10365 DeclareImplicitEqualityComparison(ClassDecl, FD); in AddImplicitlyDeclaredMembersToClass()
10604 CXXRecordDecl *ClassDecl in CheckConstructor() local
10606 if (!ClassDecl) in CheckConstructor()
10619 QualType ClassTy = Context.getTagDeclType(ClassDecl); in CheckConstructor()
10985 CXXRecordDecl *ClassDecl = cast<CXXRecordDecl>(Conversion->getDeclContext()); in ActOnConversionDeclarator() local
10996 = Context.getCanonicalType(Context.getTypeDeclType(ClassDecl)); in ActOnConversionDeclarator()
13394 CXXRecordDecl *ClassDecl = MD->getParent(); in ComputeDefaultedSpecialMemberExceptionSpec() local
13400 if (ClassDecl->isInvalidDecl()) in ComputeDefaultedSpecialMemberExceptionSpec()
13407 S.Context.getRecordType(ClassDecl), in ComputeDefaultedSpecialMemberExceptionSpec()
13520 CXXRecordDecl *ClassDecl) { in DeclareImplicitDefaultConstructor() argument
13527 assert(ClassDecl->needsImplicitDefaultConstructor() && in DeclareImplicitDefaultConstructor()
13530 DeclaringSpecialMember DSM(*this, ClassDecl, CXXDefaultConstructor); in DeclareImplicitDefaultConstructor()
13534 bool Constexpr = defaultedSpecialMemberIsConstexpr(*this, ClassDecl, in DeclareImplicitDefaultConstructor()
13540 = Context.getCanonicalType(Context.getTypeDeclType(ClassDecl)); in DeclareImplicitDefaultConstructor()
13541 SourceLocation ClassLoc = ClassDecl->getLocation(); in DeclareImplicitDefaultConstructor()
13546 Context, ClassDecl, ClassLoc, NameInfo, /*Type*/ QualType(), in DeclareImplicitDefaultConstructor()
13558 inferCUDATargetForImplicitSpecialMember(ClassDecl, CXXDefaultConstructor, in DeclareImplicitDefaultConstructor()
13565 DefaultCon->setTrivial(ClassDecl->hasTrivialDefaultConstructor()); in DeclareImplicitDefaultConstructor()
13570 Scope *S = getScopeForContext(ClassDecl); in DeclareImplicitDefaultConstructor()
13578 ClassDecl->addDecl(DefaultCon); in DeclareImplicitDefaultConstructor()
13592 CXXRecordDecl *ClassDecl = Constructor->getParent(); in DefineImplicitDefaultConstructor() local
13593 assert(ClassDecl && "DefineImplicitDefaultConstructor - invalid constructor"); in DefineImplicitDefaultConstructor()
13601 MarkVTableUsed(CurrentLocation, ClassDecl); in DefineImplicitDefaultConstructor()
13724 CXXRecordDecl *ClassDecl = Constructor->getParent(); in DefineInheritingConstructor() local
13739 MarkVTableUsed(CurrentLocation, ClassDecl); in DefineInheritingConstructor()
13803 CXXDestructorDecl *Sema::DeclareImplicitDestructor(CXXRecordDecl *ClassDecl) { in DeclareImplicitDestructor() argument
13808 assert(ClassDecl->needsImplicitDestructor()); in DeclareImplicitDestructor()
13810 DeclaringSpecialMember DSM(*this, ClassDecl, CXXDestructor); in DeclareImplicitDestructor()
13814 bool Constexpr = defaultedSpecialMemberIsConstexpr(*this, ClassDecl, in DeclareImplicitDestructor()
13820 = Context.getCanonicalType(Context.getTypeDeclType(ClassDecl)); in DeclareImplicitDestructor()
13821 SourceLocation ClassLoc = ClassDecl->getLocation(); in DeclareImplicitDestructor()
13826 Context, ClassDecl, ClassLoc, NameInfo, QualType(), nullptr, in DeclareImplicitDestructor()
13838 inferCUDATargetForImplicitSpecialMember(ClassDecl, CXXDestructor, in DeclareImplicitDestructor()
13845 Destructor->setTrivial(ClassDecl->hasTrivialDestructor()); in DeclareImplicitDestructor()
13846 Destructor->setTrivialForCall(ClassDecl->hasAttr<TrivialABIAttr>() || in DeclareImplicitDestructor()
13847 ClassDecl->hasTrivialDestructorForCall()); in DeclareImplicitDestructor()
13852 Scope *S = getScopeForContext(ClassDecl); in DeclareImplicitDestructor()
13858 if (ClassDecl->isCompleteDefinition() && in DeclareImplicitDestructor()
13865 ClassDecl->addDecl(Destructor); in DeclareImplicitDestructor()
13879 CXXRecordDecl *ClassDecl = Destructor->getParent(); in DefineImplicitDestructor() local
13880 assert(ClassDecl && "DefineImplicitDestructor - invalid destructor"); in DefineImplicitDestructor()
13888 MarkVTableUsed(CurrentLocation, ClassDecl); in DefineImplicitDestructor()
13917 CXXRecordDecl *ClassDecl = Destructor->getParent(); in CheckCompleteDestructorVariant() local
13920 assert(ClassDecl->getNumVBases() > 0 && in CheckCompleteDestructorVariant()
13928 MarkVirtualBaseDestructorsReferenced(Destructor->getLocation(), ClassDecl); in CheckCompleteDestructorVariant()
14240 CXXRecordDecl *ClassDecl = cast<CXXRecordDecl>(RecordTy->getDecl()); in buildSingleCopyAssignRecursively() local
14246 S.LookupQualifiedName(OpLookup, ClassDecl, false); in buildSingleCopyAssignRecursively()
14433 CXXMethodDecl *Sema::DeclareImplicitCopyAssignment(CXXRecordDecl *ClassDecl) { in DeclareImplicitCopyAssignment() argument
14438 assert(ClassDecl->needsImplicitCopyAssignment()); in DeclareImplicitCopyAssignment()
14440 DeclaringSpecialMember DSM(*this, ClassDecl, CXXCopyAssignment); in DeclareImplicitCopyAssignment()
14444 QualType ArgType = Context.getTypeDeclType(ClassDecl); in DeclareImplicitCopyAssignment()
14450 bool Const = ClassDecl->implicitCopyAssignmentHasConstParam(); in DeclareImplicitCopyAssignment()
14456 bool Constexpr = defaultedSpecialMemberIsConstexpr(*this, ClassDecl, in DeclareImplicitCopyAssignment()
14463 SourceLocation ClassLoc = ClassDecl->getLocation(); in DeclareImplicitCopyAssignment()
14466 Context, ClassDecl, ClassLoc, NameInfo, QualType(), in DeclareImplicitCopyAssignment()
14479 inferCUDATargetForImplicitSpecialMember(ClassDecl, CXXCopyAssignment, in DeclareImplicitCopyAssignment()
14493 ClassDecl->needsOverloadResolutionForCopyAssignment() in DeclareImplicitCopyAssignment()
14495 : ClassDecl->hasTrivialCopyAssignment()); in DeclareImplicitCopyAssignment()
14500 Scope *S = getScopeForContext(ClassDecl); in DeclareImplicitCopyAssignment()
14504 ClassDecl->setImplicitCopyAssignmentIsDeleted(); in DeclareImplicitCopyAssignment()
14510 ClassDecl->addDecl(CopyAssignment); in DeclareImplicitCopyAssignment()
14576 CXXRecordDecl *ClassDecl = CopyAssignOperator->getParent(); in DefineImplicitCopyAssignment() local
14577 if (ClassDecl->isInvalidDecl()) { in DefineImplicitCopyAssignment()
14633 for (auto &Base : ClassDecl->bases()) { in DefineImplicitCopyAssignment()
14672 for (auto *Field : ClassDecl->fields()) { in DefineImplicitCopyAssignment()
14685 Diag(ClassDecl->getLocation(), diag::err_uninitialized_member_for_assign) in DefineImplicitCopyAssignment()
14686 << Context.getTagDeclType(ClassDecl) << 0 << Field->getDeclName(); in DefineImplicitCopyAssignment()
14695 Diag(ClassDecl->getLocation(), diag::err_uninitialized_member_for_assign) in DefineImplicitCopyAssignment()
14696 << Context.getTagDeclType(ClassDecl) << 1 << Field->getDeclName(); in DefineImplicitCopyAssignment()
14708 assert(ClassDecl->hasFlexibleArrayMember() && in DefineImplicitCopyAssignment()
14777 CXXMethodDecl *Sema::DeclareImplicitMoveAssignment(CXXRecordDecl *ClassDecl) { in DeclareImplicitMoveAssignment() argument
14778 assert(ClassDecl->needsImplicitMoveAssignment()); in DeclareImplicitMoveAssignment()
14780 DeclaringSpecialMember DSM(*this, ClassDecl, CXXMoveAssignment); in DeclareImplicitMoveAssignment()
14787 QualType ArgType = Context.getTypeDeclType(ClassDecl); in DeclareImplicitMoveAssignment()
14795 bool Constexpr = defaultedSpecialMemberIsConstexpr(*this, ClassDecl, in DeclareImplicitMoveAssignment()
14802 SourceLocation ClassLoc = ClassDecl->getLocation(); in DeclareImplicitMoveAssignment()
14805 Context, ClassDecl, ClassLoc, NameInfo, QualType(), in DeclareImplicitMoveAssignment()
14818 inferCUDATargetForImplicitSpecialMember(ClassDecl, CXXMoveAssignment, in DeclareImplicitMoveAssignment()
14832 ClassDecl->needsOverloadResolutionForMoveAssignment() in DeclareImplicitMoveAssignment()
14834 : ClassDecl->hasTrivialMoveAssignment()); in DeclareImplicitMoveAssignment()
14839 Scope *S = getScopeForContext(ClassDecl); in DeclareImplicitMoveAssignment()
14843 ClassDecl->setImplicitMoveAssignmentIsDeleted(); in DeclareImplicitMoveAssignment()
14849 ClassDecl->addDecl(MoveAssignment); in DeclareImplicitMoveAssignment()
14948 CXXRecordDecl *ClassDecl = MoveAssignOperator->getParent(); in DefineImplicitMoveAssignment() local
14949 if (ClassDecl->isInvalidDecl()) { in DefineImplicitMoveAssignment()
14964 checkMoveAssignmentForRepeatedMove(*this, ClassDecl, CurrentLocation); in DefineImplicitMoveAssignment()
14999 for (auto &Base : ClassDecl->bases()) { in DefineImplicitMoveAssignment()
15047 for (auto *Field : ClassDecl->fields()) { in DefineImplicitMoveAssignment()
15060 Diag(ClassDecl->getLocation(), diag::err_uninitialized_member_for_assign) in DefineImplicitMoveAssignment()
15061 << Context.getTagDeclType(ClassDecl) << 0 << Field->getDeclName(); in DefineImplicitMoveAssignment()
15070 Diag(ClassDecl->getLocation(), diag::err_uninitialized_member_for_assign) in DefineImplicitMoveAssignment()
15071 << Context.getTagDeclType(ClassDecl) << 1 << Field->getDeclName(); in DefineImplicitMoveAssignment()
15083 assert(ClassDecl->hasFlexibleArrayMember() && in DefineImplicitMoveAssignment()
15149 CXXRecordDecl *ClassDecl) { in DeclareImplicitCopyConstructor() argument
15153 assert(ClassDecl->needsImplicitCopyConstructor()); in DeclareImplicitCopyConstructor()
15155 DeclaringSpecialMember DSM(*this, ClassDecl, CXXCopyConstructor); in DeclareImplicitCopyConstructor()
15159 QualType ClassType = Context.getTypeDeclType(ClassDecl); in DeclareImplicitCopyConstructor()
15162 bool Const = ClassDecl->implicitCopyConstructorHasConstParam(); in DeclareImplicitCopyConstructor()
15172 bool Constexpr = defaultedSpecialMemberIsConstexpr(*this, ClassDecl, in DeclareImplicitCopyConstructor()
15179 SourceLocation ClassLoc = ClassDecl->getLocation(); in DeclareImplicitCopyConstructor()
15185 Context, ClassDecl, ClassLoc, NameInfo, QualType(), /*TInfo=*/nullptr, in DeclareImplicitCopyConstructor()
15197 inferCUDATargetForImplicitSpecialMember(ClassDecl, CXXCopyConstructor, in DeclareImplicitCopyConstructor()
15206 if (inTemplateInstantiation() && ClassDecl->isLambda()) in DeclareImplicitCopyConstructor()
15217 ClassDecl->needsOverloadResolutionForCopyConstructor() in DeclareImplicitCopyConstructor()
15219 : ClassDecl->hasTrivialCopyConstructor()); in DeclareImplicitCopyConstructor()
15222 ClassDecl->hasAttr<TrivialABIAttr>() || in DeclareImplicitCopyConstructor()
15223 (ClassDecl->needsOverloadResolutionForCopyConstructor() in DeclareImplicitCopyConstructor()
15226 : ClassDecl->hasTrivialCopyConstructorForCall())); in DeclareImplicitCopyConstructor()
15231 Scope *S = getScopeForContext(ClassDecl); in DeclareImplicitCopyConstructor()
15235 ClassDecl->setImplicitCopyConstructorIsDeleted(); in DeclareImplicitCopyConstructor()
15241 ClassDecl->addDecl(CopyConstructor); in DeclareImplicitCopyConstructor()
15256 CXXRecordDecl *ClassDecl = CopyConstructor->getParent(); in DefineImplicitCopyConstructor() local
15257 assert(ClassDecl && "DefineImplicitCopyConstructor - invalid constructor"); in DefineImplicitCopyConstructor()
15265 MarkVTableUsed(CurrentLocation, ClassDecl); in DefineImplicitCopyConstructor()
15296 CXXRecordDecl *ClassDecl) { in DeclareImplicitMoveConstructor() argument
15297 assert(ClassDecl->needsImplicitMoveConstructor()); in DeclareImplicitMoveConstructor()
15299 DeclaringSpecialMember DSM(*this, ClassDecl, CXXMoveConstructor); in DeclareImplicitMoveConstructor()
15303 QualType ClassType = Context.getTypeDeclType(ClassDecl); in DeclareImplicitMoveConstructor()
15312 bool Constexpr = defaultedSpecialMemberIsConstexpr(*this, ClassDecl, in DeclareImplicitMoveConstructor()
15319 SourceLocation ClassLoc = ClassDecl->getLocation(); in DeclareImplicitMoveConstructor()
15326 Context, ClassDecl, ClassLoc, NameInfo, QualType(), /*TInfo=*/nullptr, in DeclareImplicitMoveConstructor()
15338 inferCUDATargetForImplicitSpecialMember(ClassDecl, CXXMoveConstructor, in DeclareImplicitMoveConstructor()
15352 ClassDecl->needsOverloadResolutionForMoveConstructor() in DeclareImplicitMoveConstructor()
15354 : ClassDecl->hasTrivialMoveConstructor()); in DeclareImplicitMoveConstructor()
15357 ClassDecl->hasAttr<TrivialABIAttr>() || in DeclareImplicitMoveConstructor()
15358 (ClassDecl->needsOverloadResolutionForMoveConstructor() in DeclareImplicitMoveConstructor()
15361 : ClassDecl->hasTrivialMoveConstructorForCall())); in DeclareImplicitMoveConstructor()
15366 Scope *S = getScopeForContext(ClassDecl); in DeclareImplicitMoveConstructor()
15370 ClassDecl->setImplicitMoveConstructorIsDeleted(); in DeclareImplicitMoveConstructor()
15376 ClassDecl->addDecl(MoveConstructor); in DeclareImplicitMoveConstructor()
15391 CXXRecordDecl *ClassDecl = MoveConstructor->getParent(); in DefineImplicitMoveConstructor() local
15392 assert(ClassDecl && "DefineImplicitMoveConstructor - invalid constructor"); in DefineImplicitMoveConstructor()
15400 MarkVTableUsed(CurrentLocation, ClassDecl); in DefineImplicitMoveConstructor()
15678 CXXRecordDecl *ClassDecl = cast<CXXRecordDecl>(Record->getDecl()); in FinalizeVarWithDestructor() local
15679 if (ClassDecl->isInvalidDecl()) return; in FinalizeVarWithDestructor()
15680 if (ClassDecl->hasIrrelevantDestructor()) return; in FinalizeVarWithDestructor()
15681 if (ClassDecl->isDependentContext()) return; in FinalizeVarWithDestructor()
15686 CXXDestructorDecl *Destructor = LookupDestructor(ClassDecl); in FinalizeVarWithDestructor()