Home | History | Annotate | Download | only in Sema

Lines Matching refs:Entity

150   AccessTarget(const AccessedEntity &Entity)
151 : AccessedEntity(Entity) {
1022 /// Given that an entity has protected natural access, check whether
1104 AccessTarget &entity) {
1105 assert(entity.isMemberAccess());
1106 NamedDecl *D = entity.getTargetDecl();
1109 TryDiagnoseProtectedAccess(S, EC, entity))
1163 AccessTarget &entity) {
1165 AccessTarget::SavedInstanceContext _ = entity.saveInstanceContext();
1174 if (entity.isMemberAccess()) {
1175 NamedDecl *D = entity.getTargetDecl();
1177 const CXXRecordDecl *declaringClass = entity.getDeclaringClass();
1179 switch (HasAccess(S, EC, declaringClass, accessSoFar, entity)) {
1184 entity.suppressInstanceContext();
1189 declaringClass == entity.getEffectiveNamingClass())
1190 return diagnoseBadDirectAccess(S, EC, entity);
1199 CXXBasePath &path = *FindBestPath(S, EC, entity, accessSoFar, paths);
1209 // Is the entity accessible when named in the deriving class, as
1222 switch (HasAccess(S, EC, derivingClass, accessSoFar, entity)) {
1226 entity.suppressInstanceContext();
1245 return diagnoseBadDirectAccess(S, EC, entity);
1251 if (entity.isMemberAccess() ||
1265 if (entity.isMemberAccess())
1266 S.Diag(entity.getTargetDecl()->getLocation(), diag::note_field_decl);
1271 AccessTarget &Entity) {
1272 const CXXRecordDecl *NamingClass = Entity.getNamingClass();
1273 const CXXRecordDecl *DeclaringClass = Entity.getDeclaringClass();
1274 NamedDecl *D = (Entity.isMemberAccess() ? Entity.getTargetDecl() : 0);
1276 S.Diag(Loc, Entity.getDiag())
1277 << (Entity.getAccess() == AS_protected)
1281 DiagnoseAccessPath(S, EC, Entity);
1306 AccessTarget &Entity) {
1308 dyn_cast<UsingShadowDecl>(Entity.getTargetDecl())) {
1309 const NamedDecl *OrigDecl = Entity.getTargetDecl()->getUnderlyingDecl();
1310 if (Entity.getTargetDecl()->getAccess() == AS_private &&
1322 /// Determines whether the accessed entity is accessible. Public members
1326 AccessTarget &Entity) {
1328 const CXXRecordDecl *NamingClass = Entity.getEffectiveNamingClass();
1330 AccessSpecifier UnprivilegedAccess = Entity.getAccess();
1338 switch (HasAccess(S, EC, NamingClass, UnprivilegedAccess, Entity)) {
1354 AccessTarget::SavedInstanceContext _ = Entity.saveInstanceContext();
1360 if (Entity.isMemberAccess()) {
1363 NamedDecl *Target = Entity.getTargetDecl();
1364 const CXXRecordDecl *DeclaringClass = Entity.getDeclaringClass();
1367 switch (HasAccess(S, EC, DeclaringClass, FinalAccess, Entity)) {
1375 Entity.suppressInstanceContext();
1387 assert(Entity
1391 CXXBasePath *Path = FindBestPath(S, EC, Entity, FinalAccess, Paths);
1405 const AccessTarget &Entity) {
1411 Entity.isMemberAccess(),
1412 Entity.getAccess(),
1413 Entity.getTargetDecl(),
1414 Entity.getNamingClass(),
1415 Entity.getBaseObjectType(),
1416 Entity.getDiag());
1419 /// Checks access to an entity from the given effective context.
1423 AccessTarget &Entity) {
1424 assert(Entity.getAccess() != AS_public && "called for public access!");
1427 IsMicrosoftUsingDeclarationAccessBug(S, Loc, Entity))
1430 switch (IsAccessible(S, EC, Entity)) {
1432 DelayDependentAccess(S, EC, Loc, Entity);
1436 if (!Entity.isQuiet())
1437 DiagnoseBadAccess(S, Loc, EC, Entity);
1449 AccessTarget &Entity) {
1451 if (Entity.getAccess() == AS_public)
1466 S.DelayedDiagnostics.add(DelayedDiagnostic::makeAccess(Loc, Entity));
1471 switch (CheckEffectiveAccess(S, EC, Loc, Entity)) {
1523 AccessTarget Entity(Context,
1528 Entity.setDiag(DD.getDiagnostic());
1529 CheckAccess(*this, Loc, Entity);
1531 AccessTarget Entity(Context,
1536 Entity.setDiag(DD.getDiagnostic());
1537 CheckAccess(*this, Loc, Entity);
1548 AccessTarget Entity(Context, AccessTarget::Member, E->getNamingClass(),
1550 Entity.setDiag(diag::err_access) << E->getSourceRange();
1552 return CheckAccess(*this, E->getNameLoc(), Entity);
1567 AccessTarget Entity(Context, AccessTarget::Member, E->getNamingClass(),
1569 Entity.setDiag(diag::err_access) << E->getSourceRange();
1571 return CheckAccess(*this, E->getMemberLoc(), Entity);
1582 AccessTarget entity(Context, AccessTarget::Member, decl->getParent(),
1586 entity.setDiag(PDiag());
1588 switch (CheckAccess(*this, SourceLocation(), entity)) {
1612 AccessTarget Entity(Context, AccessTarget::Member, NamingClass,
1615 Entity.setDiag(PDiag); // TODO: avoid copy
1617 return CheckAccess(*this, Loc, Entity);
1623 const InitializedEntity &Entity,
1630 switch (Entity.getKind()) {
1640 PD << Entity.isInheritedVirtualBase()
1641 << Entity.getBaseSpecifier()->getType() << getSpecialMember(Constructor);
1645 const FieldDecl *Field = cast<FieldDecl>(Entity.getDecl());
1652 const VarDecl *Var = Entity.getCapturedVar();
1654 PD << Var->getName() << Entity.getType() << getSpecialMember(Constructor);
1660 return CheckConstructorAccess(UseLoc, Constructor, Entity, Access, PD);
1666 const InitializedEntity &Entity,
1679 if (Entity.getKind() == InitializedEntity::EK_Base) {
1704 AccessTarget Entity(Context, AccessTarget::Member, NamingClass, Found,
1707 Entity.setDiag(diag::err_access)
1710 return CheckAccess(*this, OpLoc, Entity);
1722 AccessTarget Entity(Context, AccessTarget::Member, NamingClass,
1725 return CheckAccess(*this, UseLoc, Entity);
1741 AccessTarget Entity(Context, AccessTarget::Member, NamingClass, Found,
1743 Entity.setDiag(diag::err_access)
1747 return CheckAccess(*this, OpLoc, Entity);
1770 AccessTarget entity(Context, AccessTarget::Member,
1774 entity.setDiag(diag::err_access_friend_function)
1780 switch (CheckEffectiveAccess(*this, EC, target->getLocation(), entity)) {
1798 AccessTarget Entity(Context, AccessTarget::Member, NamingClass, Found,
1800 Entity.setDiag(diag::err_access)
1803 return CheckAccess(*this, Ovl->getNameLoc(), Entity);
1829 AccessTarget Entity(Context, AccessTarget::Base, BaseD, DerivedD,
1832 Entity.setDiag(DiagID) << Derived << Base;
1836 AccessLoc, Entity)) {
1843 return CheckAccess(*this, AccessLoc, Entity);
1854 AccessTarget Entity(Context, AccessedEntity::Member,
1857 Entity.setDiag(diag::err_access);
1858 CheckAccess(*this, R.getNameLoc(), Entity);
1875 AccessTarget Entity(Context, AccessedEntity::Member, Class,
1878 if (Entity.getAccess() == AS_public)
1882 return ::IsAccessible(*this, EC, Entity) != ::AR_inaccessible;