Lines Matching full:entity
161 AccessTarget(const AccessedEntity &Entity)
162 : AccessedEntity(Entity) {
1034 /// Given that an entity has protected natural access, check whether
1116 AccessTarget &entity) {
1117 assert(entity.isMemberAccess());
1118 NamedDecl *D = entity.getTargetDecl();
1121 TryDiagnoseProtectedAccess(S, EC, entity))
1173 AccessTarget &entity) {
1175 AccessTarget::SavedInstanceContext _ = entity.saveInstanceContext();
1184 if (entity.isMemberAccess()) {
1185 NamedDecl *D = entity.getTargetDecl();
1187 const CXXRecordDecl *declaringClass = entity.getDeclaringClass();
1189 switch (HasAccess(S, EC, declaringClass, accessSoFar, entity)) {
1194 entity.suppressInstanceContext();
1199 declaringClass == entity.getEffectiveNamingClass())
1200 return diagnoseBadDirectAccess(S, EC, entity);
1209 CXXBasePath &path = *FindBestPath(S, EC, entity, accessSoFar, paths);
1219 // Is the entity accessible when named in the deriving class, as
1232 switch (HasAccess(S, EC, derivingClass, accessSoFar, entity)) {
1236 entity.suppressInstanceContext();
1255 return diagnoseBadDirectAccess(S, EC, entity);
1261 if (entity.isMemberAccess() ||
1275 if (entity.isMemberAccess())
1276 S.Diag(entity.getTargetDecl()->getLocation(),
1282 AccessTarget &Entity) {
1283 const CXXRecordDecl *NamingClass = Entity.getNamingClass();
1284 const CXXRecordDecl *DeclaringClass = Entity.getDeclaringClass();
1285 NamedDecl *D = (Entity.isMemberAccess() ? Entity.getTargetDecl() : nullptr);
1287 S.Diag(Loc, Entity.getDiag())
1288 << (Entity.getAccess() == AS_protected)
1292 DiagnoseAccessPath(S, EC, Entity);
1317 AccessTarget &Entity) {
1319 dyn_cast<UsingShadowDecl>(Entity.getTargetDecl()))
1321 const NamedDecl *OrigDecl = Entity.getTargetDecl()->getUnderlyingDecl();
1322 if (Entity.getTargetDecl()->getAccess() == AS_private &&
1334 /// Determines whether the accessed entity is accessible. Public members
1338 AccessTarget &Entity) {
1340 const CXXRecordDecl *NamingClass = Entity.getEffectiveNamingClass();
1342 AccessSpecifier UnprivilegedAccess = Entity.getAccess();
1350 switch (HasAccess(S, EC, NamingClass, UnprivilegedAccess, Entity)) {
1366 AccessTarget::SavedInstanceContext _ = Entity.saveInstanceContext();
1372 if (Entity.isMemberAccess()) {
1375 NamedDecl *Target = Entity.getTargetDecl();
1376 const CXXRecordDecl *DeclaringClass = Entity.getDeclaringClass();
1379 switch (HasAccess(S, EC, DeclaringClass, FinalAccess, Entity)) {
1387 Entity.suppressInstanceContext();
1399 assert(Entity.getDeclaringClass() != NamingClass);
1403 CXXBasePath *Path = FindBestPath(S, EC, Entity, FinalAccess, Paths);
1417 const AccessTarget &Entity) {
1423 Entity.isMemberAccess(),
1424 Entity.getAccess(),
1425 Entity.getTargetDecl(),
1426 Entity.getNamingClass(),
1427 Entity.getBaseObjectType(),
1428 Entity.getDiag());
1431 /// Checks access to an entity from the given effective context.
1435 AccessTarget &Entity) {
1436 assert(Entity.getAccess() != AS_public && "called for public access!");
1438 switch (IsAccessible(S, EC, Entity)) {
1440 DelayDependentAccess(S, EC, Loc, Entity);
1445 IsMicrosoftUsingDeclarationAccessBug(S, Loc, Entity))
1447 if (!Entity.isQuiet())
1448 DiagnoseBadAccess(S, Loc, EC, Entity);
1460 AccessTarget &Entity) {
1462 if (Entity.getAccess() == AS_public)
1496 S.DelayedDiagnostics.add(DelayedDiagnostic::makeAccess(Loc, Entity));
1502 switch (CheckEffectiveAccess(S, EC, Loc, Entity)) {
1558 AccessTarget Entity(Context,
1563 Entity.setDiag(DD.getDiagnostic());
1564 CheckAccess(*this, Loc, Entity);
1566 AccessTarget Entity(Context,
1571 Entity.setDiag(DD.getDiagnostic());
1572 CheckAccess(*this, Loc, Entity);
1583 AccessTarget Entity(Context, AccessTarget::Member, E->getNamingClass(),
1585 Entity.setDiag(diag::err_access) << E->getSourceRange();
1587 return CheckAccess(*this, E->getNameLoc(), Entity);
1600 AccessTarget Entity(Context, AccessTarget::Member, E->getNamingClass(),
1602 Entity.setDiag(diag::err_access) << E->getSourceRange();
1604 return CheckAccess(*this, E->getMemberLoc(), Entity);
1616 AccessTarget Entity(Context, AccessTarget::Member, NamingClass, Found,
1620 Entity.setDiag(Diag);
1622 switch (CheckAccess(*this, Loc, Entity)) {
1646 AccessTarget Entity(Context, AccessTarget::Member, NamingClass,
1649 Entity.setDiag(PDiag); // TODO: avoid copy
1651 return CheckAccess(*this, Loc, Entity);
1657 const InitializedEntity &Entity,
1663 switch (Entity.getKind()) {
1673 PD << Entity.isInheritedVirtualBase()
1674 << Entity.getBaseSpecifier()->getType()
1680 const FieldDecl *Field = cast<FieldDecl>(Entity.getDecl());
1688 StringRef VarName = Entity.getCapturedVarName();
1690 PD << VarName << Entity.getType()
1697 return CheckConstructorAccess(UseLoc, Constructor, Found, Entity, PD);
1703 const InitializedEntity &Entity,
1719 if ((Entity.getKind() == InitializedEntity::EK_Base ||
1720 Entity.getKind() == InitializedEntity::EK_Delegating) &&
1721 !Entity.getParent()) {
1751 AccessTarget Entity(Context, AccessTarget::Member, NamingClass, Found,
1754 Entity.setDiag(diag::err_access)
1757 return CheckAccess(*this, OpLoc, Entity);
1768 AccessTarget Entity(Context, AccessTarget::Member, NamingClass,
1771 return CheckAccess(*this, UseLoc, Entity);
1782 AccessTarget Entity(Context, AccessTarget::Member, DecomposedClass, Field,
1784 Entity.setDiag(diag::err_decomp_decl_inaccessible_field);
1786 return CheckAccess(*this, UseLoc, Entity);
1799 AccessTarget Entity(Context, AccessTarget::Member, NamingClass, Found,
1801 Entity.setDiag(diag::err_access) << ObjectExpr->getSourceRange() << Range;
1803 return CheckAccess(*this, OpLoc, Entity);
1840 AccessTarget entity(Context, AccessTarget::Member,
1844 entity.setDiag(diag::err_access_friend_function)
1851 switch (CheckEffectiveAccess(*this, EC, target->getLocation(), entity)) {
1869 AccessTarget Entity(Context, AccessTarget::Member, NamingClass, Found,
1871 Entity.setDiag(diag::err_access)
1874 return CheckAccess(*this, Ovl->getNameLoc(), Entity);
1894 AccessTarget Entity(Context, AccessTarget::Base, BaseD, DerivedD,
1897 Entity.setDiag(DiagID) << Derived << Base;
1901 AccessLoc, Entity)) {
1908 return CheckAccess(*this, AccessLoc, Entity);
1918 AccessTarget Entity(Context, AccessedEntity::Member,
1921 Entity.setDiag(diag::err_access);
1922 CheckAccess(*this, R.getNameLoc(), Entity);
1937 AccessTarget Entity(Context, AccessedEntity::Member, NamingClass,
1940 return ::IsAccessible(*this, EC, Entity) != ::AR_inaccessible;