Home | History | Annotate | Download | only in Sema

Lines Matching refs:NamingClass

170                CXXRecordDecl *NamingClass,
173 : AccessedEntity(Context.getDiagAllocator(), Member, NamingClass,
242 const CXXRecordDecl *namingClass = getNamingClass();
243 while (namingClass->isAnonymousStructOrUnion())
244 namingClass = cast<CXXRecordDecl>(namingClass->getParent());
245 return namingClass->getCanonicalDecl();
613 const CXXRecordDecl *NamingClass;
622 const CXXRecordDecl *NamingClass)
623 : S(S), EC(EC), NamingClass(NamingClass),
625 NamingClass->isDependentContext()),
651 if (Cur == NamingClass)
654 if (CheckDependent && MightInstantiateTo(Cur, NamingClass))
700 /// NamingClass <= P
702 /// NamingClass would have some natural access in P, which implicitly
703 /// imposes the constraint that P <= NamingClass.
706 /// Instead of saying that a notional protected member of NamingClass
710 /// of NamingClass) might be more accessible along some path not
725 const CXXRecordDecl *NamingClass) {
728 assert(NamingClass->getCanonicalDecl() == NamingClass);
731 // that NamingClass <= P <= NamingClass, i.e. P == NamingClass.
733 if (!InstanceContext) return GetFriendKind(S, EC, NamingClass);
735 ProtectedFriendContext PRC(S, EC, InstanceContext, NamingClass);
743 const CXXRecordDecl *NamingClass,
746 assert(NamingClass->getCanonicalDecl() == NamingClass &&
762 if (ECRecord == NamingClass)
765 if (EC.isDependent() && MightInstantiateTo(ECRecord, NamingClass))
771 switch (IsDerivedFromInclusive(ECRecord, NamingClass)) {
819 // We know that ECRecord derives from NamingClass. The
820 // restriction says to check whether NamingClass derives from
825 if (NamingClass == ECRecord) return AR_accessible;
865 switch (GetProtectedFriendKind(S, EC, InstanceContext, NamingClass)) {
873 switch (GetFriendKind(S, EC, NamingClass)) {
1039 const CXXRecordDecl *NamingClass = Target.getEffectiveNamingClass();
1044 switch (IsDerivedFromInclusive(ECRecord, NamingClass)) {
1064 if (NamingClass == ECRecord) continue;
1275 const CXXRecordDecl *NamingClass = Entity.getNamingClass();
1282 << S.Context.getTypeDeclType(NamingClass)
1331 const CXXRecordDecl *NamingClass = Entity.getEffectiveNamingClass();
1341 switch (HasAccess(S, EC, NamingClass, UnprivilegedAccess, Entity)) {
1384 if (DeclaringClass == NamingClass)
1390 assert(Entity.getDeclaringClass() != NamingClass);
1518 CXXRecordDecl *NamingClass = cast<CXXRecordDecl>(NamingD);
1529 NamingClass,
1580 bool Sema::isMemberAccessibleForDeletion(CXXRecordDecl *NamingClass,
1589 AccessTarget Entity(Context, AccessTarget::Member, NamingClass, Found,
1616 CXXRecordDecl *NamingClass = Dtor->getParent();
1617 if (ObjectTy.isNull()) ObjectTy = Context.getTypeDeclType(NamingClass);
1619 AccessTarget Entity(Context, AccessTarget::Member, NamingClass,
1680 CXXRecordDecl *NamingClass = Constructor->getParent();
1700 ObjectClass = NamingClass;
1704 Context, AccessTarget::Member, NamingClass,
1715 CXXRecordDecl *NamingClass,
1719 !NamingClass ||
1723 AccessTarget Entity(Context, AccessTarget::Member, NamingClass, Found,
1734 CXXRecordDecl *NamingClass,
1737 !NamingClass ||
1741 AccessTarget Entity(Context, AccessTarget::Member, NamingClass,
1774 CXXRecordDecl *NamingClass = cast<CXXRecordDecl>(RT->getDecl());
1776 AccessTarget Entity(Context, AccessTarget::Member, NamingClass, Found,
1825 CXXRecordDecl *NamingClass = Ovl->getNamingClass();
1827 AccessTarget Entity(Context, AccessTarget::Member, NamingClass, Found,
1896 /// \param NamingClass the class in which the lookup was started.
1898 /// \p BaseType and \p NamingClass are used for C++ access control.
1901 /// \p BaseType and \p NamingClass are both the type of 'lhs'.
1903 /// BaseType is the type of 'lhs', NamingClass is 'X'
1905 /// BaseType is null, NamingClass is 'X'.
1907 /// BaseType is null, NamingClass is the parent class of 'target'.
1909 bool Sema::IsSimplyAccessible(NamedDecl *Target, CXXRecordDecl *NamingClass,
1912 if (Target->isCXXClassMember() && NamingClass) {
1919 AccessTarget Entity(Context, AccessedEntity::Member, NamingClass,