|
reference, declaration → definition
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)) {