Home | History | Annotate | Download | only in Sema

Lines Matching defs:EC

390                                   const EffectiveContext &EC,
392 if (EC.includesClass(Friend))
395 if (EC.isDependent()) {
400 I = EC.Records.begin(), E = EC.Records.end(); I != E; ++I) {
412 const EffectiveContext &EC,
415 return MatchesFriend(S, EC, cast<CXXRecordDecl>(RT->getDecl()));
427 const EffectiveContext &EC,
434 I = EC.Records.begin(), E = EC.Records.end(); I != E; ++I) {
456 if (!EC.isDependent())
480 const EffectiveContext &EC,
485 I = EC.Functions.begin(), E = EC.Functions.end(); I != E; ++I) {
489 if (EC.isDependent() && MightInstantiateTo(S, *I, Friend))
499 const EffectiveContext &EC,
501 if (EC.Functions.empty()) return AR_inaccessible;
506 I = EC.Functions.begin(), E = EC.Functions.end(); I != E; ++I) {
519 if (EC.isDependent() && MightInstantiateTo(S, FTD, Friend))
529 const EffectiveContext &EC,
537 return MatchesFriend(S, EC, T->getType()->getCanonicalTypeUnqualified());
545 return MatchesFriend(S, EC, cast<ClassTemplateDecl>(Friend));
548 return MatchesFriend(S, EC, cast<FunctionTemplateDecl>(Friend));
551 return MatchesFriend(S, EC, cast<CXXRecordDecl>(Friend));
554 return MatchesFriend(S, EC, cast<FunctionDecl>(Friend));
558 const EffectiveContext &EC,
567 switch (MatchesFriend(S, EC, Friend)) {
590 const EffectiveContext &EC;
598 ProtectedFriendContext(Sema &S, const EffectiveContext &EC,
601 : S(S), EC(EC), NamingClass(NamingClass),
611 switch (GetFriendKind(S, EC, CurPath[I])) {
677 /// Search for a class P that EC is a friend of, under the constraint
703 static AccessResult GetProtectedFriendKind(Sema &S, const EffectiveContext &EC,
713 if (!InstanceContext) return GetFriendKind(S, EC, NamingClass);
715 ProtectedFriendContext PRC(S, EC, InstanceContext, NamingClass);
722 const EffectiveContext &EC,
735 I = EC.Records.begin(), E = EC.Records.end(); I != E; ++I) {
736 // All the declarations in EC have been canonicalized, so pointer
745 if (EC.isDependent() && MightInstantiateTo(ECRecord, NamingClass))
785 if (S.getLangOpts().MicrosoftMode && !EC.Functions.empty())
786 if (CXXMethodDecl* MD = dyn_cast<CXXMethodDecl>(EC.Functions.front()))
845 switch (GetProtectedFriendKind(S, EC, InstanceContext, NamingClass)) {
853 switch (GetFriendKind(S, EC, NamingClass)) {
920 const EffectiveContext &EC,
966 switch (HasAccess(S, EC, NC, PathAccess, Target)) {
1011 static bool TryDiagnoseProtectedAccess(Sema &S, const EffectiveContext &EC,
1023 I = EC.Records.begin(), E = EC.Records.end(); I != E; ++I) {
1088 const EffectiveContext &EC,
1099 switch (HasAccess(S, EC, DeclaringClass, D->getAccess(), Entity)) {
1102 TryDiagnoseProtectedAccess(S, EC, Entity))
1161 CXXBasePath &Path = *FindBestPath(S, EC, Entity, AS_public, Paths);
1175 switch (GetFriendKind(S, EC, I->Class)) {
1211 const EffectiveContext &EC,
1222 DiagnoseAccessPath(S, EC, Entity);
1266 const EffectiveContext &EC,
1282 switch (HasAccess(S, EC, NamingClass, UnprivilegedAccess, Entity)) {
1305 // Determine if the declaration is accessible from EC when named
1311 switch (HasAccess(S, EC, DeclaringClass, FinalAccess, Entity)) {
1331 CXXBasePath *Path = FindBestPath(S, EC, Entity, FinalAccess, Paths);
1343 const EffectiveContext &EC,
1346 assert(EC.isDependent() && "delaying non-dependent access");
1347 DeclContext *DC = EC.getInnerContext();
1361 const EffectiveContext &EC,
1370 switch (IsAccessible(S, EC, Entity)) {
1372 DelayDependentAccess(S, EC, Loc, Entity);
1377 DiagnoseBadAccess(S, Loc, EC, Entity);
1413 EffectiveContext EC(S.CurContext);
1414 switch (CheckEffectiveAccess(S, EC, Loc, Entity)) {
1436 EffectiveContext EC(DC);
1440 if (CheckEffectiveAccess(*this, EC, DD.Loc, Target) == ::AR_inaccessible)
1793 EffectiveContext EC(CurContext);
1794 return ::IsAccessible(*this, EC, Entity) != ::AR_inaccessible;