reference, declarationdefinition
definition → references, declarations, derived classes, virtual overrides
reference to multiple definitions → definitions
unreferenced

Declarations

gen/tools/clang/include/clang/AST/DeclNodes.inc
  207 FUNCTIONTEMPLATE(FunctionTemplate, RedeclarableTemplateDecl)
tools/clang/include/clang/AST/ASTMutationListener.h
   27   class FunctionTemplateDecl;
tools/clang/include/clang/AST/Decl.h
   60 class FunctionTemplateDecl;
tools/clang/include/clang/AST/DeclCXX.h
   70 class FunctionTemplateDecl;
tools/clang/include/clang/AST/DeclTemplate.h
   48 class FunctionTemplateDecl;
tools/clang/include/clang/Sema/CodeCompleteConsumer.h
   42 class FunctionTemplateDecl;
tools/clang/include/clang/Sema/Sema.h
  124   class FunctionTemplateDecl;
tools/clang/tools/libclang/CXIndexDataConsumer.h
   24   class FunctionTemplateDecl;
tools/lldb/include/lldb/Core/ClangForward.h
   64 class FunctionTemplateDecl;

References

include/llvm/ADT/STLExtras.h
   75       typename std::add_pointer<typename std::add_const<T>::type>::type;
include/llvm/Support/Casting.h
   57   static inline bool doit(const From &Val) {
   58     return To::classof(&Val);
   66   static inline bool doit(const From &) { return true; }
  104   static inline bool doit(const From *Val) {
  106     return isa_impl<To, From>::doit(*Val);
  106     return isa_impl<To, From>::doit(*Val);
  122     return isa_impl_wrap<To, SimpleFrom,
  132     return isa_impl_cl<To,FromTy>::doit(Val);
  142   return isa_impl_wrap<X, const Y,
  172   using ret_type = To *;       // Pointer arg case, return Ty*
  176   using ret_type = const To *; // Constant pointer arg case, return const Ty*
  198   using ret_type = typename cast_retty<To, SimpleFrom>::ret_type;
  204   using ret_type = typename cast_retty_impl<To,FromTy>::ret_type;
  210       To, From, typename simplify_type<From>::SimpleType>::ret_type;
  227   static typename cast_retty<To, FromTy>::ret_type doit(const FromTy &Val) {
  228     typename cast_retty<To, FromTy>::ret_type Res2
  256 inline typename cast_retty<X, Y>::ret_type cast(Y &Val) {
  263 inline typename cast_retty<X, Y *>::ret_type cast(Y *Val) {
  263 inline typename cast_retty<X, Y *>::ret_type cast(Y *Val) {
  263 inline typename cast_retty<X, Y *>::ret_type cast(Y *Val) {
  265   return cast_convert_val<X, Y*,
  265   return cast_convert_val<X, Y*,
  266                           typename simplify_type<Y*>::SimpleType>::doit(Val);
  305 LLVM_NODISCARD inline typename cast_retty<X, Y *>::ret_type
  309   return cast<X>(Val);
  337 LLVM_NODISCARD inline typename cast_retty<X, Y>::ret_type dyn_cast(Y &Val) {
  342 LLVM_NODISCARD inline typename cast_retty<X, Y *>::ret_type dyn_cast(Y *Val) {
  342 LLVM_NODISCARD inline typename cast_retty<X, Y *>::ret_type dyn_cast(Y *Val) {
  342 LLVM_NODISCARD inline typename cast_retty<X, Y *>::ret_type dyn_cast(Y *Val) {
  343   return isa<X>(Val) ? cast<X>(Val) : nullptr;
  343   return isa<X>(Val) ? cast<X>(Val) : nullptr;
  360                             typename cast_retty<X, Y>::ret_type>::type
  366 LLVM_NODISCARD inline typename cast_retty<X, Y *>::ret_type
  368   return (Val && isa<X>(Val)) ? cast<X>(Val) : nullptr;
  368   return (Val && isa<X>(Val)) ? cast<X>(Val) : nullptr;
include/llvm/Support/PointerLikeTypeTraits.h
   56   static inline void *getAsVoidPointer(T *P) { return P; }
   57   static inline T *getFromVoidPointer(void *P) { return static_cast<T *>(P); }
   59   enum { NumLowBitsAvailable = detail::ConstantLog2<alignof(T)>::value };
tools/clang/include/clang/AST/ASTDumper.h
   49   void VisitFunctionTemplateDecl(const FunctionTemplateDecl *D);
tools/clang/include/clang/AST/ASTLambda.h
   55   if (FunctionTemplateDecl *F = dyn_cast<FunctionTemplateDecl>(D))
   55   if (FunctionTemplateDecl *F = dyn_cast<FunctionTemplateDecl>(D))
tools/clang/include/clang/AST/ASTMutationListener.h
   72   virtual void AddedCXXTemplateSpecialization(const FunctionTemplateDecl *TD,
tools/clang/include/clang/AST/ASTNodeTraverser.h
  448   void dumpTemplateDecl(const TemplateDecl *D) {
  471   void VisitFunctionTemplateDecl(const FunctionTemplateDecl *D) {
tools/clang/include/clang/AST/ASTTypeTraits.h
   65     return ASTNodeKind(KindToKindId<T>::Id);
   65     return ASTNodeKind(KindToKindId<T>::Id);
   65     return ASTNodeKind(KindToKindId<T>::Id);
  234   static DynTypedNode create(const T &Node) {
  235     return BaseConverter<T>::create(Node);
  251   const T *get() const {
  252     return BaseConverter<T>::get(NodeKind, Storage.buffer);
  259   const T &getUnchecked() const {
  260     return BaseConverter<T>::getUnchecked(NodeKind, Storage.buffer);
  394     static const T *get(ASTNodeKind NodeKind, const char Storage[]) {
  395       if (ASTNodeKind::getFromNodeKind<T>().isBaseOf(NodeKind))
  399     static const T &getUnchecked(ASTNodeKind NodeKind, const char Storage[]) {
  401       return *cast<T>(static_cast<const BaseT *>(
  469     : public DynCastPtrConverter<T, Decl> {};
tools/clang/include/clang/AST/Decl.h
 1840   llvm::PointerUnion4<FunctionTemplateDecl *,
 1872                                          FunctionTemplateDecl *Template,
 2504   FunctionTemplateDecl *getDescribedFunctionTemplate() const;
 2506   void setDescribedFunctionTemplate(FunctionTemplateDecl *Template);
 2538   FunctionTemplateDecl *getPrimaryTemplate() const;
 2576   void setFunctionTemplateSpecialization(FunctionTemplateDecl *Template,
tools/clang/include/clang/AST/DeclBase.h
 2058       while (*Current && !isa<SpecificDecl>(*Current))
 2063     using value_type = SpecificDecl *;
 2086     value_type operator*() const { return cast<SpecificDecl>(*Current); }
 2536   static ::clang::DeclContext *doit(const FromTy *Val) {
 2537     return FromTy::castToDeclContext(Val);
tools/clang/include/clang/AST/DeclCXX.h
  983   FunctionTemplateDecl *getDependentLambdaCallOperator() const;
tools/clang/include/clang/AST/DeclFriend.h
  152       if (const auto *FTD = dyn_cast<FunctionTemplateDecl>(ND))
  152       if (const auto *FTD = dyn_cast<FunctionTemplateDecl>(ND))
tools/clang/include/clang/AST/DeclTemplate.h
  467   llvm::PointerIntPair<FunctionTemplateDecl *, 2> Template;
  484       FunctionDecl *FD, FunctionTemplateDecl *Template,
  504   Create(ASTContext &C, FunctionDecl *FD, FunctionTemplateDecl *Template,
  514   FunctionTemplateDecl *getTemplate() const { return Template.getPointer(); }
  674                                     FunctionTemplateDecl *> {
  687   size_t numTrailingObjects(OverloadToken<FunctionTemplateDecl *>) const {
  707   FunctionTemplateDecl *getTemplate(unsigned I) const {
  709     return getTrailingObjects<FunctionTemplateDecl *>()[I];
 1031   FunctionTemplateDecl *getCanonicalDecl() override {
 1032     return cast<FunctionTemplateDecl>(
 1035   const FunctionTemplateDecl *getCanonicalDecl() const {
 1036     return cast<FunctionTemplateDecl>(
 1042   FunctionTemplateDecl *getPreviousDecl() {
 1043     return cast_or_null<FunctionTemplateDecl>(
 1046   const FunctionTemplateDecl *getPreviousDecl() const {
 1047     return cast_or_null<FunctionTemplateDecl>(
 1051   FunctionTemplateDecl *getMostRecentDecl() {
 1052     return cast<FunctionTemplateDecl>(
 1056   const FunctionTemplateDecl *getMostRecentDecl() const {
 1060   FunctionTemplateDecl *getInstantiatedFromMemberTemplate() const {
 1061     return cast_or_null<FunctionTemplateDecl>(
 1090   void mergePrevDecl(FunctionTemplateDecl *Prev);
 1093   static FunctionTemplateDecl *Create(ASTContext &C, DeclContext *DC,
 1100   static FunctionTemplateDecl *CreateDeserialized(ASTContext &C, unsigned ID);
tools/clang/include/clang/AST/ExprCXX.h
 2003   FunctionTemplateDecl *getDependentCallOperator() const;
tools/clang/include/clang/AST/JSONNodeDumper.h
  390   void writeTemplateDecl(const TemplateDecl *TD, bool DumpExplicitInst) {
  414   void VisitFunctionTemplateDecl(const FunctionTemplateDecl *FTD) {
tools/clang/include/clang/AST/RecursiveASTVisitor.h
 1714     FunctionTemplateDecl *D) {
tools/clang/include/clang/AST/TextNodeDumper.h
  321   void VisitFunctionTemplateDecl(const FunctionTemplateDecl *D);
tools/clang/include/clang/ASTMatchers/ASTMatchers.h
  110   const T *getNodeAs(StringRef ID) const {
  111     return MyBoundNodes.getNodeAs<T>(ID);
 1190 extern const internal::VariadicDynCastAllOfMatcher<Decl, FunctionTemplateDecl>
tools/clang/include/clang/ASTMatchers/ASTMatchersInternal.h
  160   const T *getNodeAs(StringRef ID) const {
  165     return It->second.get<T>();
  302   virtual bool matches(const T &Node,
  309     return matches(DynNode.getUnchecked<T>(), Finder, Builder);
  345   DynTypedMatcher(MatcherInterface<T> *Implementation)
  346       : SupportedKind(ast_type_traits::ASTNodeKind::getFromNodeKind<T>()),
  436     return canConvertTo(ast_type_traits::ASTNodeKind::getFromNodeKind<T>());
  445   template <typename T> Matcher<T> convertTo() const {
  447     return unconditionalConvertTo<T>();
  479 class WrapperMatcherInterface : public MatcherInterface<T> {
  499   explicit Matcher(MatcherInterface<T> *Implementation)
  507           typename std::enable_if<std::is_base_of<From, T>::value &&
  508                                !std::is_same<From, T>::value>::type * = nullptr)
  520             std::is_same<T, QualType>::value &&
  529     static_assert(std::is_base_of<To, T>::value, "Invalid dynCast call.");
  534   bool matches(const T &Node,
  581     return Other.dynCastTo(ast_type_traits::ASTNodeKind::getFromNodeKind<T>());
  994   bool matchesChildOf(const T &Node, const DynTypedMatcher &Matcher,
  997     static_assert(std::is_base_of<Decl, T>::value ||
  998                   std::is_base_of<Stmt, T>::value ||
  999                   std::is_base_of<NestedNameSpecifier, T>::value ||
 1000                   std::is_base_of<NestedNameSpecifierLoc, T>::value ||
 1001                   std::is_base_of<TypeLoc, T>::value ||
 1002                   std::is_base_of<QualType, T>::value,
 1009   bool matchesDescendantOf(const T &Node,
 1013     static_assert(std::is_base_of<Decl, T>::value ||
 1014                   std::is_base_of<Stmt, T>::value ||
 1015                   std::is_base_of<NestedNameSpecifier, T>::value ||
 1016                   std::is_base_of<NestedNameSpecifierLoc, T>::value ||
 1017                   std::is_base_of<TypeLoc, T>::value ||
 1018                   std::is_base_of<QualType, T>::value,
 1026   bool matchesAncestorOf(const T &Node,
 1030     static_assert(std::is_base_of<Decl, T>::value ||
 1031                       std::is_base_of<NestedNameSpecifierLoc, T>::value ||
 1032                       std::is_base_of<Stmt, T>::value ||
 1033                       std::is_base_of<TypeLoc, T>::value,
 1146     template <typename To> operator Matcher<To>() const {
 1243   operator Matcher<T>() const {
 1245                ast_type_traits::ASTNodeKind::getFromNodeKind<T>())
 1246         .template unconditionalConvertTo<T>();
 1255 class BindableMatcher : public Matcher<T> {
 1257   explicit BindableMatcher(const Matcher<T> &M) : Matcher<T>(M) {}
 1258   explicit BindableMatcher(MatcherInterface<T> *Implementation)
 1265   Matcher<T> bind(StringRef ID) const {
 1285 class HasMatcher : public WrapperMatcherInterface<T> {
 1290   bool matches(const T &Node, ASTMatchFinder *Finder,
 1335   template <typename T> operator Matcher<T>() const {
 1337                Op, ast_type_traits::ASTNodeKind::getFromNodeKind<T>(),
 1338                getMatchers<T>(std::index_sequence_for<Ps...>()))
 1339         .template unconditionalConvertTo<T>();
 1370 inline Matcher<T> DynTypedMatcher::unconditionalConvertTo() const {
 1376 BindableMatcher<T> makeAllOfComposite(
 1377     ArrayRef<const Matcher<T> *> InnerMatchers) {
 1388   using PI = llvm::pointee_iterator<const Matcher<T> *const *>;
 1395           ast_type_traits::ASTNodeKind::getFromNodeKind<T>(),
 1397           .template unconditionalConvertTo<T>());
 1408     ArrayRef<const Matcher<InnerT> *> InnerMatchers) {
 1418 class HasDescendantMatcher : public WrapperMatcherInterface<T> {
 1426   bool matches(const T &Node, ASTMatchFinder *Finder,
 1458 class HasAncestorMatcher : public WrapperMatcherInterface<T> {
 1466   bool matches(const T &Node, ASTMatchFinder *Finder,
 1557     : public VariadicFunction<BindableMatcher<SourceT>, Matcher<TargetT>,
 1558                               makeDynCastAllOfComposite<SourceT, TargetT>> {
tools/clang/include/clang/ASTMatchers/Dynamic/VariantValue.h
  199   ast_matchers::internal::Matcher<T> getTypedMatcher() const {
  202         ->template convertTo<T>();
  227       : MatcherOps(ast_type_traits::ASTNodeKind::getFromNodeKind<T>()) {}
  228   typedef ast_matchers::internal::Matcher<T> MatcherT;
  232     return DynTypedMatcher(Matcher.convertTo<T>());
tools/clang/include/clang/Sema/CodeCompleteConsumer.h
 1031       FunctionTemplateDecl *FunctionTemplate;
 1042     OverloadCandidate(FunctionTemplateDecl *FunctionTemplateDecl)
 1056     FunctionTemplateDecl *getFunctionTemplate() const {
tools/clang/include/clang/Sema/Lookup.h
  507   DeclClass *getAsSingle() const {
  509     return dyn_cast<DeclClass>(getFoundDecl());
tools/clang/include/clang/Sema/Overload.h
 1108     FunctionTemplateDecl *ConstructorTmpl;
 1124     Info.ConstructorTmpl = dyn_cast<FunctionTemplateDecl>(D);
tools/clang/include/clang/Sema/Sema.h
 3113   void AddMethodTemplateCandidate(FunctionTemplateDecl *MethodTmpl,
 3125       FunctionTemplateDecl *FunctionTemplate, DeclAccessPair FoundDecl,
 3132       FunctionTemplateDecl *FunctionTemplate, ArrayRef<QualType> ParamTypes,
 3144       FunctionTemplateDecl *FunctionTemplate, DeclAccessPair FoundDecl,
 6425   void CheckDeductionGuideTemplate(FunctionTemplateDecl *TD);
 7525       FunctionTemplateDecl *FunctionTemplate,
 7547       FunctionTemplateDecl *FunctionTemplate,
 7556       FunctionTemplateDecl *FunctionTemplate,
 7563   DeduceTemplateArguments(FunctionTemplateDecl *FunctionTemplate,
 7571   DeduceTemplateArguments(FunctionTemplateDecl *FunctionTemplate,
 7577   DeduceTemplateArguments(FunctionTemplateDecl *FunctionTemplate,
 7629   FunctionTemplateDecl *getMoreSpecializedTemplate(FunctionTemplateDecl *FT1,
 7629   FunctionTemplateDecl *getMoreSpecializedTemplate(FunctionTemplateDecl *FT1,
 7630                                                    FunctionTemplateDecl *FT2,
 7668                                   const FunctionTemplateDecl *FunctionTemplate,
 7673                                   const FunctionTemplateDecl *FunctionTemplate,
 7952                           FunctionTemplateDecl *FunctionTemplate,
 8453   FunctionDecl *InstantiateFunctionDeclaration(FunctionTemplateDecl *FTD,
11046   void inheritCUDATargetAttrs(FunctionDecl *FD, const FunctionTemplateDecl &TD);
tools/clang/include/clang/Serialization/ASTReader.h
 1887   T *ReadDeclAs(ModuleFile &F, const RecordData &R, unsigned &I) {
 1888     return cast_or_null<T>(GetDecl(ReadDeclID(F, R, I)));
 2541   T *readDeclAs() {
 2542     return Reader->ReadDeclAs<T>(*F, Record, Idx);
tools/clang/include/clang/Serialization/ASTWriter.h
  722   void AddedCXXTemplateSpecialization(const FunctionTemplateDecl *TD,
tools/clang/lib/AST/ASTContext.cpp
  301     if (const FunctionTemplateDecl *FTD = FD->getDescribedFunctionTemplate())
  309     if (const FunctionTemplateDecl *FTD = FD->getPrimaryTemplate())
 7715                           size * sizeof(FunctionTemplateDecl*));
tools/clang/lib/AST/ASTDumper.cpp
  127 void ASTDumper::dumpTemplateDecl(const TemplateDecl *D, bool DumpExplicitInst) {
  137 void ASTDumper::VisitFunctionTemplateDecl(const FunctionTemplateDecl *D) {
tools/clang/lib/AST/ASTImporter.cpp
  152     LLVM_NODISCARD Error importInto(ImportT *&To, ImportT *From) {
  152     LLVM_NODISCARD Error importInto(ImportT *&To, ImportT *From) {
  155         To = cast_or_null<ImportT>(*ToOrErr);
  162     Expected<T *> import(T *From) {
  162     Expected<T *> import(T *From) {
  166       return cast_or_null<T>(*ToOrErr);
  170     Expected<T *> import(const T *From) {
  170     Expected<T *> import(const T *From) {
  217           -> decltype(ToDeclT::Create(std::forward<Args>(args)...)) {
  218         return ToDeclT::Create(std::forward<Args>(args)...);
  229     LLVM_NODISCARD bool GetImportedOrCreateDecl(ToDeclT *&ToD, FromDeclT *FromD,
  229     LLVM_NODISCARD bool GetImportedOrCreateDecl(ToDeclT *&ToD, FromDeclT *FromD,
  234       CallOverloadedCreateFun<ToDeclT> OC;
  256     GetImportedOrCreateSpecialDecl(ToDeclT *&ToD, CreateFunT CreateFun,
  257                                    FromDeclT *FromD, Args &&... args) {
  262       ToD = cast_or_null<ToDeclT>(Importer.GetAlreadyImportedOrNull(FromD));
  419         std::tuple<FunctionTemplateDecl *, TemplateArgsTy>;
  443     bool IsStructuralMatch(FunctionTemplateDecl *From,
  444                            FunctionTemplateDecl *To);
  503     ExpectedDecl VisitFunctionTemplateDecl(FunctionTemplateDecl *D);
  936 bool ASTNodeImporter::hasSameVisibilityContext(T *Found, T *From) {
  936 bool ASTNodeImporter::hasSameVisibilityContext(T *Found, T *From) {
 2037 bool ASTNodeImporter::IsStructuralMatch(FunctionTemplateDecl *From,
 2038                                         FunctionTemplateDecl *To) {
 2944       if (Expected<FunctionTemplateDecl *> ToFTDOrErr =
 2975   FunctionTemplateDecl *Template;
 3018   FunctionTemplateDecl *FromFT = D->getDescribedFunctionTemplate();
 3092           if (FunctionTemplateDecl *DescribedD =
 5026 template <typename T> static auto getTemplateDefinition(T *D) -> T * {
 5026 template <typename T> static auto getTemplateDefinition(T *D) -> T * {
 5032   return cast_or_null<T>(TemplateWithDef);
 5558 ASTNodeImporter::VisitFunctionTemplateDecl(FunctionTemplateDecl *D) {
 5570   const FunctionTemplateDecl *FoundByLookup = nullptr;
 5582       if (auto *FoundTemplate = dyn_cast<FunctionTemplateDecl>(FoundDecl)) {
 5582       if (auto *FoundTemplate = dyn_cast<FunctionTemplateDecl>(FoundDecl)) {
 5586           FunctionTemplateDecl *TemplateWithDef =
 5607   FunctionTemplateDecl *ToFunc;
 5619     auto *Recent =
tools/clang/lib/AST/ASTStructuralEquivalence.cpp
 1524                                      FunctionTemplateDecl *D1,
 1525                                      FunctionTemplateDecl *D2) {
 1803   } else if (auto *FunctionTemplate1 = dyn_cast<FunctionTemplateDecl>(D1)) {
 1803   } else if (auto *FunctionTemplate1 = dyn_cast<FunctionTemplateDecl>(D1)) {
 1804     if (auto *FunctionTemplate2 = dyn_cast<FunctionTemplateDecl>(D2)) {
 1804     if (auto *FunctionTemplate2 = dyn_cast<FunctionTemplateDecl>(D2)) {
tools/clang/lib/AST/Comment.cpp
  263     const FunctionTemplateDecl *FTD = cast<FunctionTemplateDecl>(CommentDecl);
  263     const FunctionTemplateDecl *FTD = cast<FunctionTemplateDecl>(CommentDecl);
tools/clang/lib/AST/CommentSema.cpp
  821   if (const FunctionTemplateDecl *FTD =
  822         dyn_cast<FunctionTemplateDecl>(ThisDeclInfo->CurrentDecl))
  948          (isa<FunctionTemplateDecl>(ThisDeclInfo->CurrentDecl));
tools/clang/lib/AST/Decl.cpp
  394   FunctionTemplateDecl *temp = specInfo->getTemplate();
 3091   if (FunctionTemplateDecl *FunTmpl = getDescribedFunctionTemplate()) {
 3092     FunctionTemplateDecl *PrevFunTmpl
 3448   if (TemplateOrSpecialization.is<FunctionTemplateDecl *>())
 3489 FunctionTemplateDecl *FunctionDecl::getDescribedFunctionTemplate() const {
 3490   return TemplateOrSpecialization.dyn_cast<FunctionTemplateDecl *>();
 3493 void FunctionDecl::setDescribedFunctionTemplate(FunctionTemplateDecl *Template) {
 3565   if (FunctionTemplateDecl *Primary = getPrimaryTemplate()) {
 3569       auto *NewPrimary = Primary->getInstantiatedFromMemberTemplate();
 3581 FunctionTemplateDecl *FunctionDecl::getPrimaryTemplate() const {
 3618                                                 FunctionTemplateDecl *Template,
 3663       totalSizeToAlloc<TemplateArgumentLoc, FunctionTemplateDecl *>(
 3675   FunctionTemplateDecl **TsArray = getTrailingObjects<FunctionTemplateDecl *>();
 3675   FunctionTemplateDecl **TsArray = getTrailingObjects<FunctionTemplateDecl *>();
 3677     TsArray[I] = cast<FunctionTemplateDecl>(Ts[I]->getUnderlyingDecl());
 3787   if (FunctionTemplateDecl *FunTmpl = getPrimaryTemplate()) {
tools/clang/lib/AST/DeclBase.cpp
  221   if (const auto *FTD = dyn_cast<FunctionTemplateDecl>(this))
  221   if (const auto *FTD = dyn_cast<FunctionTemplateDecl>(this))
  577   if (auto *FTD = dyn_cast<FunctionTemplateDecl>(this))
tools/clang/lib/AST/DeclCXX.cpp
  683   auto *FunTmpl = dyn_cast<FunctionTemplateDecl>(D);
  683   auto *FunTmpl = dyn_cast<FunctionTemplateDecl>(D);
  691     if (auto *UnderlyingFunTmpl = dyn_cast<FunctionTemplateDecl>(DUnderlying))
  691     if (auto *UnderlyingFunTmpl = dyn_cast<FunctionTemplateDecl>(DUnderlying))
 1415 FunctionTemplateDecl* CXXRecordDecl::getDependentLambdaCallOperator() const {
 1417   return  dyn_cast_or_null<FunctionTemplateDecl>(CallOp);
 1426   if (const auto *CallOpTmpl = dyn_cast<FunctionTemplateDecl>(CallOp))
 1426   if (const auto *CallOpTmpl = dyn_cast<FunctionTemplateDecl>(CallOp))
 1441   if (const auto *InvokerTemplate = dyn_cast<FunctionTemplateDecl>(InvokerFun))
 1441   if (const auto *InvokerTemplate = dyn_cast<FunctionTemplateDecl>(InvokerFun))
 1469   if (FunctionTemplateDecl *Tmpl = CallOp->getDescribedFunctionTemplate())
tools/clang/lib/AST/DeclPrinter.cpp
   83     void VisitFunctionTemplateDecl(FunctionTemplateDecl *D);
  452     } else if (auto TD = dyn_cast<FunctionTemplateDecl>(*D)) {
  477          (isa<FunctionTemplateDecl>(*D) &&
  478           cast<FunctionTemplateDecl>(*D)->getTemplatedDecl()->doesThisDeclarationHaveABody())))
  789   else if (FunctionTemplateDecl *FTD =
  790            dyn_cast<FunctionTemplateDecl>(D->getFriendDecl())) {
 1143 void DeclPrinter::VisitFunctionTemplateDecl(FunctionTemplateDecl *D) {
tools/clang/lib/AST/DeclTemplate.cpp
  271     L->AddedCXXTemplateSpecialization(cast<Derived>(this),
  279 FunctionTemplateDecl *FunctionTemplateDecl::Create(ASTContext &C,
  286   return new (C, DC) FunctionTemplateDecl(C, DC, L, Name, Params, Decl);
  289 FunctionTemplateDecl *FunctionTemplateDecl::CreateDeserialized(ASTContext &C,
  291   return new (C, ID) FunctionTemplateDecl(C, nullptr, SourceLocation(),
  320   addSpecializationImpl<FunctionTemplateDecl>(getSpecializations(), Info,
  340 void FunctionTemplateDecl::mergePrevDecl(FunctionTemplateDecl *Prev) {
  350   SmallVector<FunctionTemplateDecl *, 8> PreviousDecls;
  362     for (auto *D : PreviousDecls)
  722     ASTContext &C, FunctionDecl *FD, FunctionTemplateDecl *Template,
tools/clang/lib/AST/ExprCXX.cpp
 1291 FunctionTemplateDecl *LambdaExpr::getDependentCallOperator() const {
tools/clang/lib/AST/ExprClassification.cpp
  456                  isa<FunctionTemplateDecl>(D)));
tools/clang/lib/AST/ExprConstant.cpp
 6937           FunctionTemplateDecl *CallOpTemplate =
tools/clang/lib/AST/ExternalASTMerger.cpp
  455 static bool importSpecializations(DeclTy *D, ASTImporter *Importer) {
  470   if (auto *FunctionTD = dyn_cast<FunctionTemplateDecl>(D))
  470   if (auto *FunctionTD = dyn_cast<FunctionTemplateDecl>(D))
tools/clang/lib/AST/ItaniumMangle.cpp
   99   if (const FunctionTemplateDecl *ftd = fn->getPrimaryTemplate())
  749   if (FunctionTemplateDecl *PrimaryTemplate = FD->getPrimaryTemplate()) {
tools/clang/lib/AST/MicrosoftMangle.cpp
  113   if (const auto *FTD = dyn_cast<FunctionTemplateDecl>(ND))
  113   if (const auto *FTD = dyn_cast<FunctionTemplateDecl>(ND))
  117   if (const auto *FTD = FD->getPrimaryTemplate())
  799     if (isa<FunctionTemplateDecl>(TD)) {
 1487           !isa<FunctionTemplateDecl>(TD)) {
 1492         if (!isa<FunctionTemplateDecl>(TD)) {
tools/clang/lib/AST/ODRHash.cpp
  423   void VisitFunctionTemplateDecl(const FunctionTemplateDecl *D) {
  426     Inherited::VisitFunctionTemplateDecl(D);
tools/clang/lib/AST/TextNodeDumper.cpp
 1666 void TextNodeDumper::VisitFunctionTemplateDecl(const FunctionTemplateDecl *D) {
tools/clang/lib/ASTMatchers/ASTMatchersInternal.cpp
  611 const internal::VariadicDynCastAllOfMatcher<Decl, FunctionTemplateDecl>
tools/clang/lib/ASTMatchers/Dynamic/Marshallers.h
   75     return Value.isMatcher() && Value.getMatcher().hasTypedMatcher<T>();
   78   static ast_matchers::internal::Matcher<T> get(const VariantValue &Value) {
   79     return Value.getMatcher().getTypedMatcher<T>();
   83     return ArgKind(ast_type_traits::ASTNodeKind::getFromNodeKind<T>());
  466       ast_matchers::internal::VariadicDynCastAllOfMatcher<BaseT, DerivedT> Func,
  469         DerivedKind(ast_type_traits::ASTNodeKind::getFromNodeKind<DerivedT>()) {
  778     ast_matchers::internal::VariadicDynCastAllOfMatcher<BaseT, DerivedT>
tools/clang/lib/Analysis/AnalysisDeclContext.cpp
  120   else if (const auto *FunTmpl = dyn_cast_or_null<FunctionTemplateDecl>(D))
  120   else if (const auto *FunTmpl = dyn_cast_or_null<FunctionTemplateDecl>(D))
tools/clang/lib/Analysis/CallGraph.cpp
   83     if (FunctionTemplateDecl *FTD = LE->getDependentCallOperator())
tools/clang/lib/CodeGen/Address.h
  108 template <class U> inline U cast(CodeGen::Address addr) {
tools/clang/lib/CodeGen/CGClass.cpp
 2923     FunctionTemplateDecl *CallOpTemplate = CallOp->getDescribedFunctionTemplate();
tools/clang/lib/Frontend/ASTUnit.cpp
  343   } else if (isa<ValueDecl>(ND) || isa<FunctionTemplateDecl>(ND)) {
tools/clang/lib/Frontend/InterfaceStubFunctionsConsumer.cpp
  144   void HandleTemplateSpecializations(const FunctionTemplateDecl &FTD,
  177       HandleTemplateSpecializations(*cast<FunctionTemplateDecl>(ND), Symbols,
tools/clang/lib/Index/IndexDecl.cpp
  240     if (const auto *Base = D->getPrimaryTemplate())
tools/clang/lib/Index/IndexSymbol.cpp
  291                            cast<FunctionTemplateDecl>(D)->getTemplatedDecl())) {
tools/clang/lib/Index/USRGeneration.cpp
   88   void VisitFunctionTemplateDecl(const FunctionTemplateDecl *D);
  229   if (FunctionTemplateDecl *FunTmpl = D->getDescribedFunctionTemplate()) {
  370 void USRGenerator::VisitFunctionTemplateDecl(const FunctionTemplateDecl *D) {
tools/clang/lib/Parse/ParseCXXInlineMethods.cpp
  411     if (FunctionTemplateDecl *FunTmpl
  412           = dyn_cast<FunctionTemplateDecl>(LM.Method))
tools/clang/lib/Sema/Sema.cpp
  587     if (FunctionTemplateDecl *Template = FD->getDescribedFunctionTemplate())
  792     else if (const FunctionTemplateDecl *F = dyn_cast<FunctionTemplateDecl>(*I))
  792     else if (const FunctionTemplateDecl *F = dyn_cast<FunctionTemplateDecl>(*I))
 1539     if (auto *Templ = C.Callee->getPrimaryTemplate()) {
tools/clang/lib/Sema/SemaAccess.cpp
  399                                FunctionTemplateDecl *Context,
  400                                FunctionTemplateDecl *Friend) {
  511                                   FunctionTemplateDecl *Friend) {
  519     FunctionTemplateDecl *FTD = (*I)->getPrimaryTemplate();
  558   if (isa<FunctionTemplateDecl>(Friend))
  559     return MatchesFriend(S, EC, cast<FunctionTemplateDecl>(Friend));
 1073         (isa<FunctionTemplateDecl>(D) &&
 1075                 cast<FunctionTemplateDecl>(D)->getTemplatedDecl()))) {
tools/clang/lib/Sema/SemaCUDA.cpp
  788                                   const FunctionTemplateDecl &TD) {
tools/clang/lib/Sema/SemaCXXScopeSpec.cpp
  943       isa<FunctionTemplateDecl>(TD) || isa<VarTemplateDecl>(TD)) {
tools/clang/lib/Sema/SemaCodeComplete.cpp
 1050   if (const auto *Tmpl = dyn_cast<FunctionTemplateDecl>(ND))
 1050   if (const auto *Tmpl = dyn_cast<FunctionTemplateDecl>(ND))
 1430          !isa<FunctionTemplateDecl>(ND) && !isa<ObjCPropertyDecl>(ND);
 1496   return isa<ValueDecl>(ND) || isa<FunctionTemplateDecl>(ND) ||
 3367   if (const FunctionTemplateDecl *FunTmpl =
 3368           dyn_cast<FunctionTemplateDecl>(ND)) {
 5225     } else if (auto *FTD = dyn_cast<FunctionTemplateDecl>(C)) {
 5225     } else if (auto *FTD = dyn_cast<FunctionTemplateDecl>(C)) {
 5599     else if (const auto *FunTemplDecl = dyn_cast<FunctionTemplateDecl>(ND))
 5599     else if (const auto *FunTemplDecl = dyn_cast<FunctionTemplateDecl>(ND))
tools/clang/lib/Sema/SemaCoroutine.cpp
  264       (Functions.size() == 1 && isa<FunctionTemplateDecl>(*Functions.begin()));
tools/clang/lib/Sema/SemaDecl.cpp
 1092       IsFunctionTemplate = isa<FunctionTemplateDecl>(TD);
 1154   if (isa<TemplateDecl>(FirstDecl) && !isa<FunctionTemplateDecl>(FirstDecl) &&
 1237   if (isa<FunctionTemplateDecl>(TD))
 8587   FunctionTemplateDecl *FunctionTemplate = nullptr;
 8681         FunctionTemplate = FunctionTemplateDecl::Create(Context, DC,
 9272       FunctionTemplateDecl *PrevTemplate =
10358     if (FunctionTemplateDecl *OldTemplateDecl =
10359             dyn_cast<FunctionTemplateDecl>(OldDecl)) {
10361       FunctionTemplateDecl *NewTemplateDecl
10455       if (auto *TD = Guide->getDescribedFunctionTemplate())
13380     if (FunctionTemplateDecl *FTD = FD->getDescribedFunctionTemplate()) {
13382         auto D = cast<FunctionTemplateDecl>(I);
13387             if (FunctionTemplateDecl *FT =
13418     if (auto *TD = Definition->getDescribedFunctionTemplate())
13495   if (FunctionTemplateDecl *FunTmpl = dyn_cast<FunctionTemplateDecl>(D))
13495   if (FunctionTemplateDecl *FunTmpl = dyn_cast<FunctionTemplateDecl>(D))
14019         !isa<FunctionTemplateDecl>(dcl)) {
tools/clang/lib/Sema/SemaDeclCXX.cpp
 1146       if (FunctionTemplateDecl *FTD =
 1147               dyn_cast<FunctionTemplateDecl>(D->getUnderlyingDecl())) {
 3378     if (FunctionTemplateDecl *FunTmpl = dyn_cast<FunctionTemplateDecl>(Member))
 3378     if (FunctionTemplateDecl *FunTmpl = dyn_cast<FunctionTemplateDecl>(Member))
 5726     } else if (isa<FunctionTemplateDecl>(D)) {
 5727       FunctionDecl *FD = cast<FunctionTemplateDecl>(D)->getTemplatedDecl();
 7910   typedef CXXRecordDecl::specific_decl_iterator<FunctionTemplateDecl> tmpl_iter;
 8486       if (FunctionTemplateDecl *FTD = FD->getDescribedFunctionTemplate())
 9106   if (FunctionTemplateDecl *ConversionTemplate
13977                                           FunctionTemplateDecl *TpDecl) {
14037   FunctionTemplateDecl *TpDecl = FnDecl->getDescribedFunctionTemplate();
15102     if (FunctionTemplateDecl *FTD = dyn_cast<FunctionTemplateDecl>(ND))
15102     if (FunctionTemplateDecl *FTD = dyn_cast<FunctionTemplateDecl>(ND))
15209     if (auto *FTD = dyn_cast<FunctionTemplateDecl>(Dcl)) {
15209     if (auto *FTD = dyn_cast<FunctionTemplateDecl>(Dcl)) {
16115   if (FunctionTemplateDecl *FunTmpl = dyn_cast<FunctionTemplateDecl>(MethodD))
16115   if (FunctionTemplateDecl *FunTmpl = dyn_cast<FunctionTemplateDecl>(MethodD))
tools/clang/lib/Sema/SemaExpr.cpp
 2028           if (FunctionTemplateDecl *FTD =
 2029                    dyn_cast<FunctionTemplateDecl>(CD))
 2064                                isa<FunctionTemplateDecl>(UnderlyingND);
 2863     } else if (!isa<FunctionTemplateDecl>(D))
 2912       !R.getAsSingle<FunctionTemplateDecl>() &&
 5012       if (isa<ValueDecl>(ND) || isa<FunctionTemplateDecl>(ND))
12447     } else if (isa<FunctionTemplateDecl>(dcl)) {
13385             return isa<FunctionTemplateDecl>(ND);
tools/clang/lib/Sema/SemaExprCXX.cpp
 2234     if (FunctionTemplateDecl *FnTemplate = dyn_cast<FunctionTemplateDecl>(D)) {
 2234     if (FunctionTemplateDecl *FnTemplate = dyn_cast<FunctionTemplateDecl>(D)) {
 2538       if (FunctionTemplateDecl *FnTmpl =
 2539               dyn_cast<FunctionTemplateDecl>((*D)->getUnderlyingDecl())) {
 3467     if (FunctionTemplateDecl *FnTemplate = dyn_cast<FunctionTemplateDecl>(D)) {
 3467     if (FunctionTemplateDecl *FnTemplate = dyn_cast<FunctionTemplateDecl>(D)) {
 4484       if (isa<FunctionTemplateDecl>(*Op))
 4821         if (isa<FunctionTemplateDecl>(ND->getUnderlyingDecl()))
 4860         if (isa<FunctionTemplateDecl>(ND->getUnderlyingDecl()))
tools/clang/lib/Sema/SemaExprMember.cpp
  610     if (!ND || !(isa<ValueDecl>(ND) || isa<FunctionTemplateDecl>(ND)))
tools/clang/lib/Sema/SemaInit.cpp
 3947         FunctionTemplateDecl *ConvTemplate = dyn_cast<FunctionTemplateDecl>(D);
 3947         FunctionTemplateDecl *ConvTemplate = dyn_cast<FunctionTemplateDecl>(D);
 4542       FunctionTemplateDecl *ConvTemplate = dyn_cast<FunctionTemplateDecl>(D);
 4542       FunctionTemplateDecl *ConvTemplate = dyn_cast<FunctionTemplateDecl>(D);
 5197         FunctionTemplateDecl *ConvTemplate = dyn_cast<FunctionTemplateDecl>(D);
 5197         FunctionTemplateDecl *ConvTemplate = dyn_cast<FunctionTemplateDecl>(D);
 9753       auto *TD = dyn_cast<FunctionTemplateDecl>(D);
 9753       auto *TD = dyn_cast<FunctionTemplateDecl>(D);
tools/clang/lib/Sema/SemaLambda.cpp
  407   FunctionTemplateDecl *const TemplateMethod = TemplateParams ?
  408             FunctionTemplateDecl::Create(Context, Class,
 1383     FunctionTemplateDecl *TemplateCallOperator =
 1385     FunctionTemplateDecl *ConversionTemplate =
 1386                   FunctionTemplateDecl::Create(S.Context, Class,
 1421     FunctionTemplateDecl *TemplateCallOperator =
 1423     FunctionTemplateDecl *StaticInvokerTemplate = FunctionTemplateDecl::Create(
 1423     FunctionTemplateDecl *StaticInvokerTemplate = FunctionTemplateDecl::Create(
tools/clang/lib/Sema/SemaLookup.cpp
  470          isa<FunctionTemplateDecl>(D) || isa<FieldDecl>(D) ||
  489     if (isa<FunctionTemplateDecl>(D))
  567     } else if (isa<FunctionTemplateDecl>(D)) {
 1045     FunctionTemplateDecl *ConvTemplate = dyn_cast<FunctionTemplateDecl>(*U);
 1045     FunctionTemplateDecl *ConvTemplate = dyn_cast<FunctionTemplateDecl>(*U);
 3231     } else if (FunctionTemplateDecl *Tmpl =
 3232                  dyn_cast<FunctionTemplateDecl>(Cand->getUnderlyingDecl())) {
 3425     if (FunctionTemplateDecl *FD = dyn_cast<FunctionTemplateDecl>(D)) {
 3425     if (FunctionTemplateDecl *FD = dyn_cast<FunctionTemplateDecl>(D)) {
 3564           !isa<FunctionTemplateDecl>(Underlying))
 5178     if (FunctionTemplateDecl *FTD = dyn_cast<FunctionTemplateDecl>(D))
 5178     if (FunctionTemplateDecl *FTD = dyn_cast<FunctionTemplateDecl>(D))
 5216     if (FunctionTemplateDecl *FTD = dyn_cast<FunctionTemplateDecl>(ND))
 5216     if (FunctionTemplateDecl *FTD = dyn_cast<FunctionTemplateDecl>(ND))
tools/clang/lib/Sema/SemaOpenMP.cpp
 4727   if (auto *FTD = dyn_cast<FunctionTemplateDecl>(ADecl))
 4727   if (auto *FTD = dyn_cast<FunctionTemplateDecl>(ADecl))
 4971   if (auto *FTD = dyn_cast<FunctionTemplateDecl>(ADecl))
 4971   if (auto *FTD = dyn_cast<FunctionTemplateDecl>(ADecl))
16202       !isa<FunctionTemplateDecl>(ND)) {
16305   if (const auto *FTD = dyn_cast<FunctionTemplateDecl>(D))
16305   if (const auto *FTD = dyn_cast<FunctionTemplateDecl>(D))
16334           isa<FunctionTemplateDecl>(D)) {
tools/clang/lib/Sema/SemaOverload.cpp
 1032         if (!isa<FunctionTemplateDecl>(OldD) &&
 1116   FunctionTemplateDecl *OldTemplate = Old->getDescribedFunctionTemplate();
 1117   FunctionTemplateDecl *NewTemplate = New->getDescribedFunctionTemplate();
 3443         FunctionTemplateDecl *ConvTemplate;
 3444         if ((ConvTemplate = dyn_cast<FunctionTemplateDecl>(D)))
 4482     FunctionTemplateDecl *ConvTemplate
 4483       = dyn_cast<FunctionTemplateDecl>(D);
 5816     FunctionTemplateDecl *ConvTemplate;
 5817     if ((ConvTemplate = dyn_cast<FunctionTemplateDecl>(D)))
 5917     FunctionTemplateDecl *ConvTemplate = dyn_cast<FunctionTemplateDecl>(D);
 5917     FunctionTemplateDecl *ConvTemplate = dyn_cast<FunctionTemplateDecl>(D);
 6573     FunctionTemplateDecl *FunTmpl = dyn_cast<FunctionTemplateDecl>(D);
 6573     FunctionTemplateDecl *FunTmpl = dyn_cast<FunctionTemplateDecl>(D);
 6644   if (FunctionTemplateDecl *TD = dyn_cast<FunctionTemplateDecl>(Decl)) {
 6644   if (FunctionTemplateDecl *TD = dyn_cast<FunctionTemplateDecl>(Decl)) {
 6810     FunctionTemplateDecl *MethodTmpl, DeclAccessPair FoundDecl,
 6876     FunctionTemplateDecl *FunctionTemplate, DeclAccessPair FoundDecl,
 6941     FunctionTemplateDecl *FunctionTemplate, ArrayRef<QualType> ParamTypes,
 7232     FunctionTemplateDecl *FunctionTemplate, DeclAccessPair FoundDecl,
 7388     FunctionTemplateDecl *FunTmpl = dyn_cast<FunctionTemplateDecl>(D);
 7388     FunctionTemplateDecl *FunTmpl = dyn_cast<FunctionTemplateDecl>(D);
 7808       if (isa<FunctionTemplateDecl>(D))
 9152       if (FunctionTemplateDecl *FunTmpl = Cand->Function->getPrimaryTemplate())
 9172           cast<FunctionTemplateDecl>(*I), FoundDecl, ExplicitTemplateArgs, Args,
 9435     if (FunctionTemplateDecl *BetterTemplate
 9707   if (FunctionTemplateDecl *FunTmpl = Fn->getPrimaryTemplate()) {
 9879     if (FunctionTemplateDecl *FunTmpl =
 9880                 dyn_cast<FunctionTemplateDecl>((*I)->getUnderlyingDecl()) ) {
11429   bool AddMatchingTemplateFunction(FunctionTemplateDecl* FunctionTemplate,
11541       if (FunctionTemplateDecl *FunctionTemplate
11542                                         = dyn_cast<FunctionTemplateDecl>(Fn)) {
11847     FunctionTemplateDecl *FunctionTemplate
11848       = cast<FunctionTemplateDecl>((*I)->getUnderlyingDecl());
12003   if (FunctionTemplateDecl *FuncTemplate
12004       = dyn_cast<FunctionTemplateDecl>(Callee)) {
12513     (Functions.size() == 1 && isa<FunctionTemplateDecl>(*Functions.begin()));
13427             cast<FunctionTemplateDecl>(Func), I.getPair(), ActingDC,
13655     if (isa<FunctionTemplateDecl>(D))
tools/clang/lib/Sema/SemaStmt.cpp
 2046   if (FunctionTemplateDecl *FunTmpl = D->getPrimaryTemplate()) {
tools/clang/lib/Sema/SemaTemplate.cpp
   61     if (!AllowFunctionTemplates && isa<FunctionTemplateDecl>(D))
  188         if (isa<FunctionTemplateDecl>(FoundTemplate))
  248     if (isa<FunctionTemplateDecl>(TD)) {
 1760   NamedDecl *transformConstructor(FunctionTemplateDecl *FTD,
 2022     auto *GuideTemplate = FunctionTemplateDecl::Create(
 2022     auto *GuideTemplate = FunctionTemplateDecl::Create(
 2084     auto *FTD = dyn_cast<FunctionTemplateDecl>(D);
 2084     auto *FTD = dyn_cast<FunctionTemplateDecl>(D);
 2106       cast<FunctionTemplateDecl>(
 2967         << (isa<FunctionTemplateDecl>(Template)
 3212   if (!Template || isa<FunctionTemplateDecl>(Template) ||
 3809 void Sema::CheckDeductionGuideTemplate(FunctionTemplateDecl *TD) {
 3857       FnTemplate = dyn_cast_or_null<FunctionTemplateDecl>(Name.getAsTemplateDecl());
 4286     if (!TemplateArgs && !isa<FunctionTemplateDecl>(TD)) {
 7469   else if (isa<FunctionTemplateDecl>(Specialized))
 8341     if (!isa<FunctionTemplateDecl>(D)) {
 8409     if (FunctionTemplateDecl *FunTmpl = dyn_cast<FunctionTemplateDecl>(Ovl)) {
 8409     if (FunctionTemplateDecl *FunTmpl = dyn_cast<FunctionTemplateDecl>(Ovl)) {
 8448               cast<FunctionTemplateDecl>(FunTmpl->getFirstDecl()),
 9600     FunctionTemplateDecl *FunTmpl = dyn_cast<FunctionTemplateDecl>(Prev);
 9600     FunctionTemplateDecl *FunTmpl = dyn_cast<FunctionTemplateDecl>(Prev);
 9745   FunctionTemplateDecl *FunTmpl = Specialization->getPrimaryTemplate();
10434     if (auto *TD = FD->getPrimaryTemplate())
10473   void checkTemplate(TemplDecl *TD) {
tools/clang/lib/Sema/SemaTemplateDeduction.cpp
 1169 static unsigned getFirstInnerIndex(FunctionTemplateDecl *FTD) {
 2599     Sema &S, TemplateDeclT *Template, bool IsDeduced,
 2965                                       FunctionTemplateDecl *FunctionTemplate,
 3283                                      FunctionTemplateDecl *FunctionTemplate,
 3311     FunctionTemplateDecl *FunctionTemplate,
 3523     if (FunctionTemplateDecl *FunTmpl = dyn_cast<FunctionTemplateDecl>(D)) {
 3523     if (FunctionTemplateDecl *FunTmpl = dyn_cast<FunctionTemplateDecl>(D)) {
 3673 hasDeducibleTemplateParameters(Sema &S, FunctionTemplateDecl *FunctionTemplate,
 3809     FunctionTemplateDecl *FunctionTemplate,
 4026     FunctionTemplateDecl *FunctionTemplate,
 4143 Sema::DeduceTemplateArguments(FunctionTemplateDecl *ConversionTemplate,
 4282     FunctionTemplateDecl *FunctionTemplate,
 4715                                      FunctionTemplateDecl *FT1,
 4716                                      FunctionTemplateDecl *FT2,
 4864 static bool isVariadicFunctionTemplate(FunctionTemplateDecl *FunTmpl) {
 4901 FunctionTemplateDecl *
 4902 Sema::getMoreSpecializedTemplate(FunctionTemplateDecl *FT1,
 4903                                  FunctionTemplateDecl *FT2,
 4986   FunctionTemplateDecl *BestTemplate
 4990     FunctionTemplateDecl *Challenger
 5005     FunctionTemplateDecl *Challenger
 5691     ASTContext &Ctx, const FunctionTemplateDecl *FunctionTemplate,
 5705                                     FunctionTemplateDecl *FunctionTemplate,
tools/clang/lib/Sema/SemaTemplateInstantiate.cpp
  156       } else if (FunctionTemplateDecl *FunTmpl
  281     FunctionTemplateDecl *FunctionTemplate,
  548       FunctionTemplateDecl *FnTmpl = cast<FunctionTemplateDecl>(Active->Entity);
  548       FunctionTemplateDecl *FnTmpl = cast<FunctionTemplateDecl>(Active->Entity);
  560       if (FunctionTemplateDecl *FnTmpl =
  561               dyn_cast<FunctionTemplateDecl>(Active->Entity)) {
  901         if (auto *NewTD = NewMD->getDescribedFunctionTemplate())
tools/clang/lib/Sema/SemaTemplateInstantiateDecl.cpp
  273   if (auto *FTD = dyn_cast<FunctionTemplateDecl>(New))
  273   if (auto *FTD = dyn_cast<FunctionTemplateDecl>(New))
  356   if (auto *FTD = dyn_cast<FunctionTemplateDecl>(New))
  356   if (auto *FTD = dyn_cast<FunctionTemplateDecl>(New))
  647 static DeclT *getPreviousDeclForInstantiation(DeclT *D) {
  647 static DeclT *getPreviousDeclForInstantiation(DeclT *D) {
  648   DeclT *Result = D->getPreviousDecl();
 1601 TemplateDeclInstantiator::VisitFunctionTemplateDecl(FunctionTemplateDecl *D) {
 1627   FunctionTemplateDecl *InstTemplate
 1768   FunctionTemplateDecl *FunctionTemplate = D->getDescribedFunctionTemplate();
 1890     FunctionTemplate = FunctionTemplateDecl::Create(SemaRef.Context, DC,
 1949       Previous.addDecl(cast<FunctionTemplateDecl>(Temp));
 2001     if (FunctionTemplateDecl *FT = Function->getDescribedFunctionTemplate())
 2071   FunctionTemplateDecl *FunctionTemplate = D->getDescribedFunctionTemplate();
 2199     FunctionTemplate = FunctionTemplateDecl::Create(SemaRef.Context, Record,
 2268       Previous.addDecl(cast<FunctionTemplateDecl>(Temp));
 4041     if (FunctionTemplateDecl *FunTmpl
 4042           = dyn_cast<FunctionTemplateDecl>(ActiveInst.Entity)) {
 4129 Sema::InstantiateFunctionDeclaration(FunctionTemplateDecl *FTD,
 5079 static bool isInstantiationOf(FunctionTemplateDecl *Pattern,
 5080                               FunctionTemplateDecl *Instance) {
 5229   if (auto *Temp = dyn_cast<FunctionTemplateDecl>(Other))
 5229   if (auto *Temp = dyn_cast<FunctionTemplateDecl>(Other))
 5230     return isInstantiationOf(cast<FunctionTemplateDecl>(D), Temp);
tools/clang/lib/Sema/SemaTemplateVariadic.cpp
   47         auto *FTD = FD ? FD->getDescribedFunctionTemplate() : nullptr;
tools/clang/lib/Serialization/ASTReader.cpp
 7649     if (auto *Template = FD->getPrimaryTemplate())
11461         FunctionTemplateDecl *FirstTemplate =
11462             cast<FunctionTemplateDecl>(FirstDecl);
11463         FunctionTemplateDecl *SecondTemplate =
11464             cast<FunctionTemplateDecl>(SecondDecl);
tools/clang/lib/Serialization/ASTReaderDecl.cpp
  144     T *ReadDeclAs() {
  145       return Record.readDeclAs<T>();
  264     void AddLazySpecializations(T *D,
  390     void VisitFunctionTemplateDecl(FunctionTemplateDecl *D);
  893     FD->setDescribedFunctionTemplate(ReadDeclAs<FunctionTemplateDecl>());
  905     auto *Template = ReadDeclAs<FunctionTemplateDecl>();
  905     auto *Template = ReadDeclAs<FunctionTemplateDecl>();
  955       auto *CanonTemplate = ReadDeclAs<FunctionTemplateDecl>();
  955       auto *CanonTemplate = ReadDeclAs<FunctionTemplateDecl>();
  964       FunctionTemplateDecl::Common *CommonPtr = CanonTemplate->getCommonPtr();
 2189 void ASTDeclReader::VisitFunctionTemplateDecl(FunctionTemplateDecl *D) {
 3751     D = FunctionTemplateDecl::CreateDeserialized(Context, ID);
 4026   else if (auto *FTD = dyn_cast<FunctionTemplateDecl>(D))
 4026   else if (auto *FTD = dyn_cast<FunctionTemplateDecl>(D))
tools/clang/lib/Serialization/ASTWriter.cpp
 6367       !isa<FunctionTemplateDecl>(D))
 6601 void ASTWriter::AddedCXXTemplateSpecialization(const FunctionTemplateDecl *TD,
tools/clang/lib/Serialization/ASTWriterDecl.cpp
  109     void VisitFunctionTemplateDecl(FunctionTemplateDecl *D);
  198     ArrayRef<Decl> getPartialSpecializations(FunctionTemplateDecl::Common *) {
  203     void AddTemplateSpecializations(DeclTy *D) {
 1599 void ASTDeclWriter::VisitFunctionTemplateDecl(FunctionTemplateDecl *D) {
tools/clang/lib/StaticAnalyzer/Checkers/IteratorChecker.cpp
  516     const auto *Templ = Func->getPrimaryTemplate();
tools/clang/tools/extra/clang-move/Move.cpp
  165     if (const auto *FTD = FD->getDescribedFunctionTemplate())
  250       if (const auto *FTD = CMD->getDescribedFunctionTemplate())
tools/clang/tools/extra/clang-tidy/bugprone/ForwardingReferenceOverloadCheck.cpp
   99   const FunctionTemplateDecl *FuncTemplate =
tools/clang/tools/extra/clang-tidy/bugprone/MoveForwardingReferenceCheck.cpp
  109   const FunctionTemplateDecl *FuncTemplate =
tools/clang/tools/extra/clang-tidy/misc/UnusedUsingDeclsCheck.cpp
   49          isa<FunctionTemplateDecl>(TargetDecl) || isa<EnumDecl>(TargetDecl) ||
  116       if (const auto *FDT = FD->getPrimaryTemplate())
tools/clang/tools/extra/clang-tidy/readability/InconsistentDeclarationParameterNameCheck.cpp
  173   const FunctionTemplateDecl *PrimaryTemplate =
tools/clang/tools/extra/clangd/Quality.cpp
  162   if (const auto *TP = dyn_cast<FunctionTemplateDecl>(ND))
  162   if (const auto *TP = dyn_cast<FunctionTemplateDecl>(ND))
tools/clang/tools/extra/clangd/refactor/tweaks/DefineInline.cpp
  254   if (auto *FTD = FD->getDescribedFunctionTemplate())
tools/clang/tools/extra/clangd/unittests/FindTargetTests.cpp
  531     if (auto *T = llvm::dyn_cast<FunctionTemplateDecl>(TestDecl))
tools/clang/tools/extra/modularize/Modularize.cpp
  623         isa<FunctionDecl>(ND) || isa<FunctionTemplateDecl>(ND) ||
tools/clang/tools/libclang/CIndex.cpp
  927 bool CursorVisitor::VisitFunctionTemplateDecl(FunctionTemplateDecl *D) {
 4983   if (const FunctionTemplateDecl *FunTmpl = dyn_cast<FunctionTemplateDecl>(D))
 4983   if (const FunctionTemplateDecl *FunTmpl = dyn_cast<FunctionTemplateDecl>(D))
 6355     if (cast<FunctionTemplateDecl>(D)->getTemplatedDecl()->getBody(Def))
 8006     if (FunctionTemplateDecl *FunTmpl = FD->getDescribedFunctionTemplate())
tools/clang/tools/libclang/CXIndexDataConsumer.cpp
  135   bool VisitFunctionTemplateDecl(const FunctionTemplateDecl *D) {
  872 bool CXIndexDataConsumer::handleFunctionTemplate(const FunctionTemplateDecl *D) {
 1043     if (FunctionTemplateDecl *TemplD = FD->getDescribedFunctionTemplate())
 1061   } else if (const FunctionTemplateDecl *
 1062           FuncTempl = dyn_cast<FunctionTemplateDecl>(D)) {
tools/clang/tools/libclang/CXIndexDataConsumer.h
  410   bool handleFunctionTemplate(const FunctionTemplateDecl *D);
tools/clang/tools/libclang/CXType.cpp
  243     if (const FunctionTemplateDecl *FTD = dyn_cast<FunctionTemplateDecl>(D))
  243     if (const FunctionTemplateDecl *FTD = dyn_cast<FunctionTemplateDecl>(D))
tools/clang/tools/libclang/CursorVisitor.h
  217   bool VisitFunctionTemplateDecl(FunctionTemplateDecl *D);
tools/clang/unittests/AST/ASTImporterFixtures.h
  174   template <class DeclT> DeclT *Import(DeclT *From, Language Lang) {
  174   template <class DeclT> DeclT *Import(DeclT *From, Language Lang) {
  175     return cast_or_null<DeclT>(Import(cast<Decl>(From), Lang));
tools/clang/unittests/AST/ASTImporterGenericRedeclTest.cpp
   46   using DeclTy = FunctionTemplateDecl;
  145         auto *TemplateD = FirstDeclMatcher<FunctionTemplateDecl>().match(
  160     auto *FromD = FirstDeclMatcher<DeclTy>().match(FromTU, getPattern());
  167     auto *ToD = LastDeclMatcher<DeclTy>().match(ToTU, getPattern());
  177     auto *FromD = FirstDeclMatcher<DeclTy>().match(FromTU, getPattern());
  184     auto *ToD = LastDeclMatcher<DeclTy>().match(ToTU, getPattern());
  193     auto *From0 = FirstDeclMatcher<DeclTy>().match(FromTU, getPattern());
  194     auto *From1 = LastDeclMatcher<DeclTy>().match(FromTU, getPattern());
  203     auto *To0 = FirstDeclMatcher<DeclTy>().match(ToTU, getPattern());
  204     auto *To1 = LastDeclMatcher<DeclTy>().match(ToTU, getPattern());
  215     auto *FromProto = FirstDeclMatcher<DeclTy>().match(FromTU, getPattern());
  216     auto *FromDef = LastDeclMatcher<DeclTy>().match(FromTU, getPattern());
  225     auto *ToProto = FirstDeclMatcher<DeclTy>().match(ToTU, getPattern());
  226     auto *ToDef = LastDeclMatcher<DeclTy>().match(ToTU, getPattern());
  237     auto *FromDef = FirstDeclMatcher<DeclTy>().match(FromTU, getPattern());
  238     auto *FromProto = LastDeclMatcher<DeclTy>().match(FromTU, getPattern());
  247     auto *ToDef = FirstDeclMatcher<DeclTy>().match(ToTU, getPattern());
  248     auto *ToProto = LastDeclMatcher<DeclTy>().match(ToTU, getPattern());
  260     auto *From0 = FirstDeclMatcher<DeclTy>().match(FromTU0, getPattern());
  261     auto *From1 = FirstDeclMatcher<DeclTy>().match(FromTU1, getPattern());
  270     auto *To0 = FirstDeclMatcher<DeclTy>().match(ToTU, getPattern());
  271     auto *To1 = LastDeclMatcher<DeclTy>().match(ToTU, getPattern());
  283     auto *From0 = FirstDeclMatcher<DeclTy>().match(FromTU0, getPattern());
  284     auto *From1 = FirstDeclMatcher<DeclTy>().match(FromTU1, getPattern());
  294     auto *To0 = FirstDeclMatcher<DeclTy>().match(ToTU, getPattern());
  305     auto *FromDef = FirstDeclMatcher<DeclTy>().match(FromTUDef, getPattern());
  306     auto *FromProto =
  317     auto *ToDef = FirstDeclMatcher<DeclTy>().match(ToTU, getPattern());
  318     auto *ToProto = LastDeclMatcher<DeclTy>().match(ToTU, getPattern());
  330     auto *FromProto =
  332     auto *FromDef = FirstDeclMatcher<DeclTy>().match(FromTUDef, getPattern());
  342     auto *ToProto = FirstDeclMatcher<DeclTy>().match(ToTU, getPattern());
  343     auto *ToDef = LastDeclMatcher<DeclTy>().match(ToTU, getPattern());
  354     auto *FromD = // Definition
  369       auto *FromD = FirstDeclMatcher<DeclTy>().match(FromTU, getPattern());
  375       auto *FromD = FirstDeclMatcher<DeclTy>().match(FromTU, getPattern());
tools/clang/unittests/AST/ASTImporterODRStrategiesTest.cpp
  111   using DeclTy = FunctionTemplateDecl;
  253     auto *ToD = FirstDeclMatcher<DeclTy>().match(ToTU, getPattern());
  256     auto *FromD = FirstDeclMatcher<DeclTy>().match(FromTU, getPattern());
tools/clang/unittests/AST/ASTImporterTest.cpp
 1190   auto To = cast<FunctionTemplateDecl>(Import(From, Lang_CXX));
 2431   auto *FromD1 = FirstDeclMatcher<FunctionTemplateDecl>().match(
 2433   auto *ToD1 = Import(FromD1, Lang_CXX);
 2435   auto *FromD2 = FirstDeclMatcher<FunctionTemplateDecl>().match(
 2437   auto *ToD2 = Import(FromD2, Lang_CXX);
 2453   auto *FromD1 = FirstDeclMatcher<FunctionTemplateDecl>().match(
 2455   auto *ToD1 = Import(FromD1, Lang_CXX);
 2457   auto *FromD2 = FirstDeclMatcher<FunctionTemplateDecl>().match(
 2459   auto *ToD2 = Import(FromD2, Lang_CXX);
 4135     auto *TemplateD = FirstDeclMatcher<FunctionTemplateDecl>().match(
 4149     auto *TemplateD = FirstDeclMatcher<FunctionTemplateDecl>().match(
 4690   auto *F = FirstDeclMatcher<FunctionTemplateDecl>().match(
 4837   auto *Friend = FirstDeclMatcher<FunctionTemplateDecl>().match(
 4845   auto *FromFoo = FirstDeclMatcher<FunctionTemplateDecl>().match(
 4847   auto *Imported = Import(FromFoo, Lang_CXX);
tools/clang/unittests/AST/ASTImporterVisibilityTest.cpp
   47   using DeclTy = FunctionTemplateDecl;
  104     auto *FromD0 = FirstDeclMatcher<DeclTy>().match(FromTu, Pattern);
  105     auto *FromD1 = LastDeclMatcher<DeclTy>().match(FromTu, Pattern);
  107     auto *ToD0 = Import(FromD0, Lang_CXX14);
  108     auto *ToD1 = Import(FromD1, Lang_CXX14);
  195     auto *ToD0 = FirstDeclMatcher<DeclTy>().match(ToTu, getPattern());
  196     auto *FromD1 = FirstDeclMatcher<DeclTy>().match(FromTu, getPattern());
  198     auto *ToD1 = Import(FromD1, Lang_CXX14);
  215     auto *FromD0 = FirstDeclMatcher<DeclTy>().match(FromTu0, getPattern());
  216     auto *FromD1 = FirstDeclMatcher<DeclTy>().match(FromTu1, getPattern());
  217     auto *ToD0 = Import(FromD0, Lang_CXX14);
  218     auto *ToD1 = Import(FromD1, Lang_CXX14);
tools/clang/unittests/AST/DeclMatcher.h
   22   NodeType *Node = nullptr;
   26       Node = const_cast<NodeType *>(Result.Nodes.getNodeAs<NodeType>(""));
   32   NodeType *match(const Decl *D, const MatcherType &AMatcher) {
   47   using UnaryPredicate = std::function<bool(const NodeType *)>;
   51     if (auto N = Result.Nodes.getNodeAs<NodeType>("")) {
tools/clang/unittests/AST/StructuralEquivalenceTest.cpp
   25   std::tuple<NodeType *, NodeType *> makeDecls(
   25   std::tuple<NodeType *, NodeType *> makeDecls(
   37     NodeType *D0 = FirstDeclMatcher<NodeType>().match(
   39     NodeType *D1 = FirstDeclMatcher<NodeType>().match(
   63   std::tuple<NodeType *, NodeType *> makeDecls(
   63   std::tuple<NodeType *, NodeType *> makeDecls(
   66     return makeDecls<NodeType, MatcherType>(
 1027   auto t = makeDecls<FunctionTemplateDecl>(Code, Code, Lang_CXX11,
 1045   auto t = makeDecls<FunctionTemplateDecl>(Code + R"(
 1080   auto t = makeDecls<FunctionTemplateDecl>(Code, Code, Lang_CXX11,
 1098   auto t = makeDecls<FunctionTemplateDecl>(Code + R"(
 1127   auto t = makeDecls<FunctionTemplateDecl>(Code + R"(
tools/lldb/include/lldb/Symbol/ClangASTContext.h
  284   clang::FunctionTemplateDecl *
  290       clang::FunctionDecl *func_decl, clang::FunctionTemplateDecl *Template,
tools/lldb/source/Plugins/ExpressionParser/Clang/ClangExpressionDeclMap.cpp
 1924           clang::FunctionTemplateDecl *function_template =
 1926           clang::FunctionTemplateDecl *copied_function_template =
 1927               llvm::dyn_cast_or_null<clang::FunctionTemplateDecl>(
tools/lldb/source/Plugins/SymbolFile/DWARF/DWARFASTParserClang.cpp
 1112             clang::FunctionTemplateDecl *func_template_decl =
tools/lldb/source/Symbol/ClangASTContext.cpp
 1486 clang::FunctionTemplateDecl *ClangASTContext::CreateFunctionTemplateDecl(
 1496   FunctionTemplateDecl *func_tmpl_decl = FunctionTemplateDecl::Create(
 1496   FunctionTemplateDecl *func_tmpl_decl = FunctionTemplateDecl::Create(
 1510     FunctionDecl *func_decl, clang::FunctionTemplateDecl *func_tmpl_decl,
usr/include/c++/7.4.0/type_traits
  215     : public __is_void_helper<typename remove_cv<_Tp>::type>::type
  581     : public __or_<is_lvalue_reference<_Tp>,
  582                    is_rvalue_reference<_Tp>>::type
  601     : public __not_<__or_<is_function<_Tp>, is_reference<_Tp>,
  601     : public __not_<__or_<is_function<_Tp>, is_reference<_Tp>,
  602                           is_void<_Tp>>>::type
  638     : public __or_<is_object<_Tp>, is_reference<_Tp>>::type
  638     : public __or_<is_object<_Tp>, is_reference<_Tp>>::type
 1554     { typedef _Tp     type; };
 1558     { typedef _Tp     type; };
 1563     { typedef _Tp     type; };
 1574       remove_const<typename remove_volatile<_Tp>::type>::type     type;
 1580     { typedef _Tp const     type; };
 1629     { typedef _Tp   type; };
 1983     { typedef _Up     type; };
 1999     { typedef typename remove_reference<_Tp>::type*     type; };
 2003     : public __add_pointer_helper<_Tp>
utils/unittest/googletest/include/gtest/gtest-printers.h
  407                     T* p, ::std::ostream* os) {
  416     if (IsTrue(ImplicitlyConvertible<T*, const void*>::value)) {