Lines Matching refs:CXXRecordDecl
65 static CXXRecordDecl *FindDeclaringClass(NamedDecl *D) { in FindDeclaringClass()
73 CXXRecordDecl *DeclaringClass = cast<CXXRecordDecl>(DC); in FindDeclaringClass()
75 DeclaringClass = cast<CXXRecordDecl>(DeclaringClass->getDeclContext()); in FindDeclaringClass()
106 if (isa<CXXRecordDecl>(DC)) { in EffectiveContext()
107 CXXRecordDecl *Record = cast<CXXRecordDecl>(DC); in EffectiveContext()
127 bool includesClass(const CXXRecordDecl *R) const { in includesClass()
139 typedef SmallVectorImpl<CXXRecordDecl*>::const_iterator record_iterator;
143 SmallVector<CXXRecordDecl*, 4> Records;
157 CXXRecordDecl *NamingClass, in AccessTarget()
167 CXXRecordDecl *BaseClass, in AccessTarget()
168 CXXRecordDecl *DerivedClass, in AccessTarget()
210 const CXXRecordDecl *resolveInstanceContext(Sema &S) const { in resolveInstanceContext()
217 InstanceContext = (IC ? cast<CXXRecordDecl>(IC)->getCanonicalDecl() in resolveInstanceContext()
222 const CXXRecordDecl *getDeclaringClass() const { in getDeclaringClass()
228 const CXXRecordDecl *getEffectiveNamingClass() const { in getEffectiveNamingClass()
229 const CXXRecordDecl *namingClass = getNamingClass(); in getEffectiveNamingClass()
231 namingClass = cast<CXXRecordDecl>(namingClass->getParent()); in getEffectiveNamingClass()
252 mutable const CXXRecordDecl *InstanceContext;
253 const CXXRecordDecl *DeclaringClass;
259 static bool MightInstantiateTo(const CXXRecordDecl *From, in MightInstantiateTo()
260 const CXXRecordDecl *To) { in MightInstantiateTo()
279 static AccessResult IsDerivedFromInclusive(const CXXRecordDecl *Derived, in IsDerivedFromInclusive()
280 const CXXRecordDecl *Target) { in IsDerivedFromInclusive()
291 SmallVector<const CXXRecordDecl*, 8> Queue; // actually a stack in IsDerivedFromInclusive()
298 const CXXRecordDecl *RD; in IsDerivedFromInclusive()
302 RD = cast<CXXRecordDecl>(RT->getDecl()); in IsDerivedFromInclusive()
408 const CXXRecordDecl *Friend) { in MatchesFriend()
432 return MatchesFriend(S, EC, cast<CXXRecordDecl>(RT->getDecl())); in MatchesFriend()
450 for (SmallVectorImpl<CXXRecordDecl*>::const_iterator in MatchesFriend()
452 CXXRecordDecl *Record = *I; in MatchesFriend()
567 if (isa<CXXRecordDecl>(Friend)) in MatchesFriend()
568 return MatchesFriend(S, EC, cast<CXXRecordDecl>(Friend)); in MatchesFriend()
576 const CXXRecordDecl *Class) { in GetFriendKind()
605 const CXXRecordDecl *NamingClass;
610 SmallVector<const CXXRecordDecl*, 20> CurPath;
613 const CXXRecordDecl *InstanceContext, in ProtectedFriendContext()
614 const CXXRecordDecl *NamingClass) in ProtectedFriendContext()
639 bool findFriendship(const CXXRecordDecl *Cur, unsigned PrivateDepth) { in findFriendship()
657 const CXXRecordDecl *RD; in findFriendship()
661 RD = cast<CXXRecordDecl>(RT->getDecl()); in findFriendship()
681 bool findFriendship(const CXXRecordDecl *Cur) { in findFriendship()
716 const CXXRecordDecl *InstanceContext, in GetProtectedFriendKind()
717 const CXXRecordDecl *NamingClass) { in GetProtectedFriendKind()
735 const CXXRecordDecl *NamingClass, in HasAccess()
750 const CXXRecordDecl *ECRecord = *I; in HasAccess()
825 const CXXRecordDecl *InstanceContext = Target.resolveInstanceContext(S); in HasAccess()
851 const CXXRecordDecl *InstanceContext = nullptr; in HasAccess()
937 const CXXRecordDecl *Derived = Target.getNamingClass(); in FindBestPath()
938 const CXXRecordDecl *Base = Target.getDeclaringClass(); in FindBestPath()
941 bool isDerived = Derived->isDerivedFrom(const_cast<CXXRecordDecl*>(Base), in FindBestPath()
973 const CXXRecordDecl *NC = I->Class->getCanonicalDecl(); in FindBestPath()
1031 const CXXRecordDecl *NamingClass = Target.getEffectiveNamingClass(); in TryDiagnoseProtectedAccess()
1035 const CXXRecordDecl *ECRecord = *I; in TryDiagnoseProtectedAccess()
1065 const CXXRecordDecl *InstanceContext = Target.resolveInstanceContext(S); in TryDiagnoseProtectedAccess()
1126 CXXRecordDecl *DeclaringClass = FindDeclaringClass(D); in diagnoseBadDirectAccess()
1171 const CXXRecordDecl *declaringClass = entity.getDeclaringClass(); in DiagnoseAccessPath()
1205 const CXXRecordDecl *derivingClass = i->Class->getCanonicalDecl(); in DiagnoseAccessPath()
1267 const CXXRecordDecl *NamingClass = Entity.getNamingClass(); in DiagnoseBadAccess()
1268 const CXXRecordDecl *DeclaringClass = Entity.getDeclaringClass(); in DiagnoseBadAccess()
1323 const CXXRecordDecl *NamingClass = Entity.getEffectiveNamingClass(); in IsAccessible()
1359 const CXXRecordDecl *DeclaringClass = Entity.getDeclaringClass(); in IsAccessible()
1509 CXXRecordDecl *NamingClass = cast<CXXRecordDecl>(NamingD); in HandleDependentAccessCheck()
1528 cast<CXXRecordDecl>(TargetD), in HandleDependentAccessCheck()
1529 cast<CXXRecordDecl>(NamingD), in HandleDependentAccessCheck()
1604 CXXRecordDecl *NamingClass = Dtor->getParent(); in CheckDestructorAccess()
1668 CXXRecordDecl *NamingClass = Constructor->getParent(); in CheckConstructorAccess()
1673 CXXRecordDecl *ObjectClass; in CheckConstructorAccess()
1691 CXXRecordDecl *NamingClass, in CheckAllocationAccess()
1710 CXXRecordDecl *NamingClass, in CheckMemberAccess()
1734 CXXRecordDecl *NamingClass = cast<CXXRecordDecl>(RT->getDecl()); in CheckMemberOperatorAccess()
1759 cast<CXXRecordDecl>(target->getDeclContext()), in CheckFriendAccess()
1785 CXXRecordDecl *NamingClass = Ovl->getNamingClass(); in CheckAddressOfMemberAccess()
1814 CXXRecordDecl *BaseD, *DerivedD; in CheckBaseClassAccess()
1815 BaseD = cast<CXXRecordDecl>(Base->getAs<RecordType>()->getDecl()); in CheckBaseClassAccess()
1816 DerivedD = cast<CXXRecordDecl>(Derived->getAs<RecordType>()->getDecl()); in CheckBaseClassAccess()
1859 if (CXXRecordDecl *Class = dyn_cast<CXXRecordDecl>(Ctx)) { in IsSimplyAccessible()