Home | History | Annotate | Download | only in Sema

Lines Matching refs:entity

150   AccessTarget(const AccessedEntity &Entity)
151 : AccessedEntity(Entity) {
1018 /// Given that an entity has protected natural access, check whether
1100 AccessTarget &entity) {
1101 assert(entity.isMemberAccess());
1102 NamedDecl *D = entity.getTargetDecl();
1105 TryDiagnoseProtectedAccess(S, EC, entity))
1157 AccessTarget &entity) {
1159 AccessTarget::SavedInstanceContext _ = entity.saveInstanceContext();
1168 if (entity.isMemberAccess()) {
1169 NamedDecl *D = entity.getTargetDecl();
1171 const CXXRecordDecl *declaringClass = entity.getDeclaringClass();
1173 switch (HasAccess(S, EC, declaringClass, accessSoFar, entity)) {
1178 entity.suppressInstanceContext();
1183 declaringClass == entity.getEffectiveNamingClass())
1184 return diagnoseBadDirectAccess(S, EC, entity);
1193 CXXBasePath &path = *FindBestPath(S, EC, entity, accessSoFar, paths);
1203 // Is the entity accessible when named in the deriving class, as
1216 switch (HasAccess(S, EC, derivingClass, accessSoFar, entity)) {
1220 entity.suppressInstanceContext();
1239 return diagnoseBadDirectAccess(S, EC, entity);
1245 if (entity.isMemberAccess() ||
1259 if (entity.isMemberAccess())
1260 S.Diag(entity.getTargetDecl()->getLocation(),
1266 AccessTarget &Entity) {
1267 const CXXRecordDecl *NamingClass = Entity.getNamingClass();
1268 const CXXRecordDecl *DeclaringClass = Entity.getDeclaringClass();
1269 NamedDecl *D = (Entity.isMemberAccess() ? Entity.getTargetDecl() : nullptr);
1271 S.Diag(Loc, Entity.getDiag())
1272 << (Entity.getAccess() == AS_protected)
1276 DiagnoseAccessPath(S, EC, Entity);
1301 AccessTarget &Entity) {
1303 dyn_cast<UsingShadowDecl>(Entity.getTargetDecl())) {
1304 const NamedDecl *OrigDecl = Entity.getTargetDecl()->getUnderlyingDecl();
1305 if (Entity.getTargetDecl()->getAccess() == AS_private &&
1317 /// Determines whether the accessed entity is accessible. Public members
1321 AccessTarget &Entity) {
1323 const CXXRecordDecl *NamingClass = Entity.getEffectiveNamingClass();
1325 AccessSpecifier UnprivilegedAccess = Entity.getAccess();
1333 switch (HasAccess(S, EC, NamingClass, UnprivilegedAccess, Entity)) {
1349 AccessTarget::SavedInstanceContext _ = Entity.saveInstanceContext();
1355 if (Entity.isMemberAccess()) {
1358 NamedDecl *Target = Entity.getTargetDecl();
1359 const CXXRecordDecl *DeclaringClass = Entity.getDeclaringClass();
1362 switch (HasAccess(S, EC, DeclaringClass, FinalAccess, Entity)) {
1370 Entity.suppressInstanceContext();
1382 assert(Entity.getDeclaringClass() != NamingClass);
1386 Entity, FinalAccess, Paths);
1400 const AccessTarget &Entity) {
1406 Entity.isMemberAccess(),
1407 Entity.getAccess(),
1408 Entity.getTargetDecl(),
1409 Entity.getNamingClass(),
1410 Entity.getBaseObjectType(),
1411 Entity.getDiag());
1414 /// Checks access to an entity from the given effective context.
1418 AccessTarget &Entity) {
1419 assert(Entity.getAccess() != AS_public && "called for public access!");
1421 switch (IsAccessible(S, EC, Entity)) {
1423 DelayDependentAccess(S, EC, Loc, Entity);
1428 IsMicrosoftUsingDeclarationAccessBug(S, Loc, Entity))
1430 if (!Entity.isQuiet())
1431 DiagnoseBadAccess(S, Loc, EC, Entity);
1443 AccessTarget &Entity) {
1445 if (Entity.getAccess() == AS_public)
1460 S.DelayedDiagnostics.add(DelayedDiagnostic::makeAccess(Loc, Entity));
1465 switch (CheckEffectiveAccess(S, EC, Loc, Entity)) {
1518 AccessTarget Entity(Context,
1523 Entity.setDiag(DD.getDiagnostic());
1524 CheckAccess(*this, Loc, Entity);
1526 AccessTarget Entity(Context,
1531 Entity.setDiag(DD.getDiagnostic());
1532 CheckAccess(*this, Loc, Entity);
1543 AccessTarget Entity(Context, AccessTarget::Member, E->getNamingClass(),
1545 Entity.setDiag(diag::err_access) << E->getSourceRange();
1547 return CheckAccess(*this, E->getNameLoc(), Entity);
1562 AccessTarget Entity(Context, AccessTarget::Member, E->getNamingClass(),
1564 Entity.setDiag(diag::err_access) << E->getSourceRange();
1566 return CheckAccess(*this, E->getMemberLoc(), Entity);
1577 AccessTarget entity(Context, AccessTarget::Member, decl->getParent(),
1581 entity.setDiag(PDiag());
1583 switch (CheckAccess(*this, SourceLocation(), entity)) {
1607 AccessTarget Entity(Context, AccessTarget::Member, NamingClass,
1610 Entity.setDiag(PDiag); // TODO: avoid copy
1612 return CheckAccess(*this, Loc, Entity);
1618 const InitializedEntity &Entity,
1625 switch (Entity.getKind()) {
1635 PD << Entity.isInheritedVirtualBase()
1636 << Entity.getBaseSpecifier()->getType() << getSpecialMember(Constructor);
1640 const FieldDecl *Field = cast<FieldDecl>(Entity.getDecl());
1647 StringRef VarName = Entity.getCapturedVarName();
1649 PD << VarName << Entity.getType() << getSpecialMember(Constructor);
1655 return CheckConstructorAccess(UseLoc, Constructor, Entity, Access, PD);
1661 const InitializedEntity &Entity,
1674 if (Entity.getKind() == InitializedEntity::EK_Base) {
1699 AccessTarget Entity(Context, AccessTarget::Member, NamingClass, Found,
1702 Entity.setDiag(diag::err_access)
1705 return CheckAccess(*this, OpLoc, Entity);
1717 AccessTarget Entity(Context, AccessTarget::Member, NamingClass,
1720 return CheckAccess(*this, UseLoc, Entity);
1736 AccessTarget Entity(Context, AccessTarget::Member, NamingClass, Found,
1738 Entity.setDiag(diag::err_access)
1742 return CheckAccess(*this, OpLoc, Entity);
1758 AccessTarget entity(Context, AccessTarget::Member,
1762 entity.setDiag(diag::err_access_friend_function)
1769 switch (CheckEffectiveAccess(*this, EC, target->getLocation(), entity)) {
1787 AccessTarget Entity(Context, AccessTarget::Member, NamingClass, Found,
1789 Entity.setDiag(diag::err_access)
1792 return CheckAccess(*this, Ovl->getNameLoc(), Entity);
1818 AccessTarget Entity(Context, AccessTarget::Base, BaseD, DerivedD,
1821 Entity.setDiag(DiagID) << Derived << Base;
1825 AccessLoc, Entity)) {
1832 return CheckAccess(*this, AccessLoc, Entity);
1843 AccessTarget Entity(Context, AccessedEntity::Member,
1846 Entity.setDiag(diag::err_access);
1847 CheckAccess(*this, R.getNameLoc(), Entity);
1864 AccessTarget Entity(Context, AccessedEntity::Member, Class,
1867 if (Entity.getAccess() == AS_public)
1871 return ::IsAccessible(*this, EC, Entity) != ::AR_inaccessible;