Lines Matching refs:SemaRef
42 static bool SubstQualifier(Sema &SemaRef, const DeclT *OldDecl, DeclT *NewDecl, in SubstQualifier() argument
51 SemaRef, in SubstQualifier()
57 = SemaRef.SubstNestedNameSpecifierLoc(OldDecl->getQualifierLoc(), in SubstQualifier()
69 return ::SubstQualifier(SemaRef, OldDecl, NewDecl, TemplateArgs); in SubstQualifier()
74 return ::SubstQualifier(SemaRef, OldDecl, NewDecl, TemplateArgs); in SubstQualifier()
528 LabelDecl *Inst = LabelDecl::Create(SemaRef.Context, Owner, D->getLocation(), in VisitLabelDecl()
542 = NamespaceAliasDecl::Create(SemaRef.Context, Owner, in VisitNamespaceAliasDecl()
559 DI = SemaRef.SubstType(DI, TemplateArgs, in InstantiateTypedefNameDecl()
563 DI = SemaRef.Context.getTrivialTypeSourceInfo(SemaRef.Context.IntTy); in InstantiateTypedefNameDecl()
566 SemaRef.MarkDeclarationsReferencedInType(D->getLocation(), DI->getType()); in InstantiateTypedefNameDecl()
577 RD->getEnclosingNamespaceContext() == SemaRef.getStdNamespace() && in InstantiateTypedefNameDecl()
580 SemaRef.getSourceManager().isInSystemHeader(D->getBeginLoc())) in InstantiateTypedefNameDecl()
582 DI = SemaRef.Context.getTrivialTypeSourceInfo( in InstantiateTypedefNameDecl()
588 Typedef = TypeAliasDecl::Create(SemaRef.Context, Owner, D->getBeginLoc(), in InstantiateTypedefNameDecl()
591 Typedef = TypedefDecl::Create(SemaRef.Context, Owner, D->getBeginLoc(), in InstantiateTypedefNameDecl()
608 NamedDecl *InstPrev = SemaRef.FindInstantiatedDecl(D->getLocation(), Prev, in InstantiateTypedefNameDecl()
616 SemaRef.isIncompatibleTypedef(InstPrevTypedef, Typedef); in InstantiateTypedefNameDecl()
621 SemaRef.InstantiateAttrs(TemplateArgs, D, Typedef); in InstantiateTypedefNameDecl()
646 LocalInstantiationScope Scope(SemaRef); in VisitTypeAliasTemplateDecl()
669 = TypeAliasTemplateDecl::Create(SemaRef.Context, Owner, D->getLocation(), in VisitTypeAliasTemplateDecl()
686 auto *NewBD = BindingDecl::Create(SemaRef.Context, Owner, D->getLocation(), in VisitBindingDecl()
689 SemaRef.CurrentInstantiationScope->InstantiatedLocal(D, NewBD); in VisitBindingDecl()
719 TypeSourceInfo *DI = SemaRef.SubstType( in VisitVarDecl()
726 SemaRef.Diag(D->getLocation(), diag::err_variable_instantiates_to_function) in VisitVarDecl()
733 SemaRef.adjustContextForLocalExternDecl(DC); in VisitVarDecl()
738 Var = DecompositionDecl::Create(SemaRef.Context, DC, D->getInnerLocStart(), in VisitVarDecl()
742 Var = VarDecl::Create(SemaRef.Context, DC, D->getInnerLocStart(), in VisitVarDecl()
747 if (SemaRef.getLangOpts().ObjCAutoRefCount && in VisitVarDecl()
748 SemaRef.inferObjCARCLifetime(Var)) in VisitVarDecl()
755 SemaRef.BuildVariableInstantiation(Var, D, TemplateArgs, LateAttrs, Owner, in VisitVarDecl()
760 if (SemaRef.isCopyElisionCandidate(ReturnType, Var, Sema::CES_Strict)) in VisitVarDecl()
767 SemaRef.CheckStaticLocalForDllExport(Var); in VisitVarDecl()
774 = AccessSpecDecl::Create(SemaRef.Context, D->getAccess(), Owner, in VisitAccessSpecDecl()
785 DI = SemaRef.SubstType(DI, TemplateArgs, in VisitFieldDecl()
797 SemaRef.Diag(D->getLocation(), diag::err_field_instantiates_to_function) in VisitFieldDecl()
802 SemaRef.MarkDeclarationsReferencedInType(D->getLocation(), DI->getType()); in VisitFieldDecl()
811 SemaRef, Sema::ExpressionEvaluationContext::ConstantEvaluated); in VisitFieldDecl()
814 = SemaRef.SubstExpr(BitWidth, TemplateArgs); in VisitFieldDecl()
822 FieldDecl *Field = SemaRef.CheckFieldDecl(D->getDeclName(), in VisitFieldDecl()
837 SemaRef.InstantiateAttrs(TemplateArgs, D, Field, LateAttrs, StartingScope); in VisitFieldDecl()
840 SemaRef.CheckAlignasUnderalignment(Field); in VisitFieldDecl()
847 SemaRef.Context.setInstantiatedFromUnnamedFieldDecl(Field, D); in VisitFieldDecl()
852 SemaRef.CurrentInstantiationScope->InstantiatedLocal(D, Field); in VisitFieldDecl()
867 SemaRef.Diag(D->getLocation(), diag::err_property_is_variably_modified) in VisitMSPropertyDecl()
871 DI = SemaRef.SubstType(DI, TemplateArgs, in VisitMSPropertyDecl()
883 SemaRef.Diag(D->getLocation(), diag::err_field_instantiates_to_function) in VisitMSPropertyDecl()
888 SemaRef.MarkDeclarationsReferencedInType(D->getLocation(), DI->getType()); in VisitMSPropertyDecl()
892 SemaRef.Context, Owner, D->getLocation(), D->getDeclName(), DI->getType(), in VisitMSPropertyDecl()
895 SemaRef.InstantiateAttrs(TemplateArgs, D, Property, LateAttrs, in VisitMSPropertyDecl()
909 new (SemaRef.Context)NamedDecl*[D->getChainingSize()]; in VisitIndirectFieldDecl()
913 NamedDecl *Next = SemaRef.FindInstantiatedDecl(D->getLocation(), PI, in VisitIndirectFieldDecl()
923 SemaRef.Context, Owner, D->getLocation(), D->getIdentifier(), T, in VisitIndirectFieldDecl()
927 IndirectField->addAttr(Attr->clone(SemaRef.Context)); in VisitIndirectFieldDecl()
947 InstTy = SemaRef.SubstType(Ty, TemplateArgs, in VisitFriendDecl()
953 FriendDecl *FD = SemaRef.CheckFriendTypeDecl(D->getBeginLoc(), in VisitFriendDecl()
975 FriendDecl::Create(SemaRef.Context, Owner, D->getLocation(), in VisitFriendDecl()
988 SemaRef, Sema::ExpressionEvaluationContext::ConstantEvaluated); in VisitStaticAssertDecl()
991 = SemaRef.SubstExpr(AssertExpr, TemplateArgs); in VisitStaticAssertDecl()
995 return SemaRef.BuildStaticAssertDeclaration(D->getLocation(), in VisitStaticAssertDecl()
1005 NamedDecl *Prev = SemaRef.FindInstantiatedDecl(D->getLocation(), in VisitEnumDecl()
1013 EnumDecl::Create(SemaRef.Context, Owner, D->getBeginLoc(), in VisitEnumDecl()
1022 TypeSourceInfo *NewTI = SemaRef.SubstType(TI, TemplateArgs, UnderlyingLoc, in VisitEnumDecl()
1024 if (!NewTI || SemaRef.CheckEnumUnderlyingType(NewTI)) in VisitEnumDecl()
1025 Enum->setIntegerType(SemaRef.Context.IntTy); in VisitEnumDecl()
1035 SemaRef.InstantiateAttrs(TemplateArgs, D, Enum); in VisitEnumDecl()
1040 SemaRef.Context.setManglingNumber(Enum, SemaRef.Context.getManglingNumber(D)); in VisitEnumDecl()
1043 if (DeclaratorDecl *DD = SemaRef.Context.getDeclaratorForUnnamedTagDecl(D)) in VisitEnumDecl()
1044 SemaRef.Context.addDeclaratorForUnnamedTagDecl(Enum, DD); in VisitEnumDecl()
1047 if (TypedefNameDecl *TND = SemaRef.Context.getTypedefNameForUnnamedTagDecl(D)) in VisitEnumDecl()
1048 SemaRef.Context.addTypedefNameForUnnamedTagDecl(Enum, TND); in VisitEnumDecl()
1060 SemaRef.SubstType(TI->getType(), TemplateArgs, in VisitEnumDecl()
1062 SemaRef.CheckEnumRedeclaration(Def->getLocation(), Def->isScoped(), in VisitEnumDecl()
1075 SemaRef.CurrentInstantiationScope->InstantiatedLocal(D, Enum); in VisitEnumDecl()
1098 SemaRef, Sema::ExpressionEvaluationContext::ConstantEvaluated); in InstantiateEnumDefinition()
1100 Value = SemaRef.SubstExpr(UninstValue, TemplateArgs); in InstantiateEnumDefinition()
1111 = SemaRef.CheckEnumConstant(Enum, LastEnumConst, in InstantiateEnumDefinition()
1122 SemaRef.InstantiateAttrs(TemplateArgs, EC, EnumConst); in InstantiateEnumDefinition()
1133 SemaRef.CurrentInstantiationScope->InstantiatedLocal(EC, EnumConst); in InstantiateEnumDefinition()
1138 SemaRef.ActOnEnumBody(Enum->getLocation(), Enum->getBraceRange(), Enum, in InstantiateEnumDefinition()
1156 LocalInstantiationScope Scope(SemaRef); in VisitClassTemplateDecl()
1169 QualifierLoc = SemaRef.SubstNestedNameSpecifierLoc(QualifierLoc, in VisitClassTemplateDecl()
1196 DC = SemaRef.computeDeclContext(SS); in VisitClassTemplateDecl()
1199 DC = SemaRef.FindInstantiatedContext(Pattern->getLocation(), in VisitClassTemplateDecl()
1206 LookupResult R(SemaRef, Pattern->getDeclName(), Pattern->getLocation(), in VisitClassTemplateDecl()
1208 SemaRef.forRedeclarationInCurContext()); in VisitClassTemplateDecl()
1209 SemaRef.LookupQualifiedName(R, DC); in VisitClassTemplateDecl()
1218 SemaRef.Diag(Pattern->getLocation(), diag::err_not_tag_in_scope) in VisitClassTemplateDecl()
1252 if (!SemaRef.TemplateParameterListsAreEqual(InstParams, PrevParams, in VisitClassTemplateDecl()
1265 SemaRef.CheckTemplateParameterList(InstParams, PrevParams, in VisitClassTemplateDecl()
1272 SemaRef.Context, Pattern->getTagKind(), DC, Pattern->getBeginLoc(), in VisitClassTemplateDecl()
1279 SemaRef.InstantiateAttrsForDecl(TemplateArgs, Pattern, RecordInst, LateAttrs, in VisitClassTemplateDecl()
1283 = ClassTemplateDecl::Create(SemaRef.Context, DC, D->getLocation(), in VisitClassTemplateDecl()
1306 SemaRef.Context.getInjectedClassNameType(RecordInst, in VisitClassTemplateDecl()
1368 LocalInstantiationScope Scope(SemaRef); in VisitVarTemplateDecl()
1391 SemaRef.Context, DC, D->getLocation(), D->getIdentifier(), InstParams, in VisitVarTemplateDecl()
1449 LocalInstantiationScope Scope(SemaRef); in VisitFunctionTemplateDecl()
1489 SemaRef.CheckFriendAccess(InstTemplate); in VisitFunctionTemplateDecl()
1500 NamedDecl *Prev = SemaRef.FindInstantiatedDecl(D->getLocation(), in VisitCXXRecordDecl()
1508 SemaRef.Context, D->getTagKind(), Owner, D->getBeginLoc(), in VisitCXXRecordDecl()
1515 SemaRef.InstantiateAttrsForDecl(TemplateArgs, D, Record, LateAttrs, in VisitCXXRecordDecl()
1537 SemaRef.CurrentInstantiationScope->InstantiatedLocal(D, Record); in VisitCXXRecordDecl()
1540 SemaRef.Context.setManglingNumber(Record, in VisitCXXRecordDecl()
1541 SemaRef.Context.getManglingNumber(D)); in VisitCXXRecordDecl()
1545 if (DeclaratorDecl *DD = SemaRef.Context.getDeclaratorForUnnamedTagDecl(D)) in VisitCXXRecordDecl()
1546 SemaRef.Context.addDeclaratorForUnnamedTagDecl(Record, DD); in VisitCXXRecordDecl()
1550 if (TypedefNameDecl *TND = SemaRef.Context.getTypedefNameForUnnamedTagDecl(D)) in VisitCXXRecordDecl()
1551 SemaRef.Context.addTypedefNameForUnnamedTagDecl(Record, TND); in VisitCXXRecordDecl()
1558 Sema::LocalEagerInstantiationScope LocalInstantiations(SemaRef); in VisitCXXRecordDecl()
1560 SemaRef.InstantiateClass(D->getLocation(), Record, D, TemplateArgs, in VisitCXXRecordDecl()
1567 SemaRef.InstantiateClassMembers(D->getLocation(), Record, TemplateArgs, in VisitCXXRecordDecl()
1575 SemaRef.DiagnoseUnusedNestedTypedefs(Record); in VisitCXXRecordDecl()
1634 LocalInstantiationScope Scope(SemaRef, MergeWithParentScope); in VisitFunctionDecl()
1640 QualType T = adjustFunctionTypeForInstantiation(SemaRef.Context, D, TInfo); in VisitFunctionDecl()
1644 QualifierLoc = SemaRef.SubstNestedNameSpecifierLoc(QualifierLoc, in VisitFunctionDecl()
1656 SemaRef.adjustContextForLocalExternDecl(DC); in VisitFunctionDecl()
1660 DC = SemaRef.computeDeclContext(SS); in VisitFunctionDecl()
1663 DC = SemaRef.FindInstantiatedContext(D->getLocation(), D->getDeclContext(), in VisitFunctionDecl()
1668 = SemaRef.SubstDeclarationNameInfo(D->getNameInfo(), TemplateArgs); in VisitFunctionDecl()
1673 SemaRef.Context, DC, D->getInnerLocStart(), DGuide->isExplicit(), in VisitFunctionDecl()
1680 SemaRef.Context, DC, D->getInnerLocStart(), NameInfo, T, TInfo, in VisitFunctionDecl()
1724 FunctionTemplate = FunctionTemplateDecl::Create(SemaRef.Context, DC, in VisitFunctionDecl()
1740 TemplateArgumentList::CreateCopy(SemaRef.Context, in VisitFunctionDecl()
1759 SemaRef, Function->getDeclName(), SourceLocation(), in VisitFunctionDecl()
1763 : SemaRef.forRedeclarationInCurContext()); in VisitFunctionDecl()
1772 if (SemaRef.Subst(Info->getTemplateArgs(), Info->getNumTemplateArgs(), in VisitFunctionDecl()
1778 Decl *Temp = SemaRef.FindInstantiatedDecl(D->getLocation(), in VisitFunctionDecl()
1786 if (SemaRef.CheckFunctionTemplateSpecialization(Function, in VisitFunctionDecl()
1795 SemaRef.LookupQualifiedName(Previous, DC); in VisitFunctionDecl()
1800 if (SemaRef.Subst(Info->getTemplateArgs(), Info->getNumTemplateArgs(), in VisitFunctionDecl()
1804 if (SemaRef.CheckFunctionTemplateSpecialization(Function, in VisitFunctionDecl()
1814 SemaRef.LookupQualifiedName(Previous, DC); in VisitFunctionDecl()
1824 SemaRef.CheckFunctionDeclaration(/*Scope*/ nullptr, Function, Previous, in VisitFunctionDecl()
1848 SemaRef.CheckForFunctionRedefinition(Function); in VisitFunctionDecl()
1862 SemaRef.PendingLocalImplicitInstantiations.push_back( in VisitFunctionDecl()
1877 SemaRef.CheckTemplateParameterList( in VisitFunctionDecl()
1926 LocalInstantiationScope Scope(SemaRef, MergeWithParentScope); in VisitCXXMethodDecl()
1946 QualType T = adjustFunctionTypeForInstantiation(SemaRef.Context, D, TInfo); in VisitCXXMethodDecl()
1950 QualifierLoc = SemaRef.SubstNestedNameSpecifierLoc(QualifierLoc, in VisitCXXMethodDecl()
1961 DC = SemaRef.computeDeclContext(SS); in VisitCXXMethodDecl()
1963 if (DC && SemaRef.RequireCompleteDeclContext(SS, DC)) in VisitCXXMethodDecl()
1966 DC = SemaRef.FindInstantiatedContext(D->getLocation(), in VisitCXXMethodDecl()
1979 = SemaRef.SubstDeclarationNameInfo(D->getNameInfo(), TemplateArgs); in VisitCXXMethodDecl()
1981 Method = CXXConstructorDecl::Create(SemaRef.Context, Record, in VisitCXXMethodDecl()
1988 Method = CXXDestructorDecl::Create(SemaRef.Context, Record, in VisitCXXMethodDecl()
1995 SemaRef.Context, Record, StartLoc, NameInfo, T, TInfo, in VisitCXXMethodDecl()
2000 Method = CXXMethodDecl::Create(SemaRef.Context, Record, StartLoc, NameInfo, in VisitCXXMethodDecl()
2025 FunctionTemplate = FunctionTemplateDecl::Create(SemaRef.Context, Record, in VisitCXXMethodDecl()
2039 TemplateArgumentList::CreateCopy(SemaRef.Context, in VisitCXXMethodDecl()
2053 SemaRef.Context, in VisitCXXMethodDecl()
2069 LookupResult Previous(SemaRef, NameInfo, Sema::LookupOrdinaryName, in VisitCXXMethodDecl()
2083 if (SemaRef.Subst(Info->getTemplateArgs(), Info->getNumTemplateArgs(), in VisitCXXMethodDecl()
2089 Decl *Temp = SemaRef.FindInstantiatedDecl(D->getLocation(), in VisitCXXMethodDecl()
2097 if (SemaRef.CheckFunctionTemplateSpecialization(Method, in VisitCXXMethodDecl()
2105 SemaRef.LookupQualifiedName(Previous, DC); in VisitCXXMethodDecl()
2109 if (SemaRef.Subst(Info->getTemplateArgs(), Info->getNumTemplateArgs(), in VisitCXXMethodDecl()
2113 if (SemaRef.CheckFunctionTemplateSpecialization(Method, in VisitCXXMethodDecl()
2120 SemaRef.LookupQualifiedName(Previous, Record); in VisitCXXMethodDecl()
2131 SemaRef.CheckFunctionDeclaration(nullptr, Method, Previous, in VisitCXXMethodDecl()
2135 SemaRef.CheckPureMethod(Method, SourceRange()); in VisitCXXMethodDecl()
2147 SemaRef.CheckOverrideControl(Method); in VisitCXXMethodDecl()
2151 SemaRef.SetDeclDefaulted(Method, Method->getLocation()); in VisitCXXMethodDecl()
2153 SemaRef.SetDeclDeleted(Method, Method->getLocation()); in VisitCXXMethodDecl()
2168 SemaRef.CheckFriendAccess(Method); in VisitCXXMethodDecl()
2195 return SemaRef.SubstParmVarDecl(D, TemplateArgs, /*indexAdjustment*/ 0, None, in VisitParmVarDecl()
2205 SemaRef.Context, Owner, D->getBeginLoc(), D->getLocation(), in VisitTemplateTypeParmDecl()
2212 SemaRef.SubstType(D->getDefaultArgumentInfo(), TemplateArgs, in VisitTemplateTypeParmDecl()
2220 SemaRef.CurrentInstantiationScope->InstantiatedLocal(D, Inst); in VisitTemplateTypeParmDecl()
2243 SemaRef.SubstType(D->getExpansionTypeSourceInfo(I), TemplateArgs, in VisitNonTypeTemplateParmDecl()
2249 SemaRef.CheckNonTypeTemplateParameterType(NewDI, D->getLocation()); in VisitNonTypeTemplateParmDecl()
2267 SemaRef.collectUnexpandedParameterPacks(Pattern, Unexpanded); in VisitNonTypeTemplateParmDecl()
2276 if (SemaRef.CheckParameterPacksForExpansion(Expansion.getEllipsisLoc(), in VisitNonTypeTemplateParmDecl()
2286 Sema::ArgumentPackSubstitutionIndexRAII SubstIndex(SemaRef, I); in VisitNonTypeTemplateParmDecl()
2287 TypeSourceInfo *NewDI = SemaRef.SubstType(Pattern, TemplateArgs, in VisitNonTypeTemplateParmDecl()
2294 SemaRef.CheckNonTypeTemplateParameterType(NewDI, D->getLocation()); in VisitNonTypeTemplateParmDecl()
2311 Sema::ArgumentPackSubstitutionIndexRAII SubstIndex(SemaRef, -1); in VisitNonTypeTemplateParmDecl()
2312 TypeSourceInfo *NewPattern = SemaRef.SubstType(Pattern, TemplateArgs, in VisitNonTypeTemplateParmDecl()
2318 SemaRef.CheckNonTypeTemplateParameterType(NewPattern, D->getLocation()); in VisitNonTypeTemplateParmDecl()
2319 DI = SemaRef.CheckPackExpansion(NewPattern, Expansion.getEllipsisLoc(), in VisitNonTypeTemplateParmDecl()
2328 DI = SemaRef.SubstType(D->getTypeSourceInfo(), TemplateArgs, in VisitNonTypeTemplateParmDecl()
2334 T = SemaRef.CheckNonTypeTemplateParameterType(DI, D->getLocation()); in VisitNonTypeTemplateParmDecl()
2336 T = SemaRef.Context.IntTy; in VisitNonTypeTemplateParmDecl()
2344 SemaRef.Context, Owner, D->getInnerLocStart(), D->getLocation(), in VisitNonTypeTemplateParmDecl()
2350 SemaRef.Context, Owner, D->getInnerLocStart(), D->getLocation(), in VisitNonTypeTemplateParmDecl()
2360 SemaRef, Sema::ExpressionEvaluationContext::ConstantEvaluated); in VisitNonTypeTemplateParmDecl()
2361 ExprResult Value = SemaRef.SubstExpr(D->getDefaultArgument(), TemplateArgs); in VisitNonTypeTemplateParmDecl()
2368 SemaRef.CurrentInstantiationScope->InstantiatedLocal(D, Param); in VisitNonTypeTemplateParmDecl()
2405 LocalInstantiationScope Scope(SemaRef); in VisitTemplateTemplateParmDecl()
2420 collectUnexpandedParameterPacks(SemaRef, D->getTemplateParameters(), in VisitTemplateTemplateParmDecl()
2428 if (SemaRef.CheckParameterPacksForExpansion(D->getLocation(), in VisitTemplateTemplateParmDecl()
2438 Sema::ArgumentPackSubstitutionIndexRAII SubstIndex(SemaRef, I); in VisitTemplateTemplateParmDecl()
2439 LocalInstantiationScope Scope(SemaRef); in VisitTemplateTemplateParmDecl()
2454 Sema::ArgumentPackSubstitutionIndexRAII SubstIndex(SemaRef, -1); in VisitTemplateTemplateParmDecl()
2456 LocalInstantiationScope Scope(SemaRef); in VisitTemplateTemplateParmDecl()
2464 LocalInstantiationScope Scope(SemaRef); in VisitTemplateTemplateParmDecl()
2474 SemaRef.Context, Owner, D->getLocation(), in VisitTemplateTemplateParmDecl()
2479 SemaRef.Context, Owner, D->getLocation(), in VisitTemplateTemplateParmDecl()
2486 SemaRef.SubstNestedNameSpecifierLoc(QualifierLoc, TemplateArgs); in VisitTemplateTemplateParmDecl()
2487 TemplateName TName = SemaRef.SubstTemplateName( in VisitTemplateTemplateParmDecl()
2492 SemaRef.Context, in VisitTemplateTemplateParmDecl()
2501 SemaRef.CurrentInstantiationScope->InstantiatedLocal(D, Param); in VisitTemplateTemplateParmDecl()
2511 = UsingDirectiveDecl::Create(SemaRef.Context, Owner, D->getLocation(), in VisitUsingDirectiveDecl()
2537 = SemaRef.SubstNestedNameSpecifierLoc(D->getQualifierLoc(), in VisitUsingDecl()
2547 if (auto *RD = dyn_cast<CXXRecordDecl>(SemaRef.CurContext)) in VisitUsingDecl()
2548 NameInfo.setName(SemaRef.Context.DeclarationNames.getCXXConstructorName( in VisitUsingDecl()
2549 SemaRef.Context.getCanonicalType(SemaRef.Context.getRecordType(RD)))); in VisitUsingDecl()
2556 LookupResult Prev(SemaRef, NameInfo, Sema::LookupUsingDeclName, in VisitUsingDecl()
2559 UsingDecl *NewUD = UsingDecl::Create(SemaRef.Context, Owner, in VisitUsingDecl()
2569 SemaRef.LookupQualifiedName(Prev, Owner); in VisitUsingDecl()
2572 if (SemaRef.CheckUsingDeclRedeclaration(D->getUsingLoc(), in VisitUsingDecl()
2580 SemaRef.CheckUsingDeclQualifier(D->getUsingLoc(), D->hasTypename(), in VisitUsingDecl()
2584 SemaRef.Context.setInstantiatedFromUsingDecl(NewUD, D); in VisitUsingDecl()
2593 SemaRef.CheckInheritingConstructorUsingDecl(NewUD); in VisitUsingDecl()
2607 cast_or_null<NamedDecl>(SemaRef.FindInstantiatedDecl( in VisitUsingDecl()
2614 if (SemaRef.CheckUsingShadowDecl(NewUD, InstTarget, Prev, PrevDecl)) in VisitUsingDecl()
2618 PrevDecl = cast_or_null<UsingShadowDecl>(SemaRef.FindInstantiatedDecl( in VisitUsingDecl()
2623 SemaRef.BuildUsingShadowDecl(/*Scope*/nullptr, NewUD, InstTarget, in VisitUsingDecl()
2625 SemaRef.Context.setInstantiatedFromUsingShadowDecl(InstShadow, Shadow); in VisitUsingDecl()
2628 SemaRef.CurrentInstantiationScope->InstantiatedLocal(Shadow, InstShadow); in VisitUsingDecl()
2651 SemaRef.collectUnexpandedParameterPacks(D->getQualifierLoc(), Unexpanded); in instantiateUnresolvedUsingDecl()
2652 SemaRef.collectUnexpandedParameterPacks(D->getNameInfo(), Unexpanded); in instantiateUnresolvedUsingDecl()
2659 if (SemaRef.CheckParameterPacksForExpansion( in instantiateUnresolvedUsingDecl()
2672 Sema::ArgumentPackSubstitutionIndexRAII SubstIndex(SemaRef, -1); in instantiateUnresolvedUsingDecl()
2684 SemaRef.Diag(D->getEllipsisLoc(), in instantiateUnresolvedUsingDecl()
2692 Sema::ArgumentPackSubstitutionIndexRAII SubstIndex(SemaRef, I); in instantiateUnresolvedUsingDecl()
2703 auto *NewD = SemaRef.BuildUsingPackDecl(D, Expansions); in instantiateUnresolvedUsingDecl()
2705 SemaRef.CurrentInstantiationScope->InstantiatedLocal(D, NewD); in instantiateUnresolvedUsingDecl()
2713 = SemaRef.SubstNestedNameSpecifierLoc(D->getQualifierLoc(), in instantiateUnresolvedUsingDecl()
2722 = SemaRef.SubstDeclarationNameInfo(D->getNameInfo(), TemplateArgs); in instantiateUnresolvedUsingDecl()
2727 SemaRef.ArgumentPackSubstitutionIndex != -1; in instantiateUnresolvedUsingDecl()
2731 NamedDecl *UD = SemaRef.BuildUsingDeclaration( in instantiateUnresolvedUsingDecl()
2737 SemaRef.Context.setInstantiatedFromUsingDecl(UD, D); in instantiateUnresolvedUsingDecl()
2756 SemaRef.FindInstantiatedDecl(D->getLocation(), UD, TemplateArgs)) in VisitUsingPackDecl()
2762 auto *NewD = SemaRef.BuildUsingPackDecl(D, Expansions); in VisitUsingPackDecl()
2764 SemaRef.CurrentInstantiationScope->InstantiatedLocal(D, NewD); in VisitUsingPackDecl()
2779 if (SemaRef.Subst(Decl->templateArgs().getArgumentArray(), in VisitClassScopeFunctionSpecializationDecl()
2786 LookupResult Previous(SemaRef, NewFD->getNameInfo(), Sema::LookupOrdinaryName, in VisitClassScopeFunctionSpecializationDecl()
2788 SemaRef.LookupQualifiedName(Previous, SemaRef.CurContext); in VisitClassScopeFunctionSpecializationDecl()
2789 if (SemaRef.CheckFunctionTemplateSpecialization( in VisitClassScopeFunctionSpecializationDecl()
2798 SemaRef.Context.setClassScopeSpecializationPattern(Specialization, OldFD); in VisitClassScopeFunctionSpecializationDecl()
2809 Expr *Var = SemaRef.SubstExpr(I, TemplateArgs).get(); in VisitOMPThreadPrivateDecl()
2815 SemaRef.CheckOMPThreadPrivateDecl(D->getLocation(), Vars); in VisitOMPThreadPrivateDecl()
2837 SubstReductionType = SemaRef.ActOnOpenMPDeclareReductionType( in VisitOMPDeclareReductionDecl()
2839 ParsedType::make(SemaRef.SubstType( in VisitOMPDeclareReductionDecl()
2853 SemaRef.CurrentInstantiationScope->findInstantiationOf(PrevDeclInScope) in VisitOMPDeclareReductionDecl()
2856 auto DRD = SemaRef.ActOnOpenMPDeclareReductionDirectiveStart( in VisitOMPDeclareReductionDecl()
2860 SemaRef.CurrentInstantiationScope->InstantiatedLocal(D, NewDRD); in VisitOMPDeclareReductionDecl()
2870 (void)SemaRef.ActOnOpenMPDeclareReductionDirectiveEnd( in VisitOMPDeclareReductionDecl()
2878 SemaRef.ActOnOpenMPDeclareReductionCombinerStart( in VisitOMPDeclareReductionDecl()
2880 SemaRef.CurrentInstantiationScope->InstantiatedLocal( in VisitOMPDeclareReductionDecl()
2883 SemaRef.CurrentInstantiationScope->InstantiatedLocal( in VisitOMPDeclareReductionDecl()
2887 Sema::CXXThisScopeRAII ThisScope(SemaRef, ThisContext, Qualifiers(), in VisitOMPDeclareReductionDecl()
2889 SubstCombiner = SemaRef.SubstExpr(D->getCombiner(), TemplateArgs).get(); in VisitOMPDeclareReductionDecl()
2890 SemaRef.ActOnOpenMPDeclareReductionCombinerEnd(NewDRD, SubstCombiner); in VisitOMPDeclareReductionDecl()
2894 SemaRef.ActOnOpenMPDeclareReductionInitializerStart( in VisitOMPDeclareReductionDecl()
2896 SemaRef.CurrentInstantiationScope->InstantiatedLocal( in VisitOMPDeclareReductionDecl()
2899 SemaRef.CurrentInstantiationScope->InstantiatedLocal( in VisitOMPDeclareReductionDecl()
2904 SemaRef.SubstExpr(D->getInitializer(), TemplateArgs).get(); in VisitOMPDeclareReductionDecl()
2908 SemaRef.ActOnOpenMPDeclareReductionInitializerEnd( in VisitOMPDeclareReductionDecl()
2922 (void)SemaRef.ActOnOpenMPDeclareReductionDirectiveEnd(/*S=*/nullptr, DRD, in VisitOMPDeclareReductionDecl()
2984 if (SemaRef.Subst(ArgLocs.data(), ArgLocs.size(), in VisitClassTemplateSpecializationDecl()
2991 if (SemaRef.CheckTemplateArgumentList(InstClassTemplate, in VisitClassTemplateSpecializationDecl()
3008 SemaRef.CheckSpecializationInstantiationRedecl(D->getLocation(), in VisitClassTemplateSpecializationDecl()
3030 SemaRef.Diag(D->getLocation(), diag::err_redefinition) << PrevDecl; in VisitClassTemplateSpecializationDecl()
3031 SemaRef.Diag(PrevDecl->getDefinition()->getLocation(), in VisitClassTemplateSpecializationDecl()
3039 SemaRef.Context, D->getTagKind(), Owner, D->getBeginLoc(), in VisitClassTemplateSpecializationDecl()
3053 QualType CanonType = SemaRef.Context.getTemplateSpecializationType( in VisitClassTemplateSpecializationDecl()
3055 SemaRef.Context.getRecordType(InstD)); in VisitClassTemplateSpecializationDecl()
3064 TypeSourceInfo *WrittenTy = SemaRef.Context.getTemplateSpecializationTypeInfo( in VisitClassTemplateSpecializationDecl()
3081 SemaRef.InstantiateClass(D->getLocation(), InstD, D, TemplateArgs, in VisitClassTemplateSpecializationDecl()
3102 if (SemaRef.Subst(TemplateArgsInfo.getArgumentArray(), in VisitVarTemplateSpecializationDecl()
3108 if (SemaRef.CheckTemplateArgumentList( in VisitVarTemplateSpecializationDecl()
3133 SemaRef.SubstType(D->getTypeSourceInfo(), TemplateArgs, in VisitVarTemplateSpecializationDecl()
3139 SemaRef.Diag(D->getLocation(), diag::err_variable_instantiates_to_function) in VisitVarTemplateSpecializationDecl()
3146 SemaRef.Context, Owner, D->getInnerLocStart(), D->getLocation(), in VisitVarTemplateSpecializationDecl()
3156 SemaRef.BuildVariableInstantiation(Var, D, TemplateArgs, LateAttrs, in VisitVarTemplateSpecializationDecl()
3168 unsigned DiagID = SemaRef.getDiagnostics().getCustomDiagID( in VisitFriendTemplateDecl()
3171 SemaRef.Diag(D->getLocation(), DiagID) in VisitFriendTemplateDecl()
3219 = TemplateParameterList::Create(SemaRef.Context, L->getTemplateLoc(), in SubstTemplateParams()
3251 LocalInstantiationScope Scope(SemaRef); in InstantiateClassTemplatePartialSpecialization()
3266 if (SemaRef.Subst(TemplArgInfo->getTemplateArgs(), in InstantiateClassTemplatePartialSpecialization()
3274 if (SemaRef.CheckTemplateArgumentList(ClassTemplate, in InstantiateClassTemplatePartialSpecialization()
3282 if (SemaRef.CheckTemplatePartialSpecializationArgs( in InstantiateClassTemplatePartialSpecialization()
3296 = SemaRef.Context.getTemplateSpecializationType(TemplateName(ClassTemplate), in InstantiateClassTemplatePartialSpecialization()
3307 = SemaRef.Context.getTemplateSpecializationTypeInfo( in InstantiateClassTemplatePartialSpecialization()
3329 SemaRef.Diag(PartialSpec->getLocation(), diag::err_partial_spec_redeclared) in InstantiateClassTemplatePartialSpecialization()
3331 SemaRef.Diag(PrevDecl->getLocation(), diag::note_prev_partial_spec_here) in InstantiateClassTemplatePartialSpecialization()
3332 << SemaRef.Context.getTypeDeclType(PrevDecl); in InstantiateClassTemplatePartialSpecialization()
3340 SemaRef.Context, PartialSpec->getTagKind(), Owner, in InstantiateClassTemplatePartialSpecialization()
3351 SemaRef.CheckTemplatePartialSpecialization(InstPartialSpec); in InstantiateClassTemplatePartialSpecialization()
3378 LocalInstantiationScope Scope(SemaRef); in InstantiateVarTemplatePartialSpecialization()
3393 if (SemaRef.Subst(TemplArgInfo->getTemplateArgs(), in InstantiateVarTemplatePartialSpecialization()
3401 if (SemaRef.CheckTemplateArgumentList(VarTemplate, PartialSpec->getLocation(), in InstantiateVarTemplatePartialSpecialization()
3406 if (SemaRef.CheckTemplatePartialSpecializationArgs( in InstantiateVarTemplatePartialSpecialization()
3419 QualType CanonType = SemaRef.Context.getTemplateSpecializationType( in InstantiateVarTemplatePartialSpecialization()
3429 TypeSourceInfo *WrittenTy = SemaRef.Context.getTemplateSpecializationTypeInfo( in InstantiateVarTemplatePartialSpecialization()
3449 SemaRef.Diag(PartialSpec->getLocation(), in InstantiateVarTemplatePartialSpecialization()
3452 SemaRef.Diag(PrevDecl->getLocation(), in InstantiateVarTemplatePartialSpecialization()
3458 TypeSourceInfo *DI = SemaRef.SubstType( in InstantiateVarTemplatePartialSpecialization()
3465 SemaRef.Diag(PartialSpec->getLocation(), in InstantiateVarTemplatePartialSpecialization()
3474 SemaRef.Context, Owner, PartialSpec->getInnerLocStart(), in InstantiateVarTemplatePartialSpecialization()
3486 SemaRef.CheckTemplatePartialSpecialization(InstPartialSpec); in InstantiateVarTemplatePartialSpecialization()
3492 SemaRef.BuildVariableInstantiation(InstPartialSpec, PartialSpec, TemplateArgs, in InstantiateVarTemplatePartialSpecialization()
3513 = SemaRef.SubstFunctionDeclType(OldTInfo, TemplateArgs, in SubstFunctionType()
3530 LocalInstantiationScope *Scope = SemaRef.CurrentInstantiationScope; in SubstFunctionType()
3535 SemaRef.getNumArgumentsInExpansion(OldParam->getType(), in SubstFunctionType()
3563 Params.push_back(SemaRef.BuildParmVarDeclForTypedef( in SubstFunctionType()
3588 if (SemaRef.SubstParmTypes(D->getLocation(), D->parameters(), nullptr, in SubstFunctionType()
3715 SemaRef.Context.setManglingNumber(New, in InitFunctionInstantiation()
3716 SemaRef.Context.getManglingNumber(Tmpl)); in InitFunctionInstantiation()
3727 ActiveInstType &ActiveInst = SemaRef.CodeSynthesisContexts.back(); in InitFunctionInstantiation()
3735 atTemplateEnd(SemaRef.TemplateInstCallbacks, SemaRef, ActiveInst); in InitFunctionInstantiation()
3738 atTemplateBegin(SemaRef.TemplateInstCallbacks, SemaRef, ActiveInst); in InitFunctionInstantiation()
3752 if (SemaRef.getLangOpts().CPlusPlus11 && in InitFunctionInstantiation()
3772 New->setType(SemaRef.Context.getFunctionType( in InitFunctionInstantiation()
3775 Sema::ContextRAII SwitchContext(SemaRef, New); in InitFunctionInstantiation()
3776 SemaRef.SubstExceptionSpec(New, Proto, TemplateArgs); in InitFunctionInstantiation()
3784 SemaRef.InstantiateAttrs(TemplateArgs, Definition, New, in InitFunctionInstantiation()
3801 if (isa<CXXDestructorDecl>(New) && SemaRef.getLangOpts().CPlusPlus11) in InitMethodInstantiation()
3802 SemaRef.AdjustDestructorExceptionSpec(cast<CXXDestructorDecl>(New)); in InitMethodInstantiation()