Lines Matching refs:ClassDecl
800 void Sema::ActOnBaseSpecifiers(Decl *ClassDecl, BaseTy **Bases, in ActOnBaseSpecifiers() argument
802 if (!ClassDecl || !Bases || !NumBases) in ActOnBaseSpecifiers()
805 AdjustDeclIfTemplate(ClassDecl); in ActOnBaseSpecifiers()
806 AttachBaseSpecifiers(cast<CXXRecordDecl>(ClassDecl), in ActOnBaseSpecifiers()
1282 CXXRecordDecl *ClassDecl, in FindBaseInitializer() argument
1289 = ClassDecl->bases_begin(); in FindBaseInitializer()
1290 Base != ClassDecl->bases_end(); ++Base) { in FindBaseInitializer()
1308 if (SemaRef.IsDerivedFrom(SemaRef.Context.getTypeDeclType(ClassDecl), in FindBaseInitializer()
1350 CXXRecordDecl *ClassDecl = Constructor->getParent(); in ActOnMemInitializer() local
1366 = ClassDecl->lookup(MemberOrBase); in ActOnMemInitializer()
1433 ClassDecl, false, CTC_NoKeywords))) { in ActOnMemInitializer()
1437 if (Member->getDeclContext()->getRedeclContext()->Equals(ClassDecl)) { in ActOnMemInitializer()
1453 if (FindBaseInitializer(*this, ClassDecl, in ActOnMemInitializer()
1498 LParenLoc, RParenLoc, ClassDecl, EllipsisLoc); in ActOnMemInitializer()
1669 CXXRecordDecl *ClassDecl) { in BuildDelegatingInitializer() argument
1677 QualType(ClassDecl->getTypeForDecl(), 0)); in BuildDelegatingInitializer()
1713 CXXRecordDecl *ClassDecl, in BuildBaseInitializer() argument
1756 if (Context.hasSameUnqualifiedType(QualType(ClassDecl->getTypeForDecl(),0), in BuildBaseInitializer()
1759 LParenLoc, RParenLoc, ClassDecl); in BuildBaseInitializer()
1761 FindBaseInitializer(*this, ClassDecl, BaseType, DirectBaseSpec, in BuildBaseInitializer()
1774 if (ClassDecl->hasAnyDependentBases()) in BuildBaseInitializer()
1778 << BaseType << Context.getTypeDeclType(ClassDecl) in BuildBaseInitializer()
2266 CXXRecordDecl *ClassDecl = Constructor->getParent()->getDefinition(); in SetCtorInitializers() local
2267 if (!ClassDecl) in SetCtorInitializers()
2283 for (CXXRecordDecl::base_class_iterator I = ClassDecl->bases_begin(), in SetCtorInitializers()
2284 E = ClassDecl->bases_end(); I != E; ++I) { in SetCtorInitializers()
2290 for (CXXRecordDecl::base_class_iterator VBase = ClassDecl->vbases_begin(), in SetCtorInitializers()
2291 E = ClassDecl->vbases_end(); VBase != E; ++VBase) { in SetCtorInitializers()
2311 for (CXXRecordDecl::base_class_iterator Base = ClassDecl->bases_begin(), in SetCtorInitializers()
2312 E = ClassDecl->bases_end(); Base != E; ++Base) { in SetCtorInitializers()
2334 for (CXXRecordDecl::field_iterator Field = ClassDecl->field_begin(), in SetCtorInitializers()
2335 E = ClassDecl->field_end(); Field != E; ++Field) { in SetCtorInitializers()
2337 assert(ClassDecl->hasFlexibleArrayMember() && in SetCtorInitializers()
2431 const CXXRecordDecl *ClassDecl = Constructor->getParent(); in DiagnoseBaseOrMemInitializerOrder() local
2435 ClassDecl->vbases_begin(), in DiagnoseBaseOrMemInitializerOrder()
2436 E = ClassDecl->vbases_end(); VBase != E; ++VBase) in DiagnoseBaseOrMemInitializerOrder()
2440 for (CXXRecordDecl::base_class_const_iterator Base = ClassDecl->bases_begin(), in DiagnoseBaseOrMemInitializerOrder()
2441 E = ClassDecl->bases_end(); Base != E; ++Base) { in DiagnoseBaseOrMemInitializerOrder()
2448 for (CXXRecordDecl::field_iterator Field = ClassDecl->field_begin(), in DiagnoseBaseOrMemInitializerOrder()
2449 E = ClassDecl->field_end(); Field != E; ++Field) in DiagnoseBaseOrMemInitializerOrder()
2633 CXXRecordDecl *ClassDecl) { in MarkBaseAndMemberDestructorsReferenced() argument
2635 if (ClassDecl->isDependentContext()) in MarkBaseAndMemberDestructorsReferenced()
2644 for (CXXRecordDecl::field_iterator I = ClassDecl->field_begin(), in MarkBaseAndMemberDestructorsReferenced()
2645 E = ClassDecl->field_end(); I != E; ++I) { in MarkBaseAndMemberDestructorsReferenced()
2674 for (CXXRecordDecl::base_class_iterator Base = ClassDecl->bases_begin(), in MarkBaseAndMemberDestructorsReferenced()
2675 E = ClassDecl->bases_end(); Base != E; ++Base) { in MarkBaseAndMemberDestructorsReferenced()
2704 for (CXXRecordDecl::base_class_iterator VBase = ClassDecl->vbases_begin(), in MarkBaseAndMemberDestructorsReferenced()
2705 E = ClassDecl->vbases_end(); VBase != E; ++VBase) { in MarkBaseAndMemberDestructorsReferenced()
2724 CheckDestructorAccess(ClassDecl->getLocation(), Dtor, in MarkBaseAndMemberDestructorsReferenced()
4076 void Sema::AddImplicitlyDeclaredMembersToClass(CXXRecordDecl *ClassDecl) { in AddImplicitlyDeclaredMembersToClass() argument
4077 if (!ClassDecl->hasUserDeclaredConstructor()) in AddImplicitlyDeclaredMembersToClass()
4080 if (!ClassDecl->hasUserDeclaredCopyConstructor()) in AddImplicitlyDeclaredMembersToClass()
4083 if (!ClassDecl->hasUserDeclaredCopyAssignment()) { in AddImplicitlyDeclaredMembersToClass()
4090 if (ClassDecl->isDynamicClass()) in AddImplicitlyDeclaredMembersToClass()
4091 DeclareImplicitCopyAssignment(ClassDecl); in AddImplicitlyDeclaredMembersToClass()
4094 if (!ClassDecl->hasUserDeclaredDestructor()) { in AddImplicitlyDeclaredMembersToClass()
4101 if (ClassDecl->isDynamicClass()) in AddImplicitlyDeclaredMembersToClass()
4102 DeclareImplicitDestructor(ClassDecl); in AddImplicitlyDeclaredMembersToClass()
4292 CXXRecordDecl *ClassDecl in CheckConstructor() local
4294 if (!ClassDecl) in CheckConstructor()
4309 QualType ClassTy = Context.getTagDeclType(ClassDecl); in CheckConstructor()
4562 CXXRecordDecl *ClassDecl = cast<CXXRecordDecl>(Conversion->getDeclContext()); in ActOnConversionDeclarator() local
4576 = Context.getCanonicalType(Context.getTypeDeclType(ClassDecl)); in ActOnConversionDeclarator()
5878 Sema::ComputeDefaultedDefaultCtorExceptionSpec(CXXRecordDecl *ClassDecl) { in ComputeDefaultedDefaultCtorExceptionSpec() argument
5883 if (ClassDecl->isInvalidDecl()) in ComputeDefaultedDefaultCtorExceptionSpec()
5887 for (CXXRecordDecl::base_class_iterator B = ClassDecl->bases_begin(), in ComputeDefaultedDefaultCtorExceptionSpec()
5888 BEnd = ClassDecl->bases_end(); in ComputeDefaultedDefaultCtorExceptionSpec()
5904 for (CXXRecordDecl::base_class_iterator B = ClassDecl->vbases_begin(), in ComputeDefaultedDefaultCtorExceptionSpec()
5905 BEnd = ClassDecl->vbases_end(); in ComputeDefaultedDefaultCtorExceptionSpec()
5918 for (RecordDecl::field_iterator F = ClassDecl->field_begin(), in ComputeDefaultedDefaultCtorExceptionSpec()
5919 FEnd = ClassDecl->field_end(); in ComputeDefaultedDefaultCtorExceptionSpec()
5944 CXXRecordDecl *ClassDecl) { in DeclareImplicitDefaultConstructor() argument
5951 assert(!ClassDecl->hasUserDeclaredConstructor() && in DeclareImplicitDefaultConstructor()
5955 ComputeDefaultedDefaultCtorExceptionSpec(ClassDecl); in DeclareImplicitDefaultConstructor()
5960 = Context.getCanonicalType(Context.getTypeDeclType(ClassDecl)); in DeclareImplicitDefaultConstructor()
5961 SourceLocation ClassLoc = ClassDecl->getLocation(); in DeclareImplicitDefaultConstructor()
5966 = CXXConstructorDecl::Create(Context, ClassDecl, ClassLoc, NameInfo, in DeclareImplicitDefaultConstructor()
5976 DefaultCon->setTrivial(ClassDecl->hasTrivialDefaultConstructor()); in DeclareImplicitDefaultConstructor()
5981 if (Scope *S = getScopeForContext(ClassDecl)) in DeclareImplicitDefaultConstructor()
5983 ClassDecl->addDecl(DefaultCon); in DeclareImplicitDefaultConstructor()
5998 CXXRecordDecl *ClassDecl = Constructor->getParent(); in DefineImplicitDefaultConstructor() local
5999 assert(ClassDecl && "DefineImplicitDefaultConstructor - invalid constructor"); in DefineImplicitDefaultConstructor()
6006 << CXXDefaultConstructor << Context.getTagDeclType(ClassDecl); in DefineImplicitDefaultConstructor()
6015 MarkVTableUsed(CurrentLocation, ClassDecl); in DefineImplicitDefaultConstructor()
6050 CXXRecordDecl *ClassDecl = cast<CXXRecordDecl>(D); in ActOnFinishDelayedMemberInitializers() local
6052 = getDefaultedDefaultConstructorUnsafe(*this, ClassDecl); in ActOnFinishDelayedMemberInitializers()
6061 ComputeDefaultedDefaultCtorExceptionSpec(ClassDecl); in ActOnFinishDelayedMemberInitializers()
6071 !ClassDecl->isDependentType()) in ActOnFinishDelayedMemberInitializers()
6075 void Sema::DeclareInheritedConstructors(CXXRecordDecl *ClassDecl) { in DeclareInheritedConstructors() argument
6081 for (CXXRecordDecl::base_class_iterator BaseIt = ClassDecl->bases_begin(), in DeclareInheritedConstructors()
6082 BaseE = ClassDecl->bases_end(); in DeclareInheritedConstructors()
6104 for (CXXRecordDecl::ctor_iterator CtorIt = ClassDecl->ctor_begin(), in DeclareInheritedConstructors()
6105 CtorE = ClassDecl->ctor_end(); in DeclareInheritedConstructors()
6111 Scope *S = getScopeForContext(ClassDecl); in DeclareInheritedConstructors()
6114 ClassDecl->getTypeForDecl()->getCanonicalTypeUnqualified()); in DeclareInheritedConstructors()
6138 ClassDecl->getLocation(); in DeclareInheritedConstructors()
6226 Context, ClassDecl, UsingLoc, DNI, QualType(NewCtorType, 0), in DeclareInheritedConstructors()
6245 ClassDecl->addDecl(NewCtor); in DeclareInheritedConstructors()
6253 Sema::ComputeDefaultedDtorExceptionSpec(CXXRecordDecl *ClassDecl) { in ComputeDefaultedDtorExceptionSpec() argument
6258 if (ClassDecl->isInvalidDecl()) in ComputeDefaultedDtorExceptionSpec()
6262 for (CXXRecordDecl::base_class_iterator B = ClassDecl->bases_begin(), in ComputeDefaultedDtorExceptionSpec()
6263 BEnd = ClassDecl->bases_end(); in ComputeDefaultedDtorExceptionSpec()
6274 for (CXXRecordDecl::base_class_iterator B = ClassDecl->vbases_begin(), in ComputeDefaultedDtorExceptionSpec()
6275 BEnd = ClassDecl->vbases_end(); in ComputeDefaultedDtorExceptionSpec()
6283 for (RecordDecl::field_iterator F = ClassDecl->field_begin(), in ComputeDefaultedDtorExceptionSpec()
6284 FEnd = ClassDecl->field_end(); in ComputeDefaultedDtorExceptionSpec()
6295 CXXDestructorDecl *Sema::DeclareImplicitDestructor(CXXRecordDecl *ClassDecl) { in DeclareImplicitDestructor() argument
6302 ComputeDefaultedDtorExceptionSpec(ClassDecl); in DeclareImplicitDestructor()
6309 = Context.getCanonicalType(Context.getTypeDeclType(ClassDecl)); in DeclareImplicitDestructor()
6310 SourceLocation ClassLoc = ClassDecl->getLocation(); in DeclareImplicitDestructor()
6315 = CXXDestructorDecl::Create(Context, ClassDecl, ClassLoc, NameInfo, Ty, 0, in DeclareImplicitDestructor()
6321 Destructor->setTrivial(ClassDecl->hasTrivialDestructor()); in DeclareImplicitDestructor()
6327 if (Scope *S = getScopeForContext(ClassDecl)) in DeclareImplicitDestructor()
6329 ClassDecl->addDecl(Destructor); in DeclareImplicitDestructor()
6337 AddOverriddenMethods(ClassDecl, Destructor); in DeclareImplicitDestructor()
6347 CXXRecordDecl *ClassDecl = Destructor->getParent(); in DefineImplicitDestructor() local
6348 assert(ClassDecl && "DefineImplicitDestructor - invalid destructor"); in DefineImplicitDestructor()
6361 << CXXDestructor << Context.getTagDeclType(ClassDecl); in DefineImplicitDestructor()
6371 MarkVTableUsed(CurrentLocation, ClassDecl); in DefineImplicitDestructor()
6443 CXXRecordDecl *ClassDecl = cast<CXXRecordDecl>(RecordTy->getDecl()); in BuildSingleCopyAssign() local
6449 S.LookupQualifiedName(OpLookup, ClassDecl, false); in BuildSingleCopyAssign()
6594 CXXRecordDecl *ClassDecl) { in ComputeDefaultedCopyAssignmentExceptionSpecAndConst() argument
6595 if (ClassDecl->isInvalidDecl()) in ComputeDefaultedCopyAssignmentExceptionSpecAndConst()
6612 for (CXXRecordDecl::base_class_iterator Base = ClassDecl->bases_begin(), in ComputeDefaultedCopyAssignmentExceptionSpecAndConst()
6613 BaseEnd = ClassDecl->bases_end(); in ComputeDefaultedCopyAssignmentExceptionSpecAndConst()
6628 for (CXXRecordDecl::base_class_iterator Base = ClassDecl->vbases_begin(), in ComputeDefaultedCopyAssignmentExceptionSpecAndConst()
6629 BaseEnd = ClassDecl->vbases_end(); in ComputeDefaultedCopyAssignmentExceptionSpecAndConst()
6643 for (CXXRecordDecl::field_iterator Field = ClassDecl->field_begin(), in ComputeDefaultedCopyAssignmentExceptionSpecAndConst()
6644 FieldEnd = ClassDecl->field_end(); in ComputeDefaultedCopyAssignmentExceptionSpecAndConst()
6671 for (CXXRecordDecl::base_class_iterator Base = ClassDecl->bases_begin(), in ComputeDefaultedCopyAssignmentExceptionSpecAndConst()
6672 BaseEnd = ClassDecl->bases_end(); in ComputeDefaultedCopyAssignmentExceptionSpecAndConst()
6684 for (CXXRecordDecl::base_class_iterator Base = ClassDecl->vbases_begin(), in ComputeDefaultedCopyAssignmentExceptionSpecAndConst()
6685 BaseEnd = ClassDecl->vbases_end(); in ComputeDefaultedCopyAssignmentExceptionSpecAndConst()
6694 for (CXXRecordDecl::field_iterator Field = ClassDecl->field_begin(), in ComputeDefaultedCopyAssignmentExceptionSpecAndConst()
6695 FieldEnd = ClassDecl->field_end(); in ComputeDefaultedCopyAssignmentExceptionSpecAndConst()
6709 CXXMethodDecl *Sema::DeclareImplicitCopyAssignment(CXXRecordDecl *ClassDecl) { in DeclareImplicitCopyAssignment() argument
6718 ComputeDefaultedCopyAssignmentExceptionSpecAndConst(ClassDecl); in DeclareImplicitCopyAssignment()
6720 QualType ArgType = Context.getTypeDeclType(ClassDecl); in DeclareImplicitCopyAssignment()
6730 SourceLocation ClassLoc = ClassDecl->getLocation(); in DeclareImplicitCopyAssignment()
6733 = CXXMethodDecl::Create(Context, ClassDecl, ClassLoc, NameInfo, in DeclareImplicitCopyAssignment()
6742 CopyAssignment->setTrivial(ClassDecl->hasTrivialCopyAssignment()); in DeclareImplicitCopyAssignment()
6755 if (Scope *S = getScopeForContext(ClassDecl)) in DeclareImplicitCopyAssignment()
6757 ClassDecl->addDecl(CopyAssignment); in DeclareImplicitCopyAssignment()
6763 if (ClassDecl->hasUserDeclaredMoveConstructor() || in DeclareImplicitCopyAssignment()
6764 ClassDecl->hasUserDeclaredMoveAssignment() || in DeclareImplicitCopyAssignment()
6768 AddOverriddenMethods(ClassDecl, CopyAssignment); in DeclareImplicitCopyAssignment()
6780 CXXRecordDecl *ClassDecl = CopyAssignOperator->getParent(); in DefineImplicitCopyAssignment() local
6782 if (ClassDecl->isInvalidDecl() || CopyAssignOperator->isInvalidDecl()) { in DefineImplicitCopyAssignment()
6828 for (CXXRecordDecl::base_class_iterator Base = ClassDecl->bases_begin(), in DefineImplicitCopyAssignment()
6829 E = ClassDecl->bases_end(); Base != E; ++Base) { in DefineImplicitCopyAssignment()
6864 << CXXCopyAssignment << Context.getTagDeclType(ClassDecl); in DefineImplicitCopyAssignment()
6879 for (CXXRecordDecl::field_iterator Field = ClassDecl->field_begin(), in DefineImplicitCopyAssignment()
6880 FieldEnd = ClassDecl->field_end(); in DefineImplicitCopyAssignment()
6884 Diag(ClassDecl->getLocation(), diag::err_uninitialized_member_for_assign) in DefineImplicitCopyAssignment()
6885 << Context.getTagDeclType(ClassDecl) << 0 << Field->getDeclName(); in DefineImplicitCopyAssignment()
6888 << CXXCopyAssignment << Context.getTagDeclType(ClassDecl); in DefineImplicitCopyAssignment()
6896 Diag(ClassDecl->getLocation(), diag::err_uninitialized_member_for_assign) in DefineImplicitCopyAssignment()
6897 << Context.getTagDeclType(ClassDecl) << 1 << Field->getDeclName(); in DefineImplicitCopyAssignment()
6900 << CXXCopyAssignment << Context.getTagDeclType(ClassDecl); in DefineImplicitCopyAssignment()
6912 assert(ClassDecl->hasFlexibleArrayMember() && in DefineImplicitCopyAssignment()
7028 << CXXCopyAssignment << Context.getTagDeclType(ClassDecl); in DefineImplicitCopyAssignment()
7049 << CXXCopyAssignment << Context.getTagDeclType(ClassDecl); in DefineImplicitCopyAssignment()
7071 Sema::ComputeDefaultedCopyCtorExceptionSpecAndConst(CXXRecordDecl *ClassDecl) { in ComputeDefaultedCopyCtorExceptionSpecAndConst() argument
7072 if (ClassDecl->isInvalidDecl()) in ComputeDefaultedCopyCtorExceptionSpecAndConst()
7088 for (CXXRecordDecl::base_class_iterator Base = ClassDecl->bases_begin(), in ComputeDefaultedCopyCtorExceptionSpecAndConst()
7089 BaseEnd = ClassDecl->bases_end(); in ComputeDefaultedCopyCtorExceptionSpecAndConst()
7102 for (CXXRecordDecl::base_class_iterator Base = ClassDecl->vbases_begin(), in ComputeDefaultedCopyCtorExceptionSpecAndConst()
7103 BaseEnd = ClassDecl->vbases_end(); in ComputeDefaultedCopyCtorExceptionSpecAndConst()
7116 for (CXXRecordDecl::field_iterator Field = ClassDecl->field_begin(), in ComputeDefaultedCopyCtorExceptionSpecAndConst()
7117 FieldEnd = ClassDecl->field_end(); in ComputeDefaultedCopyCtorExceptionSpecAndConst()
7136 for (CXXRecordDecl::base_class_iterator Base = ClassDecl->bases_begin(), in ComputeDefaultedCopyCtorExceptionSpecAndConst()
7137 BaseEnd = ClassDecl->bases_end(); in ComputeDefaultedCopyCtorExceptionSpecAndConst()
7150 for (CXXRecordDecl::base_class_iterator Base = ClassDecl->vbases_begin(), in ComputeDefaultedCopyCtorExceptionSpecAndConst()
7151 BaseEnd = ClassDecl->vbases_end(); in ComputeDefaultedCopyCtorExceptionSpecAndConst()
7160 for (CXXRecordDecl::field_iterator Field = ClassDecl->field_begin(), in ComputeDefaultedCopyCtorExceptionSpecAndConst()
7161 FieldEnd = ClassDecl->field_end(); in ComputeDefaultedCopyCtorExceptionSpecAndConst()
7176 CXXRecordDecl *ClassDecl) { in DeclareImplicitCopyConstructor() argument
7184 ComputeDefaultedCopyCtorExceptionSpecAndConst(ClassDecl); in DeclareImplicitCopyConstructor()
7186 QualType ClassType = Context.getTypeDeclType(ClassDecl); in DeclareImplicitCopyConstructor()
7197 SourceLocation ClassLoc = ClassDecl->getLocation(); in DeclareImplicitCopyConstructor()
7203 = CXXConstructorDecl::Create(Context, ClassDecl, ClassLoc, NameInfo, in DeclareImplicitCopyConstructor()
7212 CopyConstructor->setTrivial(ClassDecl->hasTrivialCopyConstructor()); in DeclareImplicitCopyConstructor()
7226 if (Scope *S = getScopeForContext(ClassDecl)) in DeclareImplicitCopyConstructor()
7228 ClassDecl->addDecl(CopyConstructor); in DeclareImplicitCopyConstructor()
7234 if (ClassDecl->hasUserDeclaredMoveConstructor() || in DeclareImplicitCopyConstructor()
7235 ClassDecl->hasUserDeclaredMoveAssignment() || in DeclareImplicitCopyConstructor()
7249 CXXRecordDecl *ClassDecl = CopyConstructor->getParent(); in DefineImplicitCopyConstructor() local
7250 assert(ClassDecl && "DefineImplicitCopyConstructor - invalid constructor"); in DefineImplicitCopyConstructor()
7258 << CXXCopyConstructor << Context.getTagDeclType(ClassDecl); in DefineImplicitCopyConstructor()
7355 CXXRecordDecl *ClassDecl = cast<CXXRecordDecl>(Record->getDecl()); in FinalizeVarWithDestructor() local
7356 if (ClassDecl->isInvalidDecl()) return; in FinalizeVarWithDestructor()
7357 if (ClassDecl->hasTrivialDestructor()) return; in FinalizeVarWithDestructor()
7358 if (ClassDecl->isDependentContext()) return; in FinalizeVarWithDestructor()
7360 CXXDestructorDecl *Destructor = LookupDestructor(ClassDecl); in FinalizeVarWithDestructor()