Lines Matching full:ss
54 DeclContext *Sema::computeDeclContext(const CXXScopeSpec &SS, in computeDeclContext() argument
56 if (!SS.isSet() || SS.isInvalid()) in computeDeclContext()
59 NestedNameSpecifier *NNS = SS.getScopeRep(); in computeDeclContext()
92 SS.getTemplateParamLists(); in computeDeclContext()
116 diagnoseMissingImport(SS.getLastQualifierNameLoc(), PartialSpec, in computeDeclContext()
166 bool Sema::isDependentScopeSpecifier(const CXXScopeSpec &SS) { in isDependentScopeSpecifier() argument
167 if (!SS.isSet() || SS.isInvalid()) in isDependentScopeSpecifier()
170 return SS.getScopeRep()->isDependent(); in isDependentScopeSpecifier()
184 /// Require that the context specified by SS be complete.
186 /// If SS refers to a type, this routine checks whether the type is
193 bool Sema::RequireCompleteDeclContext(CXXScopeSpec &SS, in RequireCompleteDeclContext() argument
214 SourceLocation loc = SS.getLastQualifierNameLoc(); in RequireCompleteDeclContext()
215 if (loc.isInvalid()) loc = SS.getRange().getBegin(); in RequireCompleteDeclContext()
219 SS.getRange())) { in RequireCompleteDeclContext()
220 SS.SetInvalid(SS.getRange()); in RequireCompleteDeclContext()
227 return RequireCompleteEnumDecl(EnumD, loc, &SS); in RequireCompleteDeclContext()
233 /// instantiated. SS, if provided, is the ScopeRef parsed.
236 CXXScopeSpec *SS) { in RequireCompleteEnumDecl() argument
260 if (SS) in RequireCompleteEnumDecl()
261 SS->SetInvalid(SS->getRange()); in RequireCompleteEnumDecl()
268 if (SS) { in RequireCompleteEnumDecl()
270 << QualType(EnumD->getTypeForDecl(), 0) << SS->getRange(); in RequireCompleteEnumDecl()
271 SS->SetInvalid(SS->getRange()); in RequireCompleteEnumDecl()
281 CXXScopeSpec &SS) { in ActOnCXXGlobalScopeSpecifier() argument
282 SS.MakeGlobal(Context, CCLoc); in ActOnCXXGlobalScopeSpecifier()
288 CXXScopeSpec &SS) { in ActOnSuperScopeSpecifier() argument
315 SS.MakeSuper(Context, RD, SuperLoc, ColonColonLoc); in ActOnSuperScopeSpecifier()
409 bool EnteringContext, CXXScopeSpec &SS, in BuildCXXNestedNameSpecifier() argument
429 assert(!SS.isSet() && "ObjectType and scope specifier cannot coexist"); in BuildCXXNestedNameSpecifier()
432 } else if (SS.isSet()) { in BuildCXXNestedNameSpecifier()
435 LookupCtx = computeDeclContext(SS, EnteringContext); in BuildCXXNestedNameSpecifier()
436 isDependent = isDependentScopeSpecifier(SS); in BuildCXXNestedNameSpecifier()
437 Found.setContextRange(SS.getRange()); in BuildCXXNestedNameSpecifier()
449 RequireCompleteDeclContext(SS, LookupCtx)) in BuildCXXNestedNameSpecifier()
504 SS.Extend(Context, IdInfo.Identifier, IdInfo.IdentifierLoc, IdInfo.CCLoc); in BuildCXXNestedNameSpecifier()
549 Found.getLookupNameInfo(), Found.getLookupKind(), S, &SS, CCC, in BuildCXXNestedNameSpecifier()
556 SS.clear(); in BuildCXXNestedNameSpecifier()
559 << SS.getRange()); in BuildCXXNestedNameSpecifier()
565 SS.MakeTrivial(Context, Corrected.getCorrectionSpecifier(), in BuildCXXNestedNameSpecifier()
639 SS.Extend(Context, Namespace, IdInfo.IdentifierLoc, IdInfo.CCLoc); in BuildCXXNestedNameSpecifier()
644 SS.Extend(Context, Alias, IdInfo.IdentifierLoc, IdInfo.CCLoc); in BuildCXXNestedNameSpecifier()
691 SS.Extend(Context, SourceLocation(), TLB.getTypeLocInContext(Context, T), in BuildCXXNestedNameSpecifier()
710 // resolve Identifier, then extend the SS with Identifier. This will have in BuildCXXNestedNameSpecifier()
739 SS.Extend(Context, /*TemplateKWLoc=*/SourceLocation(), in BuildCXXNestedNameSpecifier()
742 SS.Extend(Context, IdInfo.Identifier, IdInfo.IdentifierLoc, in BuildCXXNestedNameSpecifier()
755 DiagnoseUnknownTypeName(IdInfo.Identifier, IdInfo.IdentifierLoc, S, &SS, in BuildCXXNestedNameSpecifier()
764 } else if (SS.isSet()) in BuildCXXNestedNameSpecifier()
766 << LookupCtx << SS.getRange(); in BuildCXXNestedNameSpecifier()
775 bool EnteringContext, CXXScopeSpec &SS, in ActOnCXXNestedNameSpecifier() argument
778 if (SS.isInvalid()) in ActOnCXXNestedNameSpecifier()
781 return BuildCXXNestedNameSpecifier(S, IdInfo, EnteringContext, SS, in ActOnCXXNestedNameSpecifier()
786 bool Sema::ActOnCXXNestedNameSpecifierDecltype(CXXScopeSpec &SS, in ActOnCXXNestedNameSpecifierDecltype() argument
789 if (SS.isInvalid() || DS.getTypeSpecType() == DeclSpec::TST_error) in ActOnCXXNestedNameSpecifierDecltype()
808 SS.Extend(Context, SourceLocation(), TLB.getTypeLocInContext(Context, T), in ActOnCXXNestedNameSpecifierDecltype()
813 bool Sema::ActOnCXXNestedNameSpecifierIndexedPack(CXXScopeSpec &SS, in ActOnCXXNestedNameSpecifierIndexedPack() argument
817 if (SS.isInvalid() || DS.getTypeSpecType() == DeclSpec::TST_error) in ActOnCXXNestedNameSpecifierIndexedPack()
831 SS.Extend(Context, SourceLocation(), TLB.getTypeLocInContext(Context, Type), in ActOnCXXNestedNameSpecifierIndexedPack()
836 bool Sema::IsInvalidUnlessNestedName(Scope *S, CXXScopeSpec &SS, in IsInvalidUnlessNestedName() argument
839 if (SS.isInvalid()) in IsInvalidUnlessNestedName()
842 return !BuildCXXNestedNameSpecifier(S, IdInfo, EnteringContext, SS, in IsInvalidUnlessNestedName()
847 CXXScopeSpec &SS, in ActOnCXXNestedNameSpecifier() argument
856 if (SS.isInvalid()) in ActOnCXXNestedNameSpecifier()
869 assert(DTN->getQualifier() == SS.getScopeRep()); in ActOnCXXNestedNameSpecifier()
879 SpecTL.setQualifierLoc(SS.getWithLocInContext(Context)); in ActOnCXXNestedNameSpecifier()
887 SS.Extend(Context, TemplateKWLoc, Builder.getTypeLocInContext(Context, T), in ActOnCXXNestedNameSpecifier()
902 if (SS.getRange().isValid()) in ActOnCXXNestedNameSpecifier()
903 R.setBegin(SS.getRange().getBegin()); in ActOnCXXNestedNameSpecifier()
937 SS.Extend(Context, TemplateKWLoc, Builder.getTypeLocInContext(Context, T), in ActOnCXXNestedNameSpecifier()
950 void *Sema::SaveNestedNameSpecifierAnnotation(CXXScopeSpec &SS) { in SaveNestedNameSpecifierAnnotation() argument
951 if (SS.isEmpty() || SS.isInvalid()) in SaveNestedNameSpecifierAnnotation()
955 (sizeof(NestedNameSpecifierAnnotation) + SS.location_size()), in SaveNestedNameSpecifierAnnotation()
959 Annotation->NNS = SS.getScopeRep(); in SaveNestedNameSpecifierAnnotation()
960 memcpy(Annotation + 1, SS.location_data(), SS.location_size()); in SaveNestedNameSpecifierAnnotation()
966 CXXScopeSpec &SS) { in RestoreNestedNameSpecifierAnnotation() argument
968 SS.SetInvalid(AnnotationRange); in RestoreNestedNameSpecifierAnnotation()
974 SS.Adopt(NestedNameSpecifierLoc(Annotation->NNS, Annotation + 1)); in RestoreNestedNameSpecifierAnnotation()
977 bool Sema::ShouldEnterDeclaratorScope(Scope *S, const CXXScopeSpec &SS) { in ShouldEnterDeclaratorScope() argument
978 assert(SS.isSet() && "Parser passed invalid CXXScopeSpec."); in ShouldEnterDeclaratorScope()
985 NestedNameSpecifier *Qualifier = SS.getScopeRep(); in ShouldEnterDeclaratorScope()
1020 bool Sema::ActOnCXXEnterDeclaratorScope(Scope *S, CXXScopeSpec &SS) { in ActOnCXXEnterDeclaratorScope() argument
1021 assert(SS.isSet() && "Parser passed invalid CXXScopeSpec."); in ActOnCXXEnterDeclaratorScope()
1023 if (SS.isInvalid()) return true; in ActOnCXXEnterDeclaratorScope()
1025 DeclContext *DC = computeDeclContext(SS, true); in ActOnCXXEnterDeclaratorScope()
1030 if (!DC->isDependentContext() && RequireCompleteDeclContext(SS, DC)) in ActOnCXXEnterDeclaratorScope()
1037 RebuildNestedNameSpecifierInCurrentInstantiation(SS); in ActOnCXXEnterDeclaratorScope()
1042 void Sema::ActOnCXXExitDeclaratorScope(Scope *S, const CXXScopeSpec &SS) { in ActOnCXXExitDeclaratorScope() argument
1043 assert(SS.isSet() && "Parser passed invalid CXXScopeSpec."); in ActOnCXXExitDeclaratorScope()
1044 if (SS.isInvalid()) in ActOnCXXExitDeclaratorScope()
1046 assert(!SS.isInvalid() && computeDeclContext(SS, true) && in ActOnCXXExitDeclaratorScope()