Home | History | Annotate | Download | only in Sema

Lines Matching refs:EC

100       // We want to add canonical declarations to the EC lists for
406 const EffectiveContext &EC,
408 if (EC.includesClass(Friend))
411 if (EC.isDependent()) {
416 I = EC.Records.begin(), E = EC.Records.end(); I != E; ++I) {
428 const EffectiveContext &EC,
431 return MatchesFriend(S, EC, cast<CXXRecordDecl>(RT->getDecl()));
443 const EffectiveContext &EC,
450 I = EC.Records.begin(), E = EC.Records.end(); I != E; ++I) {
472 if (!EC.isDependent())
496 const EffectiveContext &EC,
501 I = EC.Functions.begin(), E = EC.Functions.end(); I != E; ++I) {
505 if (EC.isDependent() && MightInstantiateTo(S, *I, Friend))
515 EC,
517 if (EC.Functions.empty()) return AR_inaccessible;
522 I = EC.Functions.begin(), E = EC.Functions.end(); I != E; ++I) {
535 if (EC.isDependent() && MightInstantiateTo(S, FTD, Friend))
545 const EffectiveContext &EC,
553 return MatchesFriend(S, EC, T->getType()->getCanonicalTypeUnqualified());
561 return MatchesFriend(S, EC, cast<ClassTemplateDecl>(Friend));
564 return MatchesFriend(S, EC, cast<FunctionTemplateDecl>(Friend));
567 return MatchesFriend(S, EC, cast<CXXRecordDecl>(Friend));
570 return MatchesFriend(S, EC, cast<FunctionDecl>(Friend));
574 const EffectiveContext &EC,
583 switch (MatchesFriend(S, EC, Friend)) {
606 const EffectiveContext &EC;
614 ProtectedFriendContext(Sema &S, const EffectiveContext &EC,
617 : S(S), EC(EC), NamingClass(NamingClass),
627 switch (GetFriendKind(S, EC, CurPath[I])) {
693 /// Search for a class P that EC is a friend of, under the constraint
719 static AccessResult GetProtectedFriendKind(Sema &S, const EffectiveContext &EC,
729 if (!InstanceContext) return GetFriendKind(S, EC, NamingClass);
731 ProtectedFriendContext PRC(S, EC, InstanceContext, NamingClass);
738 const EffectiveContext &EC,
751 I = EC.Records.begin(), E = EC.Records.end(); I != E; ++I) {
752 // All the declarations in EC have been canonicalized, so pointer
761 if (EC.isDependent() && MightInstantiateTo(ECRecord, NamingClass))
801 if (S.getLangOpts().MicrosoftMode && !EC.Functions.empty())
802 if (CXXMethodDecl* MD = dyn_cast<CXXMethodDecl>(EC.Functions.front()))
861 switch (GetProtectedFriendKind(S, EC, InstanceContext, NamingClass)) {
869 switch (GetFriendKind(S, EC, NamingClass)) {
936 const EffectiveContext &EC,
982 switch (HasAccess(S, EC, NC, PathAccess, Target)) {
1027 static bool TryDiagnoseProtectedAccess(Sema &S, const EffectiveContext &EC,
1038 I = EC.Records.begin(), E = EC.Records.end(); I != E; ++I) {
1103 const EffectiveContext &EC,
1109 TryDiagnoseProtectedAccess(S, EC, entity))
1162 const EffectiveContext &EC,
1179 switch (HasAccess(S, EC, declaringClass, accessSoFar, entity)) {
1190 return diagnoseBadDirectAccess(S, EC, entity);
1199 CXXBasePath &path = *FindBestPath(S, EC, entity, accessSoFar, paths);
1222 switch (HasAccess(S, EC, derivingClass, accessSoFar, entity)) {
1245 return diagnoseBadDirectAccess(S, EC, entity);
1270 const EffectiveContext &EC,
1281 DiagnoseAccessPath(S, EC, Entity);
1325 const EffectiveContext &EC,
1338 switch (HasAccess(S, EC, NamingClass, UnprivilegedAccess, Entity)) {
1361 // Determine if the declaration is accessible from EC when named
1367 switch (HasAccess(S, EC, DeclaringClass, FinalAccess, Entity)) {
1369 // Target is accessible at EC when named in its declaring class.
1391 CXXBasePath *Path = FindBestPath(S, EC, Entity, FinalAccess, Paths);
1403 const EffectiveContext &EC,
1406 assert(EC.isDependent() && "delaying non-dependent access");
1407 DeclContext *DC = EC.getInnerContext();
1421 const EffectiveContext &EC,
1430 switch (IsAccessible(S, EC, Entity)) {
1432 DelayDependentAccess(S, EC, Loc, Entity);
1437 DiagnoseBadAccess(S, Loc, EC, Entity);
1470 EffectiveContext EC(S.CurContext);
1471 switch (CheckEffectiveAccess(S, EC, Loc, Entity)) {
1493 EffectiveContext EC(DC);
1497 if (CheckEffectiveAccess(*this, EC, DD.Loc, Target) == ::AR_inaccessible)
1764 EffectiveContext EC(CurContext);
1765 switch (CheckEffectiveAccess(*this, EC, target->getLocation(), entity)) {
1866 EffectiveContext EC(CurContext);
1867 return ::IsAccessible(*this, EC, Entity) != ::AR_inaccessible;