Lines Matching refs:SemaRef
54 static bool SubstQualifier(Sema &SemaRef, const DeclT *OldDecl, DeclT *NewDecl, in SubstQualifier() argument
63 SemaRef, in SubstQualifier()
69 = SemaRef.SubstNestedNameSpecifierLoc(OldDecl->getQualifierLoc(), in SubstQualifier()
81 return ::SubstQualifier(SemaRef, OldDecl, NewDecl, TemplateArgs); in SubstQualifier()
86 return ::SubstQualifier(SemaRef, OldDecl, NewDecl, TemplateArgs); in SubstQualifier()
980 LabelDecl *Inst = LabelDecl::Create(SemaRef.Context, Owner, D->getLocation(), in VisitLabelDecl()
994 = NamespaceAliasDecl::Create(SemaRef.Context, Owner, in VisitNamespaceAliasDecl()
1011 DI = SemaRef.SubstType(DI, TemplateArgs, in InstantiateTypedefNameDecl()
1015 DI = SemaRef.Context.getTrivialTypeSourceInfo(SemaRef.Context.IntTy); in InstantiateTypedefNameDecl()
1018 SemaRef.MarkDeclarationsReferencedInType(D->getLocation(), DI->getType()); in InstantiateTypedefNameDecl()
1030 RD->getEnclosingNamespaceContext() == SemaRef.getStdNamespace() && in InstantiateTypedefNameDecl()
1033 SemaRef.getSourceManager().isInSystemHeader(D->getBeginLoc())) in InstantiateTypedefNameDecl()
1035 DI = SemaRef.Context.getTrivialTypeSourceInfo( in InstantiateTypedefNameDecl()
1041 Typedef = TypeAliasDecl::Create(SemaRef.Context, Owner, D->getBeginLoc(), in InstantiateTypedefNameDecl()
1044 Typedef = TypedefDecl::Create(SemaRef.Context, Owner, D->getBeginLoc(), in InstantiateTypedefNameDecl()
1061 NamedDecl *InstPrev = SemaRef.FindInstantiatedDecl(D->getLocation(), Prev, in InstantiateTypedefNameDecl()
1069 SemaRef.isIncompatibleTypedef(InstPrevTypedef, Typedef); in InstantiateTypedefNameDecl()
1074 SemaRef.InstantiateAttrs(TemplateArgs, D, Typedef); in InstantiateTypedefNameDecl()
1077 SemaRef.inferGslPointerAttribute(Typedef); in InstantiateTypedefNameDecl()
1103 LocalInstantiationScope Scope(SemaRef); in InstantiateTypeAliasTemplateDecl()
1112 SemaRef, D->getBeginLoc(), D, in InstantiateTypeAliasTemplateDecl()
1135 = TypeAliasTemplateDecl::Create(SemaRef.Context, Owner, D->getLocation(), in InstantiateTypeAliasTemplateDecl()
1159 auto *NewBD = BindingDecl::Create(SemaRef.Context, Owner, D->getLocation(), in VisitBindingDecl()
1162 SemaRef.CurrentInstantiationScope->InstantiatedLocal(D, NewBD); in VisitBindingDecl()
1192 TypeSourceInfo *DI = SemaRef.SubstType( in VisitVarDecl()
1199 SemaRef.Diag(D->getLocation(), diag::err_variable_instantiates_to_function) in VisitVarDecl()
1206 SemaRef.adjustContextForLocalExternDecl(DC); in VisitVarDecl()
1211 Var = DecompositionDecl::Create(SemaRef.Context, DC, D->getInnerLocStart(), in VisitVarDecl()
1215 Var = VarDecl::Create(SemaRef.Context, DC, D->getInnerLocStart(), in VisitVarDecl()
1220 if (SemaRef.getLangOpts().ObjCAutoRefCount && in VisitVarDecl()
1221 SemaRef.ObjC().inferObjCARCLifetime(Var)) in VisitVarDecl()
1224 if (SemaRef.getLangOpts().OpenCL) in VisitVarDecl()
1225 SemaRef.deduceOpenCLAddressSpace(Var); in VisitVarDecl()
1231 SemaRef.BuildVariableInstantiation(Var, D, TemplateArgs, LateAttrs, Owner, in VisitVarDecl()
1238 RT = cast<FunctionType>(SemaRef.getCurBlock()->FunctionType) in VisitVarDecl()
1254 Sema::NamedReturnInfo Info = SemaRef.getNamedReturnInfo(Var); in VisitVarDecl()
1255 bool NRVO = SemaRef.getCopyElisionCandidate(Info, RT) != nullptr; in VisitVarDecl()
1262 SemaRef.CheckStaticLocalForDllExport(Var); in VisitVarDecl()
1265 SemaRef.CheckThreadLocalForLargeAlignment(Var); in VisitVarDecl()
1272 = AccessSpecDecl::Create(SemaRef.Context, D->getAccess(), Owner, in VisitAccessSpecDecl()
1283 DI = SemaRef.SubstType(DI, TemplateArgs, in VisitFieldDecl()
1295 SemaRef.Diag(D->getLocation(), diag::err_field_instantiates_to_function) in VisitFieldDecl()
1300 SemaRef.MarkDeclarationsReferencedInType(D->getLocation(), DI->getType()); in VisitFieldDecl()
1309 SemaRef, Sema::ExpressionEvaluationContext::ConstantEvaluated); in VisitFieldDecl()
1312 = SemaRef.SubstExpr(BitWidth, TemplateArgs); in VisitFieldDecl()
1320 FieldDecl *Field = SemaRef.CheckFieldDecl(D->getDeclName(), in VisitFieldDecl()
1335 SemaRef.InstantiateAttrs(TemplateArgs, D, Field, LateAttrs, StartingScope); in VisitFieldDecl()
1338 SemaRef.CheckAlignasUnderalignment(Field); in VisitFieldDecl()
1345 SemaRef.Context.setInstantiatedFromUnnamedFieldDecl(Field, D); in VisitFieldDecl()
1350 SemaRef.CurrentInstantiationScope->InstantiatedLocal(D, Field); in VisitFieldDecl()
1365 SemaRef.Diag(D->getLocation(), diag::err_property_is_variably_modified) in VisitMSPropertyDecl()
1369 DI = SemaRef.SubstType(DI, TemplateArgs, in VisitMSPropertyDecl()
1381 SemaRef.Diag(D->getLocation(), diag::err_field_instantiates_to_function) in VisitMSPropertyDecl()
1386 SemaRef.MarkDeclarationsReferencedInType(D->getLocation(), DI->getType()); in VisitMSPropertyDecl()
1390 SemaRef.Context, Owner, D->getLocation(), D->getDeclName(), DI->getType(), in VisitMSPropertyDecl()
1393 SemaRef.InstantiateAttrs(TemplateArgs, D, Property, LateAttrs, in VisitMSPropertyDecl()
1407 new (SemaRef.Context)NamedDecl*[D->getChainingSize()]; in VisitIndirectFieldDecl()
1411 NamedDecl *Next = SemaRef.FindInstantiatedDecl(D->getLocation(), PI, in VisitIndirectFieldDecl()
1421 SemaRef.Context, Owner, D->getLocation(), D->getIdentifier(), T, in VisitIndirectFieldDecl()
1425 IndirectField->addAttr(Attr->clone(SemaRef.Context)); in VisitIndirectFieldDecl()
1445 InstTy = SemaRef.SubstType(Ty, TemplateArgs, in VisitFriendDecl()
1452 SemaRef.Context, Owner, D->getLocation(), InstTy, D->getFriendLoc()); in VisitFriendDecl()
1470 FriendDecl::Create(SemaRef.Context, Owner, D->getLocation(), in VisitFriendDecl()
1483 SemaRef, Sema::ExpressionEvaluationContext::ConstantEvaluated); in VisitStaticAssertDecl()
1486 = SemaRef.SubstExpr(AssertExpr, TemplateArgs); in VisitStaticAssertDecl()
1491 SemaRef.SubstExpr(D->getMessage(), TemplateArgs); in VisitStaticAssertDecl()
1495 return SemaRef.BuildStaticAssertDeclaration( in VisitStaticAssertDecl()
1503 NamedDecl *Prev = SemaRef.FindInstantiatedDecl(D->getLocation(), in VisitEnumDecl()
1511 EnumDecl::Create(SemaRef.Context, Owner, D->getBeginLoc(), in VisitEnumDecl()
1520 TypeSourceInfo *NewTI = SemaRef.SubstType(TI, TemplateArgs, UnderlyingLoc, in VisitEnumDecl()
1522 if (!NewTI || SemaRef.CheckEnumUnderlyingType(NewTI)) in VisitEnumDecl()
1523 Enum->setIntegerType(SemaRef.Context.IntTy); in VisitEnumDecl()
1533 SemaRef.InstantiateAttrs(TemplateArgs, D, Enum); in VisitEnumDecl()
1538 SemaRef.Context.setManglingNumber(Enum, SemaRef.Context.getManglingNumber(D)); in VisitEnumDecl()
1541 if (DeclaratorDecl *DD = SemaRef.Context.getDeclaratorForUnnamedTagDecl(D)) in VisitEnumDecl()
1542 SemaRef.Context.addDeclaratorForUnnamedTagDecl(Enum, DD); in VisitEnumDecl()
1545 if (TypedefNameDecl *TND = SemaRef.Context.getTypedefNameForUnnamedTagDecl(D)) in VisitEnumDecl()
1546 SemaRef.Context.addTypedefNameForUnnamedTagDecl(Enum, TND); in VisitEnumDecl()
1558 SemaRef.SubstType(TI->getType(), TemplateArgs, in VisitEnumDecl()
1560 SemaRef.CheckEnumRedeclaration(Def->getLocation(), Def->isScoped(), in VisitEnumDecl()
1573 SemaRef.CurrentInstantiationScope->InstantiatedLocal(D, Enum); in VisitEnumDecl()
1596 SemaRef, Sema::ExpressionEvaluationContext::ConstantEvaluated); in InstantiateEnumDefinition()
1598 Value = SemaRef.SubstExpr(UninstValue, TemplateArgs); in InstantiateEnumDefinition()
1609 = SemaRef.CheckEnumConstant(Enum, LastEnumConst, in InstantiateEnumDefinition()
1620 SemaRef.InstantiateAttrs(TemplateArgs, EC, EnumConst); in InstantiateEnumDefinition()
1631 SemaRef.CurrentInstantiationScope->InstantiatedLocal(EC, EnumConst); in InstantiateEnumDefinition()
1636 SemaRef.ActOnEnumBody(Enum->getLocation(), Enum->getBraceRange(), Enum, in InstantiateEnumDefinition()
1654 LocalInstantiationScope Scope(SemaRef); in VisitClassTemplateDecl()
1667 QualifierLoc = SemaRef.SubstNestedNameSpecifierLoc(QualifierLoc, in VisitClassTemplateDecl()
1694 DC = SemaRef.computeDeclContext(SS); in VisitClassTemplateDecl()
1697 DC = SemaRef.FindInstantiatedContext(Pattern->getLocation(), in VisitClassTemplateDecl()
1704 LookupResult R(SemaRef, Pattern->getDeclName(), Pattern->getLocation(), in VisitClassTemplateDecl()
1706 SemaRef.forRedeclarationInCurContext()); in VisitClassTemplateDecl()
1707 SemaRef.LookupQualifiedName(R, DC); in VisitClassTemplateDecl()
1716 SemaRef.Diag(Pattern->getLocation(), diag::err_not_tag_in_scope) in VisitClassTemplateDecl()
1724 SemaRef.Context, Pattern->getTagKind(), DC, Pattern->getBeginLoc(), in VisitClassTemplateDecl()
1730 SemaRef.InstantiateAttrsForDecl(TemplateArgs, Pattern, RecordInst, LateAttrs, in VisitClassTemplateDecl()
1734 = ClassTemplateDecl::Create(SemaRef.Context, DC, D->getLocation(), in VisitClassTemplateDecl()
1754 if (!SemaRef.TemplateParameterListsAreEqual( in VisitClassTemplateDecl()
1761 if (SemaRef.CheckTemplateParameterList(InstParams, PrevParams, in VisitClassTemplateDecl()
1782 SemaRef.Context.getInjectedClassNameType( in VisitClassTemplateDecl()
1842 LocalInstantiationScope Scope(SemaRef); in VisitVarTemplateDecl()
1865 SemaRef.Context, DC, D->getLocation(), D->getIdentifier(), InstParams, in VisitVarTemplateDecl()
1923 LocalInstantiationScope Scope(SemaRef); in VisitFunctionTemplateDecl()
1964 SemaRef.CheckFriendAccess(InstTemplate); in VisitFunctionTemplateDecl()
1973 NamedDecl *Prev = SemaRef.FindInstantiatedDecl(D->getLocation(), in VisitCXXRecordDecl()
1984 SemaRef.Context, Owner, D->getLambdaTypeInfo(), D->getLocation(), in VisitCXXRecordDecl()
1988 Record = CXXRecordDecl::Create(SemaRef.Context, D->getTagKind(), Owner, in VisitCXXRecordDecl()
1994 (void)SemaRef.Context.getTypeDeclType(Record, cast<CXXRecordDecl>(Owner)); in VisitCXXRecordDecl()
2000 SemaRef.InstantiateAttrsForDecl(TemplateArgs, D, Record, LateAttrs, in VisitCXXRecordDecl()
2022 SemaRef.CurrentInstantiationScope->InstantiatedLocal(D, Record); in VisitCXXRecordDecl()
2025 SemaRef.Context.setManglingNumber(Record, in VisitCXXRecordDecl()
2026 SemaRef.Context.getManglingNumber(D)); in VisitCXXRecordDecl()
2030 if (DeclaratorDecl *DD = SemaRef.Context.getDeclaratorForUnnamedTagDecl(D)) in VisitCXXRecordDecl()
2031 SemaRef.Context.addDeclaratorForUnnamedTagDecl(Record, DD); in VisitCXXRecordDecl()
2035 if (TypedefNameDecl *TND = SemaRef.Context.getTypedefNameForUnnamedTagDecl(D)) in VisitCXXRecordDecl()
2036 SemaRef.Context.addTypedefNameForUnnamedTagDecl(Record, TND); in VisitCXXRecordDecl()
2043 Sema::LocalEagerInstantiationScope LocalInstantiations(SemaRef); in VisitCXXRecordDecl()
2045 SemaRef.InstantiateClass(D->getLocation(), Record, D, TemplateArgs, in VisitCXXRecordDecl()
2052 SemaRef.InstantiateClassMembers(D->getLocation(), Record, TemplateArgs, in VisitCXXRecordDecl()
2060 SemaRef.DiagnoseUnusedNestedTypedefs(Record); in VisitCXXRecordDecl()
2123 LocalInstantiationScope Scope(SemaRef, MergeWithParentScope); in VisitFunctionDecl()
2127 InstantiatedExplicitSpecifier = SemaRef.instantiateExplicitSpecifier( in VisitFunctionDecl()
2137 QualType T = adjustFunctionTypeForInstantiation(SemaRef.Context, D, TInfo); in VisitFunctionDecl()
2150 SemaRef.Context, TemplateParams->getTemplateLoc(), in VisitFunctionDecl()
2158 QualifierLoc = SemaRef.SubstNestedNameSpecifierLoc(QualifierLoc, in VisitFunctionDecl()
2172 SemaRef.adjustContextForLocalExternDecl(DC); in VisitFunctionDecl()
2176 DC = SemaRef.computeDeclContext(SS); in VisitFunctionDecl()
2179 DC = SemaRef.FindInstantiatedContext(D->getLocation(), D->getDeclContext(), in VisitFunctionDecl()
2184 = SemaRef.SubstDeclarationNameInfo(D->getNameInfo(), TemplateArgs); in VisitFunctionDecl()
2192 SemaRef.Context, DC, D->getInnerLocStart(), in VisitFunctionDecl()
2199 SemaRef.Context, DC, D->getInnerLocStart(), NameInfo, T, TInfo, in VisitFunctionDecl()
2223 LexicalDC = SemaRef.CurContext; in VisitFunctionDecl()
2252 FunctionTemplate = FunctionTemplateDecl::Create(SemaRef.Context, DC, in VisitFunctionDecl()
2265 SemaRef.CodeSynthesisContexts.back().Kind != in VisitFunctionDecl()
2270 TemplateArgumentList::CreateCopy(SemaRef.Context, in VisitFunctionDecl()
2299 SemaRef, Function->getDeclName(), SourceLocation(), in VisitFunctionDecl()
2303 : SemaRef.forRedeclarationInCurContext()); in VisitFunctionDecl()
2315 if (SemaRef.SubstTemplateArguments(ArgsWritten->arguments(), TemplateArgs, in VisitFunctionDecl()
2323 SemaRef.FindInstantiatedDecl(D->getLocation(), FTD, TemplateArgs)) in VisitFunctionDecl()
2329 if (SemaRef.CheckFunctionTemplateSpecialization( in VisitFunctionDecl()
2339 SemaRef.LookupQualifiedName(Previous, DC); in VisitFunctionDecl()
2344 if (SemaRef.SubstTemplateArguments(ArgsWritten->arguments(), TemplateArgs, in VisitFunctionDecl()
2348 if (SemaRef.CheckFunctionTemplateSpecialization(Function, in VisitFunctionDecl()
2358 SemaRef.LookupQualifiedName(Previous, DC->getRedeclContext()); in VisitFunctionDecl()
2371 SemaRef.FilterLookupForScope(Previous, DC, /*Scope=*/ nullptr, in VisitFunctionDecl()
2394 if (SemaRef.SubstDefaultArgument(D->getInnerLocStart(), PVD, TemplateArgs)) { in VisitFunctionDecl()
2399 ExprResult ErrorResult = SemaRef.CreateRecoveryExpr( in VisitFunctionDecl()
2408 SemaRef.CheckFunctionDeclaration(/*Scope*/ nullptr, Function, Previous, in VisitFunctionDecl()
2417 SemaRef.CheckTemplateParameterList( in VisitFunctionDecl()
2435 SemaRef.PendingLocalImplicitInstantiations.push_back( in VisitFunctionDecl()
2446 SemaRef.SetDeclDeleted(Function, D->getLocation(), D->getDeletedMessage()); in VisitFunctionDecl()
2492 LocalInstantiationScope Scope(SemaRef, MergeWithParentScope); in VisitCXXMethodDecl()
2495 SemaRef, const_cast<CXXMethodDecl *>(D), TemplateArgs, Scope); in VisitCXXMethodDecl()
2520 SemaRef.CodeSynthesisContexts.back().Kind != in VisitCXXMethodDecl()
2522 InstantiatedExplicitSpecifier = SemaRef.instantiateExplicitSpecifier( in VisitCXXMethodDecl()
2541 SemaRef.Context.getTrivialTypeSourceInfo(D->getType()); in VisitCXXMethodDecl()
2549 QualType T = adjustFunctionTypeForInstantiation(SemaRef.Context, D, TInfo); in VisitCXXMethodDecl()
2562 SemaRef.Context, TemplateParams->getTemplateLoc(), in VisitCXXMethodDecl()
2570 QualifierLoc = SemaRef.SubstNestedNameSpecifierLoc(QualifierLoc, in VisitCXXMethodDecl()
2581 DC = SemaRef.computeDeclContext(SS); in VisitCXXMethodDecl()
2583 if (DC && SemaRef.RequireCompleteDeclContext(SS, DC)) in VisitCXXMethodDecl()
2586 DC = SemaRef.FindInstantiatedContext(D->getLocation(), in VisitCXXMethodDecl()
2597 = SemaRef.SubstDeclarationNameInfo(D->getNameInfo(), TemplateArgs); in VisitCXXMethodDecl()
2608 SemaRef.Context, Record, StartLoc, NameInfo, T, TInfo, in VisitCXXMethodDecl()
2616 SemaRef.Context, Record, StartLoc, NameInfo, T, TInfo, in VisitCXXMethodDecl()
2621 Method->setDeclName(SemaRef.Context.DeclarationNames.getCXXDestructorName( in VisitCXXMethodDecl()
2622 SemaRef.Context.getCanonicalType( in VisitCXXMethodDecl()
2623 SemaRef.Context.getTypeDeclType(Record)))); in VisitCXXMethodDecl()
2626 SemaRef.Context, Record, StartLoc, NameInfo, T, TInfo, in VisitCXXMethodDecl()
2633 SemaRef.Context, Record, StartLoc, NameInfo, T, TInfo, SC, in VisitCXXMethodDecl()
2658 FunctionTemplate = FunctionTemplateDecl::Create(SemaRef.Context, Record, in VisitCXXMethodDecl()
2672 TemplateArgumentList::CreateCopy(SemaRef.Context, in VisitCXXMethodDecl()
2686 SemaRef.Context, in VisitCXXMethodDecl()
2702 LookupResult Previous(SemaRef, NameInfo, Sema::LookupOrdinaryName, in VisitCXXMethodDecl()
2716 if (SemaRef.SubstTemplateArguments(ArgsWritten->arguments(), TemplateArgs, in VisitCXXMethodDecl()
2724 SemaRef.FindInstantiatedDecl(D->getLocation(), FTD, TemplateArgs)) in VisitCXXMethodDecl()
2730 if (SemaRef.CheckFunctionTemplateSpecialization( in VisitCXXMethodDecl()
2738 SemaRef.LookupQualifiedName(Previous, DC); in VisitCXXMethodDecl()
2743 if (SemaRef.SubstTemplateArguments(ArgsWritten->arguments(), TemplateArgs, in VisitCXXMethodDecl()
2747 if (SemaRef.CheckFunctionTemplateSpecialization(Method, in VisitCXXMethodDecl()
2754 SemaRef.LookupQualifiedName(Previous, Record); in VisitCXXMethodDecl()
2783 if (SemaRef.SubstDefaultArgument(StartLoc, Params[P], TemplateArgs)) { in VisitCXXMethodDecl()
2788 ExprResult ErrorResult = SemaRef.CreateRecoveryExpr( in VisitCXXMethodDecl()
2797 SemaRef.CheckFunctionDeclaration(nullptr, Method, Previous, in VisitCXXMethodDecl()
2802 SemaRef.CheckPureMethod(Method, SourceRange()); in VisitCXXMethodDecl()
2814 SemaRef.CheckOverrideControl(Method); in VisitCXXMethodDecl()
2822 SemaRef.SetDeclDeleted(Method, Method->getLocation(), in VisitCXXMethodDecl()
2829 SemaRef.CompleteMemberSpecialization(Method, Previous); in VisitCXXMethodDecl()
2860 SemaRef.CheckFriendAccess(Method); in VisitCXXMethodDecl()
2881 SemaRef.MarkFunctionReferenced(Loc, Method); in VisitCXXMethodDecl()
2901 return SemaRef.SubstParmVarDecl(D, TemplateArgs, /*indexAdjustment*/ 0, in VisitParmVarDecl()
2922 SemaRef.collectUnexpandedParameterPacks(ArgLoc, Unexpanded); in VisitTemplateTypeParmDecl()
2928 if (SemaRef.CheckParameterPacksForExpansion( in VisitTemplateTypeParmDecl()
2941 SemaRef.Context, Owner, D->getBeginLoc(), D->getLocation(), in VisitTemplateTypeParmDecl()
2953 if (SemaRef.SubstTypeConstraint(Inst, TC, TemplateArgs, in VisitTemplateTypeParmDecl()
2960 if (!SemaRef.SubstTemplateArgument(D->getDefaultArgument(), TemplateArgs, in VisitTemplateTypeParmDecl()
2962 Inst->setDefaultArgument(SemaRef.getASTContext(), Output); in VisitTemplateTypeParmDecl()
2967 SemaRef.CurrentInstantiationScope->InstantiatedLocal(D, Inst); in VisitTemplateTypeParmDecl()
2990 SemaRef.SubstType(D->getExpansionTypeSourceInfo(I), TemplateArgs, in VisitNonTypeTemplateParmDecl()
2996 SemaRef.CheckNonTypeTemplateParameterType(NewDI, D->getLocation()); in VisitNonTypeTemplateParmDecl()
3014 SemaRef.collectUnexpandedParameterPacks(Pattern, Unexpanded); in VisitNonTypeTemplateParmDecl()
3023 if (SemaRef.CheckParameterPacksForExpansion(Expansion.getEllipsisLoc(), in VisitNonTypeTemplateParmDecl()
3033 Sema::ArgumentPackSubstitutionIndexRAII SubstIndex(SemaRef, I); in VisitNonTypeTemplateParmDecl()
3034 TypeSourceInfo *NewDI = SemaRef.SubstType(Pattern, TemplateArgs, in VisitNonTypeTemplateParmDecl()
3041 SemaRef.CheckNonTypeTemplateParameterType(NewDI, D->getLocation()); in VisitNonTypeTemplateParmDecl()
3058 Sema::ArgumentPackSubstitutionIndexRAII SubstIndex(SemaRef, -1); in VisitNonTypeTemplateParmDecl()
3059 TypeSourceInfo *NewPattern = SemaRef.SubstType(Pattern, TemplateArgs, in VisitNonTypeTemplateParmDecl()
3065 SemaRef.CheckNonTypeTemplateParameterType(NewPattern, D->getLocation()); in VisitNonTypeTemplateParmDecl()
3066 DI = SemaRef.CheckPackExpansion(NewPattern, Expansion.getEllipsisLoc(), in VisitNonTypeTemplateParmDecl()
3075 DI = SemaRef.SubstType(D->getTypeSourceInfo(), TemplateArgs, in VisitNonTypeTemplateParmDecl()
3081 T = SemaRef.CheckNonTypeTemplateParameterType(DI, D->getLocation()); in VisitNonTypeTemplateParmDecl()
3083 T = SemaRef.Context.IntTy; in VisitNonTypeTemplateParmDecl()
3091 SemaRef.Context, Owner, D->getInnerLocStart(), D->getLocation(), in VisitNonTypeTemplateParmDecl()
3097 SemaRef.Context, Owner, D->getInnerLocStart(), D->getLocation(), in VisitNonTypeTemplateParmDecl()
3113 if (SemaRef.AttachTypeConstraint(AutoLoc, /*NewConstrainedParm=*/Param, in VisitNonTypeTemplateParmDecl()
3125 SemaRef, Sema::ExpressionEvaluationContext::ConstantEvaluated); in VisitNonTypeTemplateParmDecl()
3127 if (!SemaRef.SubstTemplateArgument(D->getDefaultArgument(), TemplateArgs, in VisitNonTypeTemplateParmDecl()
3129 Param->setDefaultArgument(SemaRef.Context, Result); in VisitNonTypeTemplateParmDecl()
3134 SemaRef.CurrentInstantiationScope->InstantiatedLocal(D, Param); in VisitNonTypeTemplateParmDecl()
3171 LocalInstantiationScope Scope(SemaRef); in VisitTemplateTemplateParmDecl()
3186 collectUnexpandedParameterPacks(SemaRef, D->getTemplateParameters(), in VisitTemplateTemplateParmDecl()
3194 if (SemaRef.CheckParameterPacksForExpansion(D->getLocation(), in VisitTemplateTemplateParmDecl()
3204 Sema::ArgumentPackSubstitutionIndexRAII SubstIndex(SemaRef, I); in VisitTemplateTemplateParmDecl()
3205 LocalInstantiationScope Scope(SemaRef); in VisitTemplateTemplateParmDecl()
3220 Sema::ArgumentPackSubstitutionIndexRAII SubstIndex(SemaRef, -1); in VisitTemplateTemplateParmDecl()
3222 LocalInstantiationScope Scope(SemaRef); in VisitTemplateTemplateParmDecl()
3230 LocalInstantiationScope Scope(SemaRef); in VisitTemplateTemplateParmDecl()
3240 SemaRef.Context, Owner, D->getLocation(), in VisitTemplateTemplateParmDecl()
3246 SemaRef.Context, Owner, D->getLocation(), in VisitTemplateTemplateParmDecl()
3254 SemaRef.SubstNestedNameSpecifierLoc(QualifierLoc, TemplateArgs); in VisitTemplateTemplateParmDecl()
3255 TemplateName TName = SemaRef.SubstTemplateName( in VisitTemplateTemplateParmDecl()
3260 SemaRef.Context, in VisitTemplateTemplateParmDecl()
3261 TemplateArgumentLoc(SemaRef.Context, TemplateArgument(TName), in VisitTemplateTemplateParmDecl()
3270 SemaRef.CurrentInstantiationScope->InstantiatedLocal(D, Param); in VisitTemplateTemplateParmDecl()
3280 = UsingDirectiveDecl::Create(SemaRef.Context, Owner, D->getLocation(), in VisitUsingDirectiveDecl()
3314 SemaRef.Context, Owner, EmptyD->getLocation(), EmptyD->getDeclName()); in VisitBaseUsingDecls()
3316 InstTarget = cast_or_null<NamedDecl>(SemaRef.FindInstantiatedDecl( in VisitBaseUsingDecls()
3324 SemaRef.CheckUsingShadowDecl(Inst, InstTarget, *Lookup, PrevDecl)) in VisitBaseUsingDecls()
3328 PrevDecl = cast_or_null<UsingShadowDecl>(SemaRef.FindInstantiatedDecl( in VisitBaseUsingDecls()
3331 UsingShadowDecl *InstShadow = SemaRef.BuildUsingShadowDecl( in VisitBaseUsingDecls()
3333 SemaRef.Context.setInstantiatedFromUsingShadowDecl(InstShadow, Shadow); in VisitBaseUsingDecls()
3336 SemaRef.CurrentInstantiationScope->InstantiatedLocal(Shadow, InstShadow); in VisitBaseUsingDecls()
3353 = SemaRef.SubstNestedNameSpecifierLoc(D->getQualifierLoc(), in VisitUsingDecl()
3363 if (auto *RD = dyn_cast<CXXRecordDecl>(SemaRef.CurContext)) in VisitUsingDecl()
3364 NameInfo.setName(SemaRef.Context.DeclarationNames.getCXXConstructorName( in VisitUsingDecl()
3365 SemaRef.Context.getCanonicalType(SemaRef.Context.getRecordType(RD)))); in VisitUsingDecl()
3370 LookupResult Prev(SemaRef, NameInfo, Sema::LookupUsingDeclName, in VisitUsingDecl()
3373 UsingDecl *NewUD = UsingDecl::Create(SemaRef.Context, Owner, in VisitUsingDecl()
3383 SemaRef.LookupQualifiedName(Prev, Owner); in VisitUsingDecl()
3386 if (SemaRef.CheckUsingDeclRedeclaration(D->getUsingLoc(), in VisitUsingDecl()
3393 SemaRef.CheckUsingDeclQualifier(D->getUsingLoc(), D->hasTypename(), SS, in VisitUsingDecl()
3397 SemaRef.Context.setInstantiatedFromUsingDecl(NewUD, D); in VisitUsingDecl()
3408 SemaRef.CheckInheritingConstructorUsingDecl(NewUD); in VisitUsingDecl()
3415 EnumDecl *EnumD = cast_or_null<EnumDecl>(SemaRef.FindInstantiatedDecl( in VisitUsingEnumDecl()
3418 if (SemaRef.RequireCompleteEnumDecl(EnumD, EnumD->getLocation())) in VisitUsingEnumDecl()
3421 TypeSourceInfo *TSI = SemaRef.SubstType(D->getEnumType(), TemplateArgs, in VisitUsingEnumDecl()
3428 UsingEnumDecl::Create(SemaRef.Context, Owner, D->getUsingLoc(), in VisitUsingEnumDecl()
3431 SemaRef.Context.setInstantiatedFromUsingEnumDecl(NewUD, D); in VisitUsingEnumDecl()
3463 SemaRef.collectUnexpandedParameterPacks(D->getQualifierLoc(), Unexpanded); in instantiateUnresolvedUsingDecl()
3464 SemaRef.collectUnexpandedParameterPacks(D->getNameInfo(), Unexpanded); in instantiateUnresolvedUsingDecl()
3471 if (SemaRef.CheckParameterPacksForExpansion( in instantiateUnresolvedUsingDecl()
3484 Sema::ArgumentPackSubstitutionIndexRAII SubstIndex(SemaRef, -1); in instantiateUnresolvedUsingDecl()
3496 SemaRef.Diag(D->getEllipsisLoc(), in instantiateUnresolvedUsingDecl()
3504 Sema::ArgumentPackSubstitutionIndexRAII SubstIndex(SemaRef, I); in instantiateUnresolvedUsingDecl()
3515 auto *NewD = SemaRef.BuildUsingPackDecl(D, Expansions); in instantiateUnresolvedUsingDecl()
3517 SemaRef.CurrentInstantiationScope->InstantiatedLocal(D, NewD); in instantiateUnresolvedUsingDecl()
3525 = SemaRef.SubstNestedNameSpecifierLoc(D->getQualifierLoc(), in instantiateUnresolvedUsingDecl()
3534 = SemaRef.SubstDeclarationNameInfo(D->getNameInfo(), TemplateArgs); in instantiateUnresolvedUsingDecl()
3539 SemaRef.ArgumentPackSubstitutionIndex != -1; in instantiateUnresolvedUsingDecl()
3544 NamedDecl *UD = SemaRef.BuildUsingDeclaration( in instantiateUnresolvedUsingDecl()
3550 SemaRef.InstantiateAttrs(TemplateArgs, D, UD); in instantiateUnresolvedUsingDecl()
3551 SemaRef.Context.setInstantiatedFromUsingDecl(UD, D); in instantiateUnresolvedUsingDecl()
3576 SemaRef.FindInstantiatedDecl(D->getLocation(), UD, TemplateArgs)) in VisitUsingPackDecl()
3582 auto *NewD = SemaRef.BuildUsingPackDecl(D, Expansions); in VisitUsingPackDecl()
3584 SemaRef.CurrentInstantiationScope->InstantiatedLocal(D, NewD); in VisitUsingPackDecl()
3592 Expr *Var = SemaRef.SubstExpr(I, TemplateArgs).get(); in VisitOMPThreadPrivateDecl()
3598 SemaRef.OpenMP().CheckOMPThreadPrivateDecl(D->getLocation(), Vars); in VisitOMPThreadPrivateDecl()
3609 Expr *Var = SemaRef.SubstExpr(I, TemplateArgs).get(); in VisitOMPAllocateDecl()
3618 ExprResult NewE = SemaRef.SubstExpr(AC->getAllocator(), TemplateArgs); in VisitOMPAllocateDecl()
3621 IC = SemaRef.OpenMP().ActOnOpenMPAllocatorClause( in VisitOMPAllocateDecl()
3624 ExprResult NewE = SemaRef.SubstExpr(AC->getAlignment(), TemplateArgs); in VisitOMPAllocateDecl()
3627 IC = SemaRef.OpenMP().ActOnOpenMPAlignClause( in VisitOMPAllocateDecl()
3636 Sema::DeclGroupPtrTy Res = SemaRef.OpenMP().ActOnOpenMPAllocateDirective( in VisitOMPAllocateDecl()
3657 SubstReductionType = SemaRef.OpenMP().ActOnOpenMPDeclareReductionType( in VisitOMPDeclareReductionDecl()
3659 ParsedType::make(SemaRef.SubstType( in VisitOMPDeclareReductionDecl()
3675 SemaRef.CurrentInstantiationScope->findInstantiationOf(PrevDeclInScope) in VisitOMPDeclareReductionDecl()
3678 auto DRD = SemaRef.OpenMP().ActOnOpenMPDeclareReductionDirectiveStart( in VisitOMPDeclareReductionDecl()
3682 SemaRef.CurrentInstantiationScope->InstantiatedLocal(D, NewDRD); in VisitOMPDeclareReductionDecl()
3687 SemaRef.OpenMP().ActOnOpenMPDeclareReductionCombinerStart( in VisitOMPDeclareReductionDecl()
3689 SemaRef.CurrentInstantiationScope->InstantiatedLocal( in VisitOMPDeclareReductionDecl()
3692 SemaRef.CurrentInstantiationScope->InstantiatedLocal( in VisitOMPDeclareReductionDecl()
3696 Sema::CXXThisScopeRAII ThisScope(SemaRef, ThisContext, Qualifiers(), in VisitOMPDeclareReductionDecl()
3698 SubstCombiner = SemaRef.SubstExpr(Combiner, TemplateArgs).get(); in VisitOMPDeclareReductionDecl()
3699 SemaRef.OpenMP().ActOnOpenMPDeclareReductionCombinerEnd(NewDRD, in VisitOMPDeclareReductionDecl()
3705 SemaRef.OpenMP().ActOnOpenMPDeclareReductionInitializerStart( in VisitOMPDeclareReductionDecl()
3707 SemaRef.CurrentInstantiationScope->InstantiatedLocal( in VisitOMPDeclareReductionDecl()
3710 SemaRef.CurrentInstantiationScope->InstantiatedLocal( in VisitOMPDeclareReductionDecl()
3714 SubstInitializer = SemaRef.SubstExpr(Init, TemplateArgs).get(); in VisitOMPDeclareReductionDecl()
3720 SemaRef.InstantiateVariableInitializer(OmpPrivParm, OldPrivParm, in VisitOMPDeclareReductionDecl()
3723 SemaRef.OpenMP().ActOnOpenMPDeclareReductionInitializerEnd( in VisitOMPDeclareReductionDecl()
3733 (void)SemaRef.OpenMP().ActOnOpenMPDeclareReductionDirectiveEnd( in VisitOMPDeclareReductionDecl()
3749 SubstMapperTy = SemaRef.OpenMP().ActOnOpenMPDeclareMapperType( in VisitOMPDeclareMapperDecl()
3751 ParsedType::make(SemaRef.SubstType(D->getType(), TemplateArgs, in VisitOMPDeclareMapperDecl()
3762 SemaRef.CurrentInstantiationScope->findInstantiationOf(PrevDeclInScope) in VisitOMPDeclareMapperDecl()
3769 SemaRef.OpenMP().StartOpenMPDSABlock(llvm::omp::OMPD_declare_mapper, DirName, in VisitOMPDeclareMapperDecl()
3773 SemaRef.OpenMP().ActOnOpenMPDeclareMapperDirectiveVarDecl( in VisitOMPDeclareMapperDecl()
3775 SemaRef.CurrentInstantiationScope->InstantiatedLocal( in VisitOMPDeclareMapperDecl()
3779 Sema::CXXThisScopeRAII ThisScope(SemaRef, ThisContext, Qualifiers(), in VisitOMPDeclareMapperDecl()
3786 Expr *NE = SemaRef.SubstExpr(OE, TemplateArgs).get(); in VisitOMPDeclareMapperDecl()
3796 SemaRef.SubstNestedNameSpecifierLoc(OldC->getMapperQualifierLoc(), in VisitOMPDeclareMapperDecl()
3801 SemaRef.SubstDeclarationNameInfo(OldC->getMapperIdInfo(), TemplateArgs); in VisitOMPDeclareMapperDecl()
3804 OMPClause *NewC = SemaRef.OpenMP().ActOnOpenMPMapClause( in VisitOMPDeclareMapperDecl()
3811 SemaRef.OpenMP().EndOpenMPDSABlock(nullptr); in VisitOMPDeclareMapperDecl()
3814 Sema::DeclGroupPtrTy DG = SemaRef.OpenMP().ActOnOpenMPDeclareMapperDirective( in VisitOMPDeclareMapperDecl()
3818 SemaRef.CurrentInstantiationScope->InstantiatedLocal(D, NewDMD); in VisitOMPDeclareMapperDecl()
3861 cast_or_null<ClassTemplateDecl>(SemaRef.FindInstantiatedDecl( in VisitClassTemplateSpecializationDecl()
3874 if (SemaRef.SubstTemplateArguments(TemplateArgsInfo->arguments(), in VisitClassTemplateSpecializationDecl()
3882 if (SemaRef.CheckTemplateArgumentList(InstClassTemplate, D->getLocation(), in VisitClassTemplateSpecializationDecl()
3898 SemaRef.CheckSpecializationInstantiationRedecl(D->getLocation(), in VisitClassTemplateSpecializationDecl()
3920 SemaRef.Diag(D->getLocation(), diag::err_redefinition) << PrevDecl; in VisitClassTemplateSpecializationDecl()
3921 SemaRef.Diag(PrevDecl->getDefinition()->getLocation(), in VisitClassTemplateSpecializationDecl()
3929 SemaRef.Context, D->getTagKind(), Owner, D->getBeginLoc(), in VisitClassTemplateSpecializationDecl()
3955 SemaRef.InstantiateClass(D->getLocation(), InstD, D, TemplateArgs, in VisitClassTemplateSpecializationDecl()
3972 cast_or_null<VarTemplateDecl>(SemaRef.FindInstantiatedDecl( in VisitVarTemplateSpecializationDecl()
3983 if (SemaRef.SubstTemplateArguments(TemplateArgsInfo->arguments(), in VisitVarTemplateSpecializationDecl()
3990 if (SemaRef.CheckTemplateArgumentList(InstVarTemplate, D->getLocation(), in VisitVarTemplateSpecializationDecl()
4004 if (PrevDecl && SemaRef.CheckSpecializationInstantiationRedecl( in VisitVarTemplateSpecializationDecl()
4022 SemaRef.SubstType(D->getTypeSourceInfo(), TemplateArgs, in VisitVarTemplateSpecializationDecl()
4028 SemaRef.Diag(D->getLocation(), diag::err_variable_instantiates_to_function) in VisitVarTemplateSpecializationDecl()
4035 SemaRef.Context, Owner, D->getInnerLocStart(), D->getLocation(), in VisitVarTemplateSpecializationDecl()
4044 if (SemaRef.getLangOpts().OpenCL) in VisitVarTemplateSpecializationDecl()
4045 SemaRef.deduceOpenCLAddressSpace(Var); in VisitVarTemplateSpecializationDecl()
4051 SemaRef.BuildVariableInstantiation(Var, D, TemplateArgs, LateAttrs, Owner, in VisitVarTemplateSpecializationDecl()
4063 unsigned DiagID = SemaRef.getDiagnostics().getCustomDiagID( in VisitFriendTemplateDecl()
4066 SemaRef.Diag(D->getLocation(), DiagID) in VisitFriendTemplateDecl()
4083 return RequiresExprBodyDecl::Create(SemaRef.Context, D->getDeclContext(), in VisitRequiresExprBodyDecl()
4113 T = SemaRef.Context.getFunctionType( in adjustForRewrite()
4114 SemaRef.Context.BoolTy, FPT->getParamTypes(), FPT->getExtProtoInfo()); in adjustForRewrite()
4123 SemaRef.Context.getTrivialTypeSourceInfo(T, Orig->getEndLoc()); in adjustForRewrite()
4133 SemaRef.Context.DeclarationNames.getCXXOperatorName(OO_EqualEqual)); in adjustForRewrite()
4201 = TemplateParameterList::Create(SemaRef.Context, L->getTemplateLoc(), in SubstTemplateParams()
4234 LocalInstantiationScope Scope(SemaRef); in InstantiateClassTemplatePartialSpecialization()
4249 if (SemaRef.SubstTemplateArguments(TemplArgInfo->arguments(), TemplateArgs, in InstantiateClassTemplatePartialSpecialization()
4256 if (SemaRef.CheckTemplateArgumentList( in InstantiateClassTemplatePartialSpecialization()
4262 if (SemaRef.CheckTemplatePartialSpecializationArgs( in InstantiateClassTemplatePartialSpecialization()
4276 QualType CanonType = SemaRef.Context.getTemplateSpecializationType( in InstantiateClassTemplatePartialSpecialization()
4282 SemaRef.Context, PartialSpec->getTagKind(), Owner, in InstantiateClassTemplatePartialSpecialization()
4311 SemaRef.Diag(InstPartialSpec->getLocation(), in InstantiateClassTemplatePartialSpecialization()
4314 SemaRef.Diag(PrevDecl->getLocation(), diag::note_prev_partial_spec_here) in InstantiateClassTemplatePartialSpecialization()
4315 << SemaRef.Context.getTypeDeclType(PrevDecl); in InstantiateClassTemplatePartialSpecialization()
4320 SemaRef.CheckTemplatePartialSpecialization(InstPartialSpec); in InstantiateClassTemplatePartialSpecialization()
4347 LocalInstantiationScope Scope(SemaRef); in InstantiateVarTemplatePartialSpecialization()
4362 if (SemaRef.SubstTemplateArguments(TemplArgInfo->arguments(), TemplateArgs, in InstantiateVarTemplatePartialSpecialization()
4369 if (SemaRef.CheckTemplateArgumentList( in InstantiateVarTemplatePartialSpecialization()
4375 if (SemaRef.CheckTemplatePartialSpecializationArgs( in InstantiateVarTemplatePartialSpecialization()
4388 TypeSourceInfo *DI = SemaRef.SubstType( in InstantiateVarTemplatePartialSpecialization()
4395 SemaRef.Diag(PartialSpec->getLocation(), in InstantiateVarTemplatePartialSpecialization()
4404 SemaRef.Context, Owner, PartialSpec->getInnerLocStart(), in InstantiateVarTemplatePartialSpecialization()
4432 SemaRef.Diag(PartialSpec->getLocation(), in InstantiateVarTemplatePartialSpecialization()
4435 SemaRef.Diag(PrevDecl->getLocation(), in InstantiateVarTemplatePartialSpecialization()
4440 SemaRef.CheckTemplatePartialSpecialization(InstPartialSpec); in InstantiateVarTemplatePartialSpecialization()
4446 SemaRef.BuildVariableInstantiation(InstPartialSpec, PartialSpec, TemplateArgs, in InstantiateVarTemplatePartialSpecialization()
4466 TypeSourceInfo *NewTInfo = SemaRef.SubstFunctionDeclType( in SubstFunctionType()
4485 LocalInstantiationScope *Scope = SemaRef.CurrentInstantiationScope; in SubstFunctionType()
4490 SemaRef.getNumArgumentsInExpansion(OldParam->getType(), in SubstFunctionType()
4518 Params.push_back(SemaRef.BuildParmVarDeclForTypedef( in SubstFunctionType()
4543 if (SemaRef.SubstParmTypes(D->getLocation(), D->parameters(), nullptr, in SubstFunctionType()
4738 SemaRef.Context.setManglingNumber(New, in InitFunctionInstantiation()
4739 SemaRef.Context.getManglingNumber(Tmpl)); in InitFunctionInstantiation()
4752 ActiveInstType &ActiveInst = SemaRef.CodeSynthesisContexts.back(); in InitFunctionInstantiation()
4756 SemaRef.InstantiatingSpecializations.erase( in InitFunctionInstantiation()
4758 atTemplateEnd(SemaRef.TemplateInstCallbacks, SemaRef, ActiveInst); in InitFunctionInstantiation()
4761 atTemplateBegin(SemaRef.TemplateInstCallbacks, SemaRef, ActiveInst); in InitFunctionInstantiation()
4775 if (SemaRef.getLangOpts().CPlusPlus11 && in InitFunctionInstantiation()
4795 New->setType(SemaRef.Context.getFunctionType( in InitFunctionInstantiation()
4798 Sema::ContextRAII SwitchContext(SemaRef, New); in InitFunctionInstantiation()
4799 SemaRef.SubstExceptionSpec(New, Proto, TemplateArgs); in InitFunctionInstantiation()
4807 SemaRef.InstantiateAttrs(TemplateArgs, Definition, New, in InitFunctionInstantiation()
4824 if (isa<CXXDestructorDecl>(New) && SemaRef.getLangOpts().CPlusPlus11) in InitMethodInstantiation()
4825 SemaRef.AdjustDestructorExceptionSpec(cast<CXXDestructorDecl>(New)); in InitMethodInstantiation()
4843 NamedDecl *D = SemaRef.FindInstantiatedDecl(New->getLocation(), in SubstDefaultedFunction()
4855 SemaRef.Context, Lookups) in SubstDefaultedFunction()
4859 SemaRef.SetDeclDefaulted(New, Tmpl->getLocation()); in SubstDefaultedFunction()
5099 SpecialMemberTypeInfoRebuilder(Sema &SemaRef, const CXXRecordDecl *O, in InstantiateFunctionDefinition()
5101 : TreeTransform(SemaRef), OldDecl(O), NewDecl(N) {} in InstantiateFunctionDefinition()