Lines Matching refs:SS
76 DeclContext *Sema::computeDeclContext(const CXXScopeSpec &SS, in computeDeclContext() argument
78 if (!SS.isSet() || SS.isInvalid()) in computeDeclContext()
81 NestedNameSpecifier *NNS = SS.getScopeRep(); in computeDeclContext()
127 diagnoseMissingImport(SS.getLastQualifierNameLoc(), PartialSpec, in computeDeclContext()
169 bool Sema::isDependentScopeSpecifier(const CXXScopeSpec &SS) { in isDependentScopeSpecifier() argument
170 if (!SS.isSet() || SS.isInvalid()) in isDependentScopeSpecifier()
173 return SS.getScopeRep()->isDependent(); in isDependentScopeSpecifier()
201 bool Sema::RequireCompleteDeclContext(CXXScopeSpec &SS, in RequireCompleteDeclContext() argument
220 SourceLocation loc = SS.getLastQualifierNameLoc(); in RequireCompleteDeclContext()
221 if (loc.isInvalid()) loc = SS.getRange().getBegin(); in RequireCompleteDeclContext()
225 SS.getRange())) { in RequireCompleteDeclContext()
226 SS.SetInvalid(SS.getRange()); in RequireCompleteDeclContext()
259 SS.SetInvalid(SS.getRange()); in RequireCompleteDeclContext()
267 << type << SS.getRange(); in RequireCompleteDeclContext()
268 SS.SetInvalid(SS.getRange()); in RequireCompleteDeclContext()
273 CXXScopeSpec &SS) { in ActOnCXXGlobalScopeSpecifier() argument
274 SS.MakeGlobal(Context, CCLoc); in ActOnCXXGlobalScopeSpecifier()
280 CXXScopeSpec &SS) { in ActOnSuperScopeSpecifier() argument
305 SS.MakeSuper(Context, RD, SuperLoc, ColonColonLoc); in ActOnSuperScopeSpecifier()
383 bool Sema::isNonTypeNestedNameSpecifier(Scope *S, CXXScopeSpec &SS, in isNonTypeNestedNameSpecifier() argument
396 assert(!SS.isSet() && "ObjectType and scope specifier cannot coexist"); in isNonTypeNestedNameSpecifier()
399 } else if (SS.isSet()) { in isNonTypeNestedNameSpecifier()
402 LookupCtx = computeDeclContext(SS, false); in isNonTypeNestedNameSpecifier()
403 isDependent = isDependentScopeSpecifier(SS); in isNonTypeNestedNameSpecifier()
404 Found.setContextRange(SS.getRange()); in isNonTypeNestedNameSpecifier()
415 RequireCompleteDeclContext(SS, LookupCtx)) in isNonTypeNestedNameSpecifier()
487 CXXScopeSpec &SS, in BuildCXXNestedNameSpecifier() argument
502 assert(!SS.isSet() && "ObjectType and scope specifier cannot coexist"); in BuildCXXNestedNameSpecifier()
505 } else if (SS.isSet()) { in BuildCXXNestedNameSpecifier()
508 LookupCtx = computeDeclContext(SS, EnteringContext); in BuildCXXNestedNameSpecifier()
509 isDependent = isDependentScopeSpecifier(SS); in BuildCXXNestedNameSpecifier()
510 Found.setContextRange(SS.getRange()); in BuildCXXNestedNameSpecifier()
522 RequireCompleteDeclContext(SS, LookupCtx)) in BuildCXXNestedNameSpecifier()
577 SS.Extend(Context, &Identifier, IdentifierLoc, CCLoc); in BuildCXXNestedNameSpecifier()
618 Found.getLookupNameInfo(), Found.getLookupKind(), S, &SS, in BuildCXXNestedNameSpecifier()
626 SS.clear(); in BuildCXXNestedNameSpecifier()
629 << SS.getRange()); in BuildCXXNestedNameSpecifier()
635 SS.MakeTrivial(Context, Corrected.getCorrectionSpecifier(), in BuildCXXNestedNameSpecifier()
710 SS.Extend(Context, Namespace, IdentifierLoc, CCLoc); in BuildCXXNestedNameSpecifier()
715 SS.Extend(Context, Alias, IdentifierLoc, CCLoc); in BuildCXXNestedNameSpecifier()
758 SS.Extend(Context, SourceLocation(), TLB.getTypeLocInContext(Context, T), in BuildCXXNestedNameSpecifier()
800 SS.Extend(Context, &Identifier, IdentifierLoc, CCLoc); in BuildCXXNestedNameSpecifier()
816 } else if (SS.isSet()) in BuildCXXNestedNameSpecifier()
818 << SS.getRange(); in BuildCXXNestedNameSpecifier()
831 CXXScopeSpec &SS, in ActOnCXXNestedNameSpecifier() argument
834 if (SS.isInvalid()) in ActOnCXXNestedNameSpecifier()
839 EnteringContext, SS, in ActOnCXXNestedNameSpecifier()
844 bool Sema::ActOnCXXNestedNameSpecifierDecltype(CXXScopeSpec &SS, in ActOnCXXNestedNameSpecifierDecltype() argument
847 if (SS.isInvalid() || DS.getTypeSpecType() == DeclSpec::TST_error) in ActOnCXXNestedNameSpecifierDecltype()
862 SS.Extend(Context, SourceLocation(), TLB.getTypeLocInContext(Context, T), in ActOnCXXNestedNameSpecifierDecltype()
873 bool Sema::IsInvalidUnlessNestedName(Scope *S, CXXScopeSpec &SS, in IsInvalidUnlessNestedName() argument
879 if (SS.isInvalid()) in IsInvalidUnlessNestedName()
884 EnteringContext, SS, in IsInvalidUnlessNestedName()
889 CXXScopeSpec &SS, in ActOnCXXNestedNameSpecifier() argument
898 if (SS.isInvalid()) in ActOnCXXNestedNameSpecifier()
909 assert(DTN->getQualifier() == SS.getScopeRep()); in ActOnCXXNestedNameSpecifier()
920 SpecTL.setQualifierLoc(SS.getWithLocInContext(Context)); in ActOnCXXNestedNameSpecifier()
928 SS.Extend(Context, TemplateKWLoc, Builder.getTypeLocInContext(Context, T), in ActOnCXXNestedNameSpecifier()
937 if (SS.getRange().isValid()) in ActOnCXXNestedNameSpecifier()
938 R.setBegin(SS.getRange().getBegin()); in ActOnCXXNestedNameSpecifier()
973 SS.Extend(Context, TemplateKWLoc, Builder.getTypeLocInContext(Context, T), in ActOnCXXNestedNameSpecifier()
986 void *Sema::SaveNestedNameSpecifierAnnotation(CXXScopeSpec &SS) { in SaveNestedNameSpecifierAnnotation() argument
987 if (SS.isEmpty() || SS.isInvalid()) in SaveNestedNameSpecifierAnnotation()
991 SS.location_size()), in SaveNestedNameSpecifierAnnotation()
995 Annotation->NNS = SS.getScopeRep(); in SaveNestedNameSpecifierAnnotation()
996 memcpy(Annotation + 1, SS.location_data(), SS.location_size()); in SaveNestedNameSpecifierAnnotation()
1002 CXXScopeSpec &SS) { in RestoreNestedNameSpecifierAnnotation() argument
1004 SS.SetInvalid(AnnotationRange); in RestoreNestedNameSpecifierAnnotation()
1010 SS.Adopt(NestedNameSpecifierLoc(Annotation->NNS, Annotation + 1)); in RestoreNestedNameSpecifierAnnotation()
1013 bool Sema::ShouldEnterDeclaratorScope(Scope *S, const CXXScopeSpec &SS) { in ShouldEnterDeclaratorScope() argument
1014 assert(SS.isSet() && "Parser passed invalid CXXScopeSpec."); in ShouldEnterDeclaratorScope()
1016 NestedNameSpecifier *Qualifier = SS.getScopeRep(); in ShouldEnterDeclaratorScope()
1057 bool Sema::ActOnCXXEnterDeclaratorScope(Scope *S, CXXScopeSpec &SS) { in ActOnCXXEnterDeclaratorScope() argument
1058 assert(SS.isSet() && "Parser passed invalid CXXScopeSpec."); in ActOnCXXEnterDeclaratorScope()
1060 if (SS.isInvalid()) return true; in ActOnCXXEnterDeclaratorScope()
1062 DeclContext *DC = computeDeclContext(SS, true); in ActOnCXXEnterDeclaratorScope()
1067 if (!DC->isDependentContext() && RequireCompleteDeclContext(SS, DC)) in ActOnCXXEnterDeclaratorScope()
1074 RebuildNestedNameSpecifierInCurrentInstantiation(SS); in ActOnCXXEnterDeclaratorScope()
1084 void Sema::ActOnCXXExitDeclaratorScope(Scope *S, const CXXScopeSpec &SS) { in ActOnCXXExitDeclaratorScope() argument
1085 assert(SS.isSet() && "Parser passed invalid CXXScopeSpec."); in ActOnCXXExitDeclaratorScope()
1086 if (SS.isInvalid()) in ActOnCXXExitDeclaratorScope()
1088 assert(!SS.isInvalid() && computeDeclContext(SS, true) && in ActOnCXXExitDeclaratorScope()