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()
299 const CXXRecordDecl *RD; in IsDerivedFromInclusive()
303 RD = cast<CXXRecordDecl>(RT->getDecl()); in IsDerivedFromInclusive()
409 const CXXRecordDecl *Friend) { in MatchesFriend()
414 for (const CXXRecordDecl *Context : EC.Records) { in MatchesFriend()
427 return MatchesFriend(S, EC, cast<CXXRecordDecl>(RT->getDecl())); in MatchesFriend()
445 for (SmallVectorImpl<CXXRecordDecl*>::const_iterator in MatchesFriend()
447 CXXRecordDecl *Record = *I; in MatchesFriend()
562 if (isa<CXXRecordDecl>(Friend)) in MatchesFriend()
563 return MatchesFriend(S, EC, cast<CXXRecordDecl>(Friend)); in MatchesFriend()
571 const CXXRecordDecl *Class) { in GetFriendKind()
600 const CXXRecordDecl *NamingClass;
605 SmallVector<const CXXRecordDecl*, 20> CurPath;
608 const CXXRecordDecl *InstanceContext, in ProtectedFriendContext()
609 const CXXRecordDecl *NamingClass) in ProtectedFriendContext()
634 bool findFriendship(const CXXRecordDecl *Cur, unsigned PrivateDepth) { in findFriendship()
652 const CXXRecordDecl *RD; in findFriendship()
656 RD = cast<CXXRecordDecl>(RT->getDecl()); in findFriendship()
676 bool findFriendship(const CXXRecordDecl *Cur) { in findFriendship()
711 const CXXRecordDecl *InstanceContext, in GetProtectedFriendKind()
712 const CXXRecordDecl *NamingClass) { in GetProtectedFriendKind()
730 const CXXRecordDecl *NamingClass, in HasAccess()
745 const CXXRecordDecl *ECRecord = *I; in HasAccess()
820 const CXXRecordDecl *InstanceContext = Target.resolveInstanceContext(S); in HasAccess()
846 const CXXRecordDecl *InstanceContext = nullptr; in HasAccess()
932 const CXXRecordDecl *Derived = Target.getNamingClass(); in FindBestPath()
933 const CXXRecordDecl *Base = Target.getDeclaringClass(); in FindBestPath()
936 bool isDerived = Derived->isDerivedFrom(const_cast<CXXRecordDecl*>(Base), in FindBestPath()
968 const CXXRecordDecl *NC = I->Class->getCanonicalDecl(); in FindBestPath()
1026 const CXXRecordDecl *NamingClass = Target.getEffectiveNamingClass(); in TryDiagnoseProtectedAccess()
1030 const CXXRecordDecl *ECRecord = *I; in TryDiagnoseProtectedAccess()
1060 const CXXRecordDecl *InstanceContext = Target.resolveInstanceContext(S); in TryDiagnoseProtectedAccess()
1121 CXXRecordDecl *DeclaringClass = FindDeclaringClass(D); in diagnoseBadDirectAccess()
1166 const CXXRecordDecl *declaringClass = entity.getDeclaringClass(); in DiagnoseAccessPath()
1200 const CXXRecordDecl *derivingClass = i->Class->getCanonicalDecl(); in DiagnoseAccessPath()
1262 const CXXRecordDecl *NamingClass = Entity.getNamingClass(); in DiagnoseBadAccess()
1263 const CXXRecordDecl *DeclaringClass = Entity.getDeclaringClass(); in DiagnoseBadAccess()
1318 const CXXRecordDecl *NamingClass = Entity.getEffectiveNamingClass(); in IsAccessible()
1354 const CXXRecordDecl *DeclaringClass = Entity.getDeclaringClass(); in IsAccessible()
1504 CXXRecordDecl *NamingClass = cast<CXXRecordDecl>(NamingD); in HandleDependentAccessCheck()
1523 cast<CXXRecordDecl>(TargetD), in HandleDependentAccessCheck()
1524 cast<CXXRecordDecl>(NamingD), in HandleDependentAccessCheck()
1599 CXXRecordDecl *NamingClass = Dtor->getParent(); in CheckDestructorAccess()
1663 CXXRecordDecl *NamingClass = Constructor->getParent(); in CheckConstructorAccess()
1672 CXXRecordDecl *ObjectClass; in CheckConstructorAccess()
1698 CXXRecordDecl *NamingClass, in CheckAllocationAccess()
1717 CXXRecordDecl *NamingClass, in CheckMemberAccess()
1741 CXXRecordDecl *NamingClass = cast<CXXRecordDecl>(RT->getDecl()); in CheckMemberOperatorAccess()
1766 cast<CXXRecordDecl>(target->getDeclContext()), in CheckFriendAccess()
1792 CXXRecordDecl *NamingClass = Ovl->getNamingClass(); in CheckAddressOfMemberAccess()
1821 CXXRecordDecl *BaseD, *DerivedD; in CheckBaseClassAccess()
1822 BaseD = cast<CXXRecordDecl>(Base->getAs<RecordType>()->getDecl()); in CheckBaseClassAccess()
1823 DerivedD = cast<CXXRecordDecl>(Derived->getAs<RecordType>()->getDecl()); in CheckBaseClassAccess()
1866 if (CXXRecordDecl *Class = dyn_cast<CXXRecordDecl>(Ctx)) { in IsSimplyAccessible()