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

Derived Classes

tools/clang/include/clang/AST/DeclCXX.h
 1847 class CXXDeductionGuideDecl : public FunctionDecl {
 1905 class CXXMethodDecl : public FunctionDecl {

Declarations

gen/tools/clang/include/clang/AST/DeclNodes.inc
  395 FUNCTION(Function, DeclaratorDecl)
tools/clang/include/clang/AST/ASTConsumer.h
   27   class FunctionDecl;
tools/clang/include/clang/AST/ASTMutationListener.h
   26   class FunctionDecl;
tools/clang/include/clang/AST/Attr.h
   41 class FunctionDecl;
tools/clang/include/clang/AST/DeclBase.h
   48 class FunctionDecl;
tools/clang/include/clang/AST/Mangle.h
   32   class FunctionDecl;
tools/clang/include/clang/AST/Type.h
  108 class FunctionDecl;
tools/clang/include/clang/Analysis/Analyses/Consumed.h
   34 class FunctionDecl;
tools/clang/include/clang/Analysis/Analyses/ThreadSafety.h
   27 class FunctionDecl;
tools/clang/include/clang/Analysis/BodyFarm.h
   25 class FunctionDecl;
tools/clang/include/clang/Analysis/CodeInjector.h
   22 class FunctionDecl;
tools/clang/include/clang/Analysis/DomainSpecific/CocoaConventions.h
   20 class FunctionDecl;
tools/clang/include/clang/Analysis/ProgramPoint.h
   33 class FunctionDecl;
tools/clang/include/clang/CrossTU/CrossTranslationUnit.h
   31 class FunctionDecl;
tools/clang/include/clang/Sema/AnalysisBasedWarnings.h
   22 class FunctionDecl;
tools/clang/include/clang/Sema/CodeCompleteConsumer.h
   41 class FunctionDecl;
tools/clang/include/clang/Sema/Sema.h
  122   class FunctionDecl;
tools/clang/include/clang/Sema/Template.h
   37 class FunctionDecl;
tools/clang/include/clang/Serialization/ASTReader.h
   93 class FunctionDecl;
tools/clang/include/clang/Serialization/ASTWriter.h
   70 class FunctionDecl;
tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/SValBuilder.h
   41 class FunctionDecl;
tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/SVals.h
   39 class FunctionDecl;
tools/clang/lib/ARCMigrate/Transforms.h
   22   class FunctionDecl;
tools/clang/lib/AST/Interp/Context.h
   28 class FunctionDecl;
tools/clang/lib/AST/Interp/EvalEmitter.h
   26 class FunctionDecl;
tools/clang/lib/AST/Interp/Frame.h
   20 class FunctionDecl;
tools/clang/lib/AST/Interp/Program.h
   31 class FunctionDecl;
tools/clang/lib/CodeGen/CGCall.h
   37   class FunctionDecl;
tools/clang/lib/CodeGen/CGCleanup.h
   30 class FunctionDecl;
tools/clang/lib/CodeGen/CodeGenFunction.h
   62 class FunctionDecl;
tools/clang/lib/CodeGen/CodeGenModule.h
   54 class FunctionDecl;
tools/lldb/include/lldb/Core/ClangForward.h
   63 class FunctionDecl;
tools/lldb/source/Plugins/SymbolFile/NativePDB/PdbAstBuilder.h
   25 class FunctionDecl;

References

gen/tools/clang/include/clang/AST/Attrs.inc
 3409 FunctionDecl * functionDecl;
 3412   static CleanupAttr *CreateImplicit(ASTContext &Ctx, FunctionDecl * FunctionDecl, const AttributeCommonInfo &CommonInfo = {SourceRange{}}) {
 3420   static CleanupAttr *Create(ASTContext &Ctx, FunctionDecl * FunctionDecl, const AttributeCommonInfo &CommonInfo = {SourceRange{}}) {
 3427   static CleanupAttr *CreateImplicit(ASTContext &Ctx, FunctionDecl * FunctionDecl, SourceRange Range, AttributeCommonInfo::Syntax Syntax) {
 3431   static CleanupAttr *Create(ASTContext &Ctx, FunctionDecl * FunctionDecl, SourceRange Range, AttributeCommonInfo::Syntax Syntax) {
 3436               , FunctionDecl * FunctionDecl
 3447   FunctionDecl * getFunctionDecl() const {
gen/tools/clang/include/clang/Sema/AttrParsedAttrImpl.inc
   26   if (!D || (!isa<FunctionDecl>(D))) {
   39   if (!D || (!isa<FunctionDecl>(D))) {
   52   if (!D || (!isa<FunctionDecl>(D))) {
   65   if (!D || (!isa<FunctionDecl>(D))) {
   83   if (!D || (!isa<FunctionDecl>(D))) {
  107   if (!D || (!isStruct(D) && !isa<VarDecl>(D) && !isa<FunctionDecl>(D) && !isa<NamespaceDecl>(D))) {
  123   if (!D || (!isa<FunctionDecl>(D))) {
  186   if (!D || (!isa<FunctionDecl>(D) && !isGlobalVar(D))) {
  254   if (!D || (!isa<FunctionDecl>(D))) {
  280   if (!D || (!isa<FunctionDecl>(D))) {
  384   if (!D || (!isa<FunctionDecl>(D))) {
  402   if (const auto *S = dyn_cast<FunctionDecl>(D))
  402   if (const auto *S = dyn_cast<FunctionDecl>(D))
  417   if (!D || (!isa<FunctionDecl>(D))) {
  446   if (!D || (!isa<FunctionDecl>(D))) {
  455   if (!D || (!isa<FunctionDecl>(D))) {
  464   if (!D || (!isa<ObjCMethodDecl>(D) && !isa<FunctionDecl>(D))) {
  505   if (!D || (!isa<FunctionDecl>(D))) {
  531   if (!D || (!isa<FunctionDecl>(D))) {
  544   if (!D || (!isa<FunctionDecl>(D))) {
  557   if (!D || (!isa<FunctionDecl>(D))) {
  570   if (!D || (!isa<FunctionDecl>(D))) {
  605   if (!D || (!isa<FunctionDecl>(D) && !isa<VarDecl>(D))) {
  619   if (!D || (!isa<FunctionDecl>(D))) {
  632   if (!D || (!isa<FunctionDecl>(D))) {
  645   if (!D || (!isa<FunctionDecl>(D))) {
  681   if (!D || (!isa<FunctionDecl>(D))) {
  707   if (!D || (!isa<FunctionDecl>(D))) {
  754   if (!D || (!isa<ParmVarDecl>(D) && !isa<ObjCMethodDecl>(D) && !isa<FunctionDecl>(D))) {
  784   if (!D || (!isa<FunctionDecl>(D) && !isa<CXXRecordDecl>(D))) {
  793   if (!D || (!isa<FunctionDecl>(D))) {
  859   if (!D || (!isa<FunctionDecl>(D))) {
  911   if (!D || (!isa<FunctionDecl>(D))) {
  924   if (!D || (!isa<FunctionDecl>(D) && !isa<VarDecl>(D) && !isa<CXXRecordDecl>(D) && !isa<ObjCInterfaceDecl>(D))) {
  945   if (!D || (!isa<FunctionDecl>(D))) {
  954   if (!D || (!isa<FunctionDecl>(D) && !isa<VarDecl>(D) && !isa<CXXRecordDecl>(D) && !isa<ObjCInterfaceDecl>(D))) {
  970   if (!D || (!isa<FunctionDecl>(D))) {
  979   if (!D || (!isa<FunctionDecl>(D))) {
  992   if (!D || (!isa<FunctionDecl>(D) && !isa<ObjCMethodDecl>(D) && !isa<ObjCPropertyDecl>(D))) {
 1001   if (!D || (!isa<FunctionDecl>(D) && !isa<ObjCMethodDecl>(D))) {
 1029   if (!D || (!isa<FunctionDecl>(D))) {
 1055   if (!D || (!isa<VarDecl>(D) && !isa<FunctionDecl>(D) && !isa<CXXRecordDecl>(D))) {
 1070   if (!D || (!isa<FunctionDecl>(D))) {
 1128   if (!D || (!isa<FunctionDecl>(D))) {
 1159   if (!D || (!isa<FunctionDecl>(D))) {
 1212   if (!D || (!isa<FunctionDecl>(D))) {
 1244   if (!D || (!isa<FunctionDecl>(D))) {
 1275   if (!D || (!isa<VarDecl>(D) && !isa<FunctionDecl>(D) && !isa<CXXRecordDecl>(D))) {
 1312   if (const auto *S = dyn_cast<FunctionDecl>(D))
 1312   if (const auto *S = dyn_cast<FunctionDecl>(D))
 1327   if (!D || (!isa<FunctionDecl>(D))) {
 1349   if (!D || (!isa<FunctionDecl>(D))) {
 1380   if (!D || (!isa<FunctionDecl>(D) && !isa<ObjCMethodDecl>(D) && !isa<BlockDecl>(D))) {
 1395   if (!D || (!isa<FunctionDecl>(D))) {
 1455   if (!D || (!isa<FunctionDecl>(D))) {
 1473   if (!D || (!isa<FunctionDecl>(D) && !isa<ObjCMethodDecl>(D))) {
 1487   if (!D || (!isa<FunctionDecl>(D))) {
 1500   if (!D || (!isa<FunctionDecl>(D))) {
 1513   if (!D || (!isa<FunctionDecl>(D))) {
 1551   if (!D || (!isa<FunctionDecl>(D))) {
 1619   if (!D || (!isa<FunctionDecl>(D))) {
 1632   if (!D || (!isa<FunctionDecl>(D))) {
 1689   if (!D || (!isa<FunctionDecl>(D))) {
 1715   if (!D || (!isa<FunctionDecl>(D))) {
 1728   if (!D || (!isa<FunctionDecl>(D))) {
 1741   if (!D || (!isa<FunctionDecl>(D))) {
 1754   if (!D || (!isa<FunctionDecl>(D))) {
 1767   if (!D || (!isa<FunctionDecl>(D) && !isa<ObjCMethodDecl>(D) && !isGlobalVar(D))) {
 1782   if (!D || (!isa<FunctionDecl>(D) && !isGlobalVar(D))) {
 1796   if (!D || (!isa<FunctionDecl>(D) && !isa<ObjCMethodDecl>(D))) {
 1810   if (!D || (!isa<FunctionDecl>(D))) {
 1823   if (!D || (!isa<FunctionDecl>(D))) {
 1836   if (!D || (!isa<FunctionDecl>(D))) {
 1891   if (!D || (!isa<FunctionDecl>(D))) {
 1932   if (!D || (!isa<FunctionDecl>(D) && !isa<ObjCMethodDecl>(D) && !isa<ObjCPropertyDecl>(D) && !isa<ParmVarDecl>(D))) {
 1948   if (!D || (!isa<FunctionDecl>(D) && !isa<ObjCMethodDecl>(D) && !isa<ObjCPropertyDecl>(D) && !isa<ParmVarDecl>(D))) {
 2104   if (!D || (!isNonParmVar(D) && !isa<FunctionDecl>(D) && !isa<BlockDecl>(D) && !isa<ObjCMethodDecl>(D))) {
 2301   if (!D || (!isa<FunctionDecl>(D))) {
 2314   if (!D || (!isa<FunctionDecl>(D))) {
 2345   if (!D || (!isa<FunctionDecl>(D) && !isa<ObjCMethodDecl>(D))) {
 2359   if (!D || (!isa<FunctionDecl>(D))) {
 2523   if (!D || (!isa<FunctionDecl>(D))) {
 2565   if (!D || (!isa<FunctionDecl>(D))) {
 2602   if (!D || (!isa<FunctionDecl>(D))) {
 2624   if (!D || (!isa<FunctionDecl>(D))) {
 2637   if (!D || (!isa<FunctionDecl>(D))) {
 2674   if (!D || (!isa<FunctionDecl>(D))) {
 2705   if (!D || (!isa<FunctionDecl>(D) && !isa<ParmVarDecl>(D))) {
 2719   if (!D || (!isa<ObjCMethodDecl>(D) && !isa<FunctionDecl>(D))) {
 2733   if (!D || (!isa<FunctionDecl>(D))) {
 2759   if (!D || (!isa<FunctionDecl>(D) && !isGlobalVar(D) && !isa<ObjCMethodDecl>(D) && !isa<ObjCPropertyDecl>(D))) {
 2806   if (!D || (!isa<FunctionDecl>(D))) {
 2815   if (!D || (!isa<FunctionDecl>(D) && !isa<ObjCMethodDecl>(D))) {
 2887   if (!D || (!isa<FunctionDecl>(D))) {
 2944   if (!D || (!isa<FunctionDecl>(D))) {
 3017   if (!D || (!isNonLocalVar(D) && !isa<FunctionDecl>(D) && !isa<ObjCMethodDecl>(D))) {
 3057   if (!D || (!isa<FunctionDecl>(D))) {
 3121   if (!D || (!isa<VarDecl>(D) && !isa<FunctionDecl>(D) && !isa<CXXRecordDecl>(D))) {
 3136   if (!D || (!isa<VarDecl>(D) && !isa<FunctionDecl>(D))) {
 3150   if (!D || (!isa<FunctionDecl>(D))) {
 3168   if (!D || (!isa<FunctionDecl>(D))) {
 3181   if (!D || (!isa<FunctionDecl>(D))) {
 3194   if (!D || (!isa<FunctionDecl>(D) && !isa<ObjCMethodDecl>(D))) {
 3232   if (!D || (!isa<FunctionDecl>(D) && !isa<ObjCMethodDecl>(D))) {
 3532     return isa<FunctionDecl>(D);
gen/tools/clang/include/clang/Serialization/AttrPCHRead.inc
  586     FunctionDecl * functionDecl = Record.GetLocalDeclAs<FunctionDecl >(Record.readInt());
  586     FunctionDecl * functionDecl = Record.GetLocalDeclAs<FunctionDecl >(Record.readInt());
include/llvm/ADT/ArrayRef.h
  108         const ArrayRef<U *> &A,
  110            std::is_convertible<U *const *, T const *>::value>::type * = nullptr)
  118       const SmallVectorTemplateCommon<U *, DummyT> &Vec,
  120           std::is_convertible<U *const *, T const *>::value>::type * = nullptr)
include/llvm/ADT/DenseMap.h
  516                             ValueArgs &&... Values) {
include/llvm/ADT/DenseMapInfo.h
   39   static inline T* getEmptyKey() {
   41     Val <<= PointerLikeTypeTraits<T*>::NumLowBitsAvailable;
   45   static inline T* getTombstoneKey() {
   47     Val <<= PointerLikeTypeTraits<T*>::NumLowBitsAvailable;
   51   static unsigned getHashValue(const T *PtrVal) {
   56   static bool isEqual(const T *LHS, const T *RHS) { return LHS == RHS; }
   56   static bool isEqual(const T *LHS, const T *RHS) { return LHS == RHS; }
include/llvm/ADT/STLExtras.h
   75       typename std::add_pointer<typename std::add_const<T>::type>::type;
include/llvm/Support/Casting.h
   34   using SimpleType = From; // The real type this represents...
   37   static SimpleType &getSimplifiedValue(From &Val) { return Val; }
   41   using NonConstSimpleType = typename simplify_type<From>::SimpleType;
   47   static RetType getSimplifiedValue(const From& Val) {
   57   static inline bool doit(const From &Val) {
   58     return To::classof(&Val);
   66   static inline bool doit(const From &) { return true; }
   76   static inline bool doit(const From &Val) {
   77     return isa_impl<To, From>::doit(Val);
   77     return isa_impl<To, From>::doit(Val);
  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);
  141 template <class X, class Y> LLVM_NODISCARD inline bool isa(const Y &Val) {
  142   return isa_impl_wrap<X, const Y,
  142   return isa_impl_wrap<X, const Y,
  143                        typename simplify_type<const Y>::SimpleType>::doit(Val);
  168   using ret_type = const To &; // Normal case, return Ty&
  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) {
  258   return cast_convert_val<X, Y,
  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
  305 LLVM_NODISCARD inline typename cast_retty<X, Y *>::ret_type
  306 cast_or_null(Y *Val) {
  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
  366 LLVM_NODISCARD inline typename cast_retty<X, Y *>::ret_type
  367 dyn_cast_or_null(Y *Val) {
  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 };
   91   typedef PointerLikeTypeTraits<T *> NonConst;
   93   static inline const void *getAsVoidPointer(const T *P) {
   96   static inline const T *getFromVoidPointer(const void *P) {
include/llvm/Support/type_traits.h
   55 struct add_const_past_pointer { using type = const T; };
tools/clang/examples/AnnotateFunctions/AnnotateFunctions.cpp
   33       if (FunctionDecl *FD = dyn_cast<FunctionDecl>(D))
   33       if (FunctionDecl *FD = dyn_cast<FunctionDecl>(D))
tools/clang/examples/PrintFunctionNames/PrintFunctionNames.cpp
   59       bool VisitFunctionDecl(FunctionDecl *FD) {
   66       std::set<FunctionDecl*> LateParsedDecls;
   70     for (const FunctionDecl *FD : v.LateParsedDecls) {
tools/clang/include/clang/AST/ASTConsumer.h
   57   virtual void HandleInlineFunctionDefinition(FunctionDecl *D) {}
   82   virtual void HandleCXXImplicitFunctionInstantiation(FunctionDecl *D) {}
tools/clang/include/clang/AST/ASTContext.h
  397   FunctionDecl *cudaConfigureCallDecl = nullptr;
 1200   void adjustDeducedFunctionResultType(FunctionDecl *FD, QualType ResultType);
 1215   void adjustExceptionSpec(FunctionDecl *FD,
 1277   void setcudaConfigureCallDecl(FunctionDecl *FD) {
 1281   FunctionDecl *getcudaConfigureCallDecl() {
 1822   std::string getObjCEncodingForFunctionDecl(const FunctionDecl *Decl) const;
 1933   bool canBuiltinBeRedeclared(const FunctionDecl *) const;
 2776   GVALinkage GetGVALinkageForFunction(const FunctionDecl *FD) const;
 2790       const FunctionDecl *FD,
 2791       llvm::function_ref<void(FunctionDecl *)> Pred) const;
tools/clang/include/clang/AST/ASTMutationListener.h
   73                                               const FunctionDecl *D) {}
   77   virtual void ResolvedExceptionSpec(const FunctionDecl *FD) {}
   80   virtual void DeducedReturnType(const FunctionDecl *FD, QualType ReturnType);
   84                                       const FunctionDecl *Delete,
   88   virtual void CompletedImplicitDefinition(const FunctionDecl *D) {}
   99   virtual void FunctionDefinitionInstantiated(const FunctionDecl *D) {}
tools/clang/include/clang/AST/ASTNodeTraverser.h
   93       if (!isa<FunctionDecl>(*D) && !isa<ObjCMethodDecl>(*D)) {
  356   void VisitFunctionDecl(const FunctionDecl *D) {
  429   void dumpTemplateDeclSpecialization(const SpecializationDecl *D) {
  430     for (const auto *RedeclWithBadType : D->redecls()) {
  434       auto *Redecl = dyn_cast<SpecializationDecl>(RedeclWithBadType);
  453     for (const auto *Child : D->specializations())
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);
  174   struct KindToKindId<const T> : KindToKindId<T> {};
  174   struct KindToKindId<const T> : KindToKindId<T> {};
  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/Attr.h
  243     if (const auto *FD = dyn_cast<FunctionDecl>(D))
  243     if (const auto *FD = dyn_cast<FunctionDecl>(D))
tools/clang/include/clang/AST/Decl.h
 1787                      public Redeclarable<FunctionDecl> {
 1881   void setInstantiationOfMemberFunction(ASTContext &C, FunctionDecl *FD,
 1903   using redeclarable_base = Redeclarable<FunctionDecl>;
 1905   FunctionDecl *getNextRedeclarationImpl() override {
 1909   FunctionDecl *getPreviousDeclImpl() override {
 1913   FunctionDecl *getMostRecentDeclImpl() override {
 1931   static FunctionDecl *
 1938     return FunctionDecl::Create(C, DC, StartLoc, NameInfo, T, TInfo, SC,
 1943   static FunctionDecl *Create(ASTContext &C, DeclContext *DC,
 1950   static FunctionDecl *CreateDeserialized(ASTContext &C, unsigned ID);
 1982   bool hasBody(const FunctionDecl *&Definition) const;
 1985     const FunctionDecl* Definition;
 1998   bool isDefined(const FunctionDecl *&Definition) const;
 2001     const FunctionDecl* Definition;
 2006   FunctionDecl *getDefinition() {
 2007     const FunctionDecl *Definition;
 2012   const FunctionDecl *getDefinition() const {
 2022   Stmt *getBody(const FunctionDecl *&Definition) const;
 2025     const FunctionDecl* Definition;
 2316   void setPreviousDeclaration(FunctionDecl * PrevDecl);
 2318   FunctionDecl *getCanonicalDecl() override;
 2319   const FunctionDecl *getCanonicalDecl() const {
 2475   FunctionDecl *getInstantiatedFromMemberFunction() const;
 2487   void setInstantiationOfMemberFunction(FunctionDecl *FD,
 2531   FunctionDecl *getTemplateInstantiationPattern() const;
 2641   static DeclContext *castToDeclContext(const FunctionDecl *D) {
 2644   static FunctionDecl *castFromDeclContext(const DeclContext *DC) {
 4406     decl_type *MostRecent = First->getNextRedeclaration();
 4407     RedeclLink = PreviousDeclLink(cast<decl_type>(MostRecent));
tools/clang/include/clang/AST/DeclBase.h
 1030   FunctionDecl *getAsFunction() LLVM_READONLY;
 1032   const FunctionDecl *getAsFunction() const {
 2474   static const ToTy *doit(const DeclContext *Val) {
 2478   static ToTy *doit(DeclContext *Val) {
 2491     return To::classofKind(Val.getDeclKind());
 2514   static const ToTy *doit(const ::clang::DeclContext *Val) {
 2515     return ::clang::cast_convert_decl_context<ToTy>::doit(Val);
 2521   static ToTy *doit(::clang::DeclContext *Val) {
 2522     return ::clang::cast_convert_decl_context<ToTy>::doit(Val);
 2536   static ::clang::DeclContext *doit(const FromTy *Val) {
 2537     return FromTy::castToDeclContext(Val);
tools/clang/include/clang/AST/DeclCXX.h
 1441   const FunctionDecl *isLocalClass() const {
 1445     return dyn_cast<FunctionDecl>(getDeclContext());
 1448   FunctionDecl *isLocalClass() {
 1828   static ExplicitSpecifier getFromDecl(FunctionDecl *Function);
 1829   static const ExplicitSpecifier getFromDecl(const FunctionDecl *Function) {
 1847 class CXXDeductionGuideDecl : public FunctionDecl {
 1905 class CXXMethodDecl : public FunctionDecl {
 1980       SmallVectorImpl<const FunctionDecl *> &PreventedBy) const;
 2008     if (auto *Pattern = getTemplateInstantiationPattern())
 2635   FunctionDecl *OperatorDelete = nullptr;
 2658   void setOperatorDelete(FunctionDecl *OD, Expr *ThisArg);
 2660   const FunctionDecl *getOperatorDelete() const {
tools/clang/include/clang/AST/DeclFriend.h
  150       if (const auto *FD = dyn_cast<FunctionDecl>(ND))
  150       if (const auto *FD = dyn_cast<FunctionDecl>(ND))
tools/clang/include/clang/AST/DeclTemplate.h
  461   llvm::PointerIntPair<FunctionDecl *, 1, bool> Function;
  484       FunctionDecl *FD, FunctionTemplateDecl *Template,
  504   Create(ASTContext &C, FunctionDecl *FD, FunctionTemplateDecl *Template,
  511   FunctionDecl *getFunction() const { return Function.getPointer(); }
  771             SpecIterator<EntryType, SETraits, DeclType>,
  775             DeclType *, ptrdiff_t, DeclType *, DeclType *> {
  775             DeclType *, ptrdiff_t, DeclType *, DeclType *> {
  775             DeclType *, ptrdiff_t, DeclType *, DeclType *> {
  781     DeclType *operator*() const {
  785     DeclType *operator->() const { return **this; }
  948   using DeclType = FunctionDecl;
 1016   FunctionDecl *getTemplatedDecl() const {
 1028   FunctionDecl *findSpecialization(ArrayRef<TemplateArgument> Args,
tools/clang/include/clang/AST/Expr.h
  528   static bool isPotentialConstantExpr(const FunctionDecl *FD,
  538                                                  const FunctionDecl *FD,
  681                                 const FunctionDecl *Callee,
 2656   FunctionDecl *getDirectCallee() {
 2657     return dyn_cast_or_null<FunctionDecl>(getCalleeDecl());
 2659   const FunctionDecl *getDirectCallee() const {
 2660     return dyn_cast_or_null<FunctionDecl>(getCalleeDecl());
 2775     const FunctionDecl *FD = getDirectCallee();
tools/clang/include/clang/AST/ExprCXX.h
 2108   FunctionDecl *OperatorNew;
 2111   FunctionDecl *OperatorDelete;
 2165   CXXNewExpr(bool IsGlobalNew, FunctionDecl *OperatorNew,
 2166              FunctionDecl *OperatorDelete, bool ShouldPassAlignment,
 2180   Create(const ASTContext &Ctx, bool IsGlobalNew, FunctionDecl *OperatorNew,
 2181          FunctionDecl *OperatorDelete, bool ShouldPassAlignment,
 2218   FunctionDecl *getOperatorNew() const { return OperatorNew; }
 2219   void setOperatorNew(FunctionDecl *D) { OperatorNew = D; }
 2220   FunctionDecl *getOperatorDelete() const { return OperatorDelete; }
 2221   void setOperatorDelete(FunctionDecl *D) { OperatorDelete = D; }
 2363   FunctionDecl *OperatorDelete = nullptr;
 2371                 FunctionDecl *OperatorDelete, Expr *Arg, SourceLocation Loc)
 2399   FunctionDecl *getOperatorDelete() const { return OperatorDelete; }
tools/clang/include/clang/AST/GlobalDecl.h
   54   GlobalDecl(const FunctionDecl *D, unsigned MVIndex = 0)
tools/clang/include/clang/AST/JSONNodeDumper.h
  172   template <typename T> void writePreviousDeclImpl(const Redeclarable<T> *D) {
  173     const T *Prev = D->getPreviousDecl();
  233   void VisitFunctionDecl(const FunctionDecl *FD);
  347   void writeTemplateDeclSpecialization(const SpecializationDecl *SD,
  351     for (const auto *RedeclWithBadType : SD->redecls()) {
  355       const auto *Redecl = dyn_cast<SpecializationDecl>(RedeclWithBadType);
  355       const auto *Redecl = dyn_cast<SpecializationDecl>(RedeclWithBadType);
  401     for (const auto *Child : TD->specializations())
tools/clang/include/clang/AST/ODRHash.h
   61   void AddFunctionDecl(const FunctionDecl *Function, bool SkipBody = false);
tools/clang/include/clang/AST/RecursiveASTVisitor.h
  511   bool TraverseDeclTemplateParameterLists(T *D);
  526   bool TraverseFunctionHelper(FunctionDecl *D);
 1715   for (auto *FD : D->specializations()) {
 1716     for (auto *RD : FD->redecls()) {
 1987 bool RecursiveASTVisitor<Derived>::TraverseFunctionHelper(FunctionDecl *D) {
 2051   ReturnValue = TraverseFunctionHelper(D);
tools/clang/include/clang/AST/Redeclarable.h
  113     DeclLink(PreviousTag, decl_type *D) : Link(NotKnownLatest(Previous(D))) {}
  122     decl_type *getPrevious(const decl_type *D) const {
  122     decl_type *getPrevious(const decl_type *D) const {
  137     void setPrevious(decl_type *D) {
  142     void setLatest(decl_type *D) {
  166   static DeclLink PreviousDeclLink(decl_type *D) {
  187   decl_type *First;
  189   decl_type *getNextRedeclaration() const {
  203   decl_type *getPreviousDecl() {
  208   const decl_type *getPreviousDecl() const {
  215   decl_type *getFirstDecl() { return First; }
  219   const decl_type *getFirstDecl() const { return First; }
  225   decl_type *getMostRecentDecl() {
  230   const decl_type *getMostRecentDecl() const {
  236   void setPreviousDecl(decl_type *PrevDecl);
  241     decl_type *Current = nullptr;
  242     decl_type *Starter;
  246     using value_type = decl_type *;
  247     using reference = decl_type *;
  248     using pointer = decl_type *;
  253     explicit redecl_iterator(decl_type *C) : Current(C), Starter(C) {}
  271       decl_type *Next = Current->getNextRedeclaration();
  350   CanonicalDeclPtr(decl_type *Ptr)
  355   operator decl_type *() { return Ptr; }
  356   operator const decl_type *() const { return Ptr; }
  358   decl_type *operator->() { return Ptr; }
  359   const decl_type *operator->() const { return Ptr; }
  361   decl_type &operator*() { return *Ptr; }
  362   const decl_type &operator*() const { return *Ptr; }
  374   decl_type *Ptr = nullptr;
  383   using CanonicalDeclPtr = clang::CanonicalDeclPtr<decl_type>;
  384   using BaseInfo = DenseMapInfo<decl_type *>;
tools/clang/include/clang/AST/TextNodeDumper.h
  303   void VisitFunctionDecl(const FunctionDecl *D);
tools/clang/include/clang/AST/Type.h
 3730           FunctionType::ExceptionType, Expr *, FunctionDecl *,
 3791     FunctionDecl *SourceDecl = nullptr;
 3795     FunctionDecl *SourceTemplate = nullptr;
 3843   unsigned numTrailingObjects(OverloadToken<FunctionDecl *>) const {
 4012   FunctionDecl *getExceptionSpecDecl() const {
 4016     return getTrailingObjects<FunctionDecl *>()[0];
 4023   FunctionDecl *getExceptionSpecTemplate() const {
 4026     return getTrailingObjects<FunctionDecl *>()[1];
tools/clang/include/clang/ASTMatchers/ASTMatchers.h
  110   const T *getNodeAs(StringRef ID) const {
  111     return MyBoundNodes.getNodeAs<T>(ID);
 1181 extern const internal::VariadicDynCastAllOfMatcher<Decl, FunctionDecl>
 4419   const Stmt *const Statement = internal::GetBodyMatcher<NodeType>::get(Node);
 6330   if (const auto *FD = dyn_cast<FunctionDecl>(&Node))
 6330   if (const auto *FD = dyn_cast<FunctionDecl>(&Node))
 6474     if(const auto *FuncDeclNode = CurNode.get<FunctionDecl>()) {
 6474     if(const auto *FuncDeclNode = CurNode.get<FunctionDecl>()) {
tools/clang/include/clang/ASTMatchers/ASTMatchersInternal.h
  141 inline const FunctionProtoType *getFunctionProtoType(const FunctionDecl &Node) {
  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);
  316 class SingleNodeMatcherInterface : public MatcherInterface<T> {
  321   virtual bool matchesNode(const T &Node) const = 0;
  325   bool matches(const T &Node,
  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)
  506   Matcher(const Matcher<From> &Other,
  507           typename std::enable_if<std::is_base_of<From, T>::value &&
  507           typename std::enable_if<std::is_base_of<From, T>::value &&
  508                                !std::is_same<From, T>::value>::type * = nullptr)
  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>());
  596 inline Matcher<T> makeMatcher(MatcherInterface<T> *Implementation) {
  596 inline Matcher<T> makeMatcher(MatcherInterface<T> *Implementation) {
  668 class HasOverloadedOperatorNameMatcher : public SingleNodeMatcherInterface<T> {
  669   static_assert(std::is_same<T, CXXOperatorCallExpr>::value ||
  670                 std::is_base_of<FunctionDecl, T>::value,
  670                 std::is_base_of<FunctionDecl, T>::value,
  679   bool matchesNode(const T &Node) const override {
  694   bool matchesSpecialized(const FunctionDecl &Node) const {
  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,
 1067   using head = T1;
 1073   using tail = TypeList<Ts...>;
 1084       std::is_base_of<typename AnyTypeList::head, T>::value ||
 1085       TypeListContainsSuperOf<typename AnyTypeList::tail, T>::value;
 1146     template <typename To> operator Matcher<To>() const {
 1184   operator Matcher<T>() const {
 1185     static_assert(TypeListContainsSuperOf<ReturnTypes, T>::value,
 1202   operator Matcher<T>() const {
 1203     static_assert(TypeListContainsSuperOf<ReturnTypes, T>::value,
 1223   operator Matcher<T>() const {
 1224     static_assert(TypeListContainsSuperOf<ReturnTypes, T>::value,
 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,
 1438 class HasParentMatcher : public WrapperMatcherInterface<T> {
 1446   bool matches(const T &Node, ASTMatchFinder *Finder,
 1458 class HasAncestorMatcher : public WrapperMatcherInterface<T> {
 1466   bool matches(const T &Node, ASTMatchFinder *Finder,
 1480 class ForEachDescendantMatcher : public WrapperMatcherInterface<T> {
 1489   bool matches(const T &Node, ASTMatchFinder *Finder,
 1557     : public VariadicFunction<BindableMatcher<SourceT>, Matcher<TargetT>,
 1558                               makeDynCastAllOfComposite<SourceT, TargetT>> {
 1750 getTemplateSpecializationArgs(const FunctionDecl &FD) {
 1767   static const Stmt *get(const Ty &Node) {
 1773 inline const Stmt *GetBodyMatcher<FunctionDecl>::get(const FunctionDecl &Node) {
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/Analysis/Analyses/Consumed.h
  247                                       const FunctionDecl *D);
tools/clang/include/clang/Analysis/Analyses/ExprMutationAnalyzer.h
   70   llvm::DenseMap<const FunctionDecl *,
   81   FunctionParmMutationAnalyzer(const FunctionDecl &Func, ASTContext &Context);
tools/clang/include/clang/Analysis/Analyses/ThreadSafety.h
  222   virtual void enterFunction(const FunctionDecl *FD) {}
  225   virtual void leaveFunction(const FunctionDecl *FD) {}
tools/clang/include/clang/Analysis/AnyCall.h
   70     if (D && ((K == Function && !isa<FunctionDecl>(D)) ||
   93   AnyCall(const FunctionDecl *D) : E(nullptr), D(D) {
  126     if (const auto *FD = dyn_cast<FunctionDecl>(D)) {
  126     if (const auto *FD = dyn_cast<FunctionDecl>(D)) {
  139     if (const auto *FD = dyn_cast<FunctionDecl>(D)) {
  139     if (const auto *FD = dyn_cast<FunctionDecl>(D)) {
  161       return cast<FunctionDecl>(D)->getReturnType();
  174       return cast<FunctionDecl>(D)->getReturnType();
tools/clang/include/clang/Analysis/BodyFarm.h
   36   Stmt *getBody(const FunctionDecl *D);
tools/clang/include/clang/Analysis/CallGraph.h
  106   bool VisitFunctionDecl(FunctionDecl *FD) {
tools/clang/include/clang/Analysis/CodeInjector.h
   40   virtual Stmt *getBody(const FunctionDecl *D) = 0;
tools/clang/include/clang/Analysis/DomainSpecific/CocoaConventions.h
   36   bool followsCreateRule(const FunctionDecl *FD);
tools/clang/include/clang/Analysis/RetainSummaryManager.h
  450   typedef llvm::DenseMap<const FunctionDecl*, const RetainSummary *>
  499   const RetainSummary *getOSSummaryCreateRule(const FunctionDecl *FD);
  502   const RetainSummary *getOSSummaryGetRule(const FunctionDecl *FD);
  505   const RetainSummary *getOSSummaryRetainRule(const FunctionDecl *FD);
  508   const RetainSummary *getOSSummaryReleaseRule(const FunctionDecl *FD);
  511   const RetainSummary *getOSSummaryFreeRule(const FunctionDecl *FD);
  516   const RetainSummary *getCFSummaryCreateRule(const FunctionDecl *FD);
  517   const RetainSummary *getCFSummaryGetRule(const FunctionDecl *FD);
  518   const RetainSummary *getCFCreateGetRuleSummary(const FunctionDecl *FD);
  601   const RetainSummary * generateSummary(const FunctionDecl *FD,
  605   const RetainSummary *getSummaryForOSObject(const FunctionDecl *FD,
  610     const FunctionDecl *FD,
  651   Optional<BehaviorSummary> canEval(const CallExpr *CE, const FunctionDecl *FD,
  673   const RetainSummary *getFunctionSummary(const FunctionDecl *FD);
  696                                     const FunctionDecl *FD);
tools/clang/include/clang/CodeGen/CodeGenABITypes.h
   76                                             const FunctionDecl *FD);
tools/clang/include/clang/CrossTU/CrossTranslationUnit.h
  127   llvm::Expected<const FunctionDecl *>
  128   getCrossTUDefinition(const FunctionDecl *FD, StringRef CrossTUDir,
  157   llvm::Expected<const FunctionDecl *> importDefinition(const FunctionDecl *FD,
  157   llvm::Expected<const FunctionDecl *> importDefinition(const FunctionDecl *FD,
tools/clang/include/clang/Frontend/MultiplexConsumer.h
   59   void HandleInlineFunctionDefinition(FunctionDecl *D) override;
   64   void HandleCXXImplicitFunctionInstantiation(FunctionDecl *D) override;
tools/clang/include/clang/Sema/AnalysisBasedWarnings.h
   51   llvm::DenseMap<const FunctionDecl*, VisitFlag> VisitedFD;
tools/clang/include/clang/Sema/CodeCompleteConsumer.h
 1027       FunctionDecl *Function;
 1039     OverloadCandidate(FunctionDecl *Function)
 1053     FunctionDecl *getFunction() const;
tools/clang/include/clang/Sema/ExternalSemaSource.h
  192       llvm::MapVector<const FunctionDecl *, std::unique_ptr<LateParsedTemplate>>
tools/clang/include/clang/Sema/Initialization.h
  909       FunctionDecl *Function;
 1217   void AddAddressOverloadResolutionStep(FunctionDecl *Function,
 1256   void AddUserConversionStep(FunctionDecl *Function,
tools/clang/include/clang/Sema/Lookup.h
  507   DeclClass *getAsSingle() const {
  509     return dyn_cast<DeclClass>(getFoundDecl());
tools/clang/include/clang/Sema/MultiplexExternalSemaSource.h
  330       llvm::MapVector<const FunctionDecl *, std::unique_ptr<LateParsedTemplate>>
tools/clang/include/clang/Sema/Overload.h
  404     FunctionDecl* ConversionFunction;
  417         SmallVector<std::pair<NamedDecl *, FunctionDecl *>, 4>;
  442     void addConversion(NamedDecl *Found, FunctionDecl *D) {
  771     FunctionDecl *Function;
  926       bool isRewrittenOperator(const FunctionDecl *FD) {
  931       bool isAcceptableCandidate(const FunctionDecl *FD) {
  938       getRewriteKind(const FunctionDecl *FD, OverloadCandidateParamOrder PO) {
  953       bool shouldAddReversed(ASTContext &Ctx, const FunctionDecl *FD);
tools/clang/include/clang/Sema/Sema.h
  693   SmallVector<std::pair<FunctionDecl*, FunctionDecl*>, 2>
  693   SmallVector<std::pair<FunctionDecl*, FunctionDecl*>, 2>
  696   typedef llvm::MapVector<const FunctionDecl *,
  833       if (auto *FD = dyn_cast<FunctionDecl>(DC))
  833       if (auto *FD = dyn_cast<FunctionDecl>(DC))
  854       if (auto *FD = dyn_cast<FunctionDecl>(S.CurContext))
  854       if (auto *FD = dyn_cast<FunctionDecl>(S.CurContext))
 1598   void UpdateExceptionSpec(FunctionDecl *FD,
 1602   bool CheckEquivalentExceptionSpec(FunctionDecl *Old, FunctionDecl *New);
 1602   bool CheckEquivalentExceptionSpec(FunctionDecl *Old, FunctionDecl *New);
 2164   void MaybeSuggestAddingStaticToDecl(const FunctionDecl *D);
 2181   bool CheckConstexprFunctionDefinition(const FunctionDecl *FD,
 2191                                 FunctionDecl *NewFD, LookupResult &Previous,
 2196   void CheckMain(FunctionDecl *FD, const DeclSpec &D);
 2197   void CheckMSVCRTEntryPoint(FunctionDecl *FD);
 2198   Attr *getImplicitCodeSegOrSectionAttrForFunction(const FunctionDecl *FD,
 2287       FunctionDecl *FD, const FunctionDecl *EffectiveDefinition = nullptr,
 2287       FunctionDecl *FD, const FunctionDecl *EffectiveDefinition = nullptr,
 2322   void ActOnFinishInlineFunctionDef(FunctionDecl *D);
 2599   DefaultedFunctionKind getDefaultedFunctionKind(const FunctionDecl *FD);
 2604   DefaultedComparisonKind getDefaultedComparisonKind(const FunctionDecl *FD) {
 2708   FunctionDecl *getCurFunctionDecl();
 2832   bool MergeFunctionDecl(FunctionDecl *New, NamedDecl *&Old, Scope *S,
 2834   bool MergeCompatibleFunctionDecls(FunctionDecl *New, FunctionDecl *Old,
 2834   bool MergeCompatibleFunctionDecls(FunctionDecl *New, FunctionDecl *Old,
 2842   bool MergeCXXFunctionDecl(FunctionDecl *New, FunctionDecl *Old, Scope *S);
 2842   bool MergeCXXFunctionDecl(FunctionDecl *New, FunctionDecl *Old, Scope *S);
 2872                              FunctionDecl *New,
 2876   bool IsOverload(FunctionDecl *New, FunctionDecl *Old, bool IsForUsingDecl,
 2876   bool IsOverload(FunctionDecl *New, FunctionDecl *Old, bool IsForUsingDecl,
 3079   void AddOverloadCandidate(FunctionDecl *Function, DeclAccessPair FoundDecl,
 3178       NamedDecl *Found, FunctionDecl *Fn,
 3189   EnableIfAttr *CheckEnableIf(FunctionDecl *Function, ArrayRef<Expr *> Args,
 3203   bool diagnoseArgDependentDiagnoseIfAttrs(const FunctionDecl *Function,
 3222   bool checkAddressOfFunctionIsAvailable(const FunctionDecl *Function,
 3234   FunctionDecl *
 3241   FunctionDecl *
 3248   FunctionDecl *
 3264                                        FunctionDecl *Fn);
 3267                                             FunctionDecl *Fn);
 3337                            CallExpr *CE, FunctionDecl *FD);
 3342   void CheckCXXDefaultArguments(FunctionDecl *FD);
 3592   FunctionEmissionStatus getEmissionStatus(FunctionDecl *Decl);
 3595   bool shouldIgnoreInHostDeviceCheck(FunctionDecl *Callee);
 3705   void AddKnownFunctionAttributes(FunctionDecl *FD);
 3730                             const FunctionDecl *FD = nullptr);
 4363   void NoteDeletedFunction(FunctionDecl *FD);
 4405   void MarkFunctionReferenced(SourceLocation Loc, FunctionDecl *Func,
 4766                                FunctionDecl *FDecl,
 5040   bool isInitListConstructor(const FunctionDecl *Ctor);
 5145   bool CheckCXXDefaultArgExpr(SourceLocation CallLoc, FunctionDecl *FD,
 5151                                     FunctionDecl *FD,
 5397   void CheckImplicitSpecialMemberDeclaration(Scope *S, FunctionDecl *FD);
 5401   bool isImplicitlyDeleted(FunctionDecl *FD);
 5634   bool isUnavailableAlignedAllocationFunction(const FunctionDecl &FD) const;
 5638   void diagnoseUnavailableAlignedAllocation(const FunctionDecl &FD,
 5663                                FunctionDecl *&OperatorNew,
 5664                                FunctionDecl *&OperatorDelete,
 5671                                 DeclarationName Name, FunctionDecl* &Operator,
 5673   FunctionDecl *FindUsualDeallocationFunction(SourceLocation StartLoc,
 5677   FunctionDecl *FindDeallocationFunctionForDestructor(SourceLocation StartLoc,
 6391   void MarkAsLateParsedTemplate(FunctionDecl *FD, Decl *FnD,
 6393   void UnmarkAsLateParsedTemplate(FunctionDecl *FD);
 6427   void CheckExplicitlyDefaultedFunction(FunctionDecl *MD);
 6433   bool CheckExplicitlyDefaultedComparison(FunctionDecl *MD,
 6613   bool CheckOverloadedOperatorDeclaration(FunctionDecl *FnDecl);
 6615   bool CheckLiteralOperatorDeclaration(FunctionDecl *FnDecl);
 6873   bool CheckDependentFunctionTemplateSpecialization(FunctionDecl *FD,
 6878       FunctionDecl *FD, TemplateArgumentListInfo *ExplicitTemplateArgs,
 7549       unsigned NumExplicitlySpecified, FunctionDecl *&Specialization,
 7558       FunctionDecl *&Specialization, sema::TemplateDeductionInfo &Info,
 7566                           FunctionDecl *&Specialization,
 7579                           FunctionDecl *&Specialization,
 7606   bool DeduceReturnType(FunctionDecl *FD, SourceLocation Loc,
 7623   TypeLoc getReturnTypeLoc(FunctionDecl *FD) const;
 7625   bool DeduceFunctionTypeFromReturnExpr(FunctionDecl *FD,
 7684                                const FunctionDecl *Pattern = nullptr);
 7939                           FunctionDecl *Entity, ExceptionSpecification,
 8322   void SubstExceptionSpec(FunctionDecl *New, const FunctionProtoType *Proto,
 8452                                 FunctionDecl *Function);
 8453   FunctionDecl *InstantiateFunctionDeclaration(FunctionTemplateDecl *FTD,
 8457                                      FunctionDecl *Function,
 9096   void AddRangeBasedOptnone(FunctionDecl *FD);
 9101   void AddOptnoneAttributeIfNoConflicts(FunctionDecl *FD, SourceLocation Loc);
 9170   void CheckCompletedCoroutineBody(FunctionDecl *FD, Stmt *&Body);
 9191   std::string getOpenCLExtensionsFromDeclExtMap(FunctionDecl *FD);
 9200   std::string getOpenCLExtensionsFromExtMap(T* FT, MapT &Map);
 9272   void checkOpenMPDeviceFunction(SourceLocation Loc, FunctionDecl *Callee,
 9276   void checkOpenMPHostFunction(SourceLocation Loc, FunctionDecl *Callee,
 9305                                                FunctionDecl *Func,
 9328       const FunctionDecl *OldFD, const FunctionDecl *NewFD,
 9328       const FunctionDecl *OldFD, const FunctionDecl *NewFD,
 9786   Optional<std::pair<FunctionDecl *, Expr *>> checkOpenMPDeclareVariantFunction(
 9798       FunctionDecl *FD, Expr *VariantRef, SourceRange SR,
10170   VariadicCallType getVariadicCallType(FunctionDecl *FDecl,
10196   bool GatherArgumentsForCall(SourceLocation CallLoc, FunctionDecl *FDecl,
10207                                               FunctionDecl *FDecl);
10740   llvm::DenseMap<CanonicalDeclPtr<FunctionDecl>,
10747     CanonicalDeclPtr<FunctionDecl> FD;
10761   llvm::DenseMap</* Callee = */ CanonicalDeclPtr<FunctionDecl>,
10772   llvm::DenseMap</* Caller = */ CanonicalDeclPtr<FunctionDecl>,
10773                  /* Callees = */ llvm::MapVector<CanonicalDeclPtr<FunctionDecl>,
10810                       FunctionDecl *Fn, Sema &S);
10842     FunctionDecl *Fn;
10855       Sema &S, FunctionDecl *OrigCaller, FunctionDecl *OrigCallee,
10855       Sema &S, FunctionDecl *OrigCaller, FunctionDecl *OrigCallee,
10857       const llvm::function_ref<bool(Sema &, FunctionDecl *)> IsKnownEmitted);
10930   CUDAFunctionTarget IdentifyCUDATarget(const FunctionDecl *D,
10936     return IdentifyCUDATarget(dyn_cast<FunctionDecl>(CurContext));
10959   CUDAFunctionPreference IdentifyCUDAPreference(const FunctionDecl *Caller,
10960                                                 const FunctionDecl *Callee);
10967   bool IsAllowedCUDACall(const FunctionDecl *Caller,
10968                          const FunctionDecl *Callee) {
10974   void maybeAddCUDAHostDeviceAttrs(FunctionDecl *FD,
10992   bool CheckCUDACall(SourceLocation Loc, FunctionDecl *Callee);
11006       const FunctionDecl *Caller,
11007       SmallVectorImpl<std::pair<DeclAccessPair, FunctionDecl *>> &Matches);
11043   void checkCUDATargetOverload(FunctionDecl *NewFD,
11046   void inheritCUDATargetAttrs(FunctionDecl *FD, const FunctionTemplateDecl &TD);
11247   bool CheckFunctionCall(FunctionDecl *FDecl, CallExpr *TheCall,
11254   void CheckConstructorCall(FunctionDecl *FDecl,
11267   ExprResult CheckBuiltinFunctionCall(FunctionDecl *FDecl,
11269   void checkFortifiedBuiltinMemoryFunction(FunctionDecl *FD, CallExpr *TheCall);
11363                                   const FunctionDecl *FDecl);
11365   void CheckMaxUnsignedZero(const CallExpr *Call, const FunctionDecl *FDecl);
11381                           const FunctionDecl *FD = nullptr);
11697   using FDBaseInfo = DenseMapInfo<clang::CanonicalDeclPtr<clang::FunctionDecl>>;
tools/clang/include/clang/Sema/Template.h
  480     Decl *VisitFunctionDecl(FunctionDecl *D,
  532     TypeSourceInfo *SubstFunctionType(FunctionDecl *D,
  534     bool InitFunctionInstantiation(FunctionDecl *New, FunctionDecl *Tmpl);
  534     bool InitFunctionInstantiation(FunctionDecl *New, FunctionDecl *Tmpl);
tools/clang/include/clang/Sema/TypoCorrection.h
  156   DeclClass *getCorrectionDeclAs() const {
  157     return dyn_cast_or_null<DeclClass>(getCorrectionDecl());
  369     return candidate.getCorrectionDeclAs<C>();
tools/clang/include/clang/Serialization/ASTReader.h
  537   llvm::SmallMapVector<Decl *, FunctionDecl *, 4> PendingExceptionSpecUpdates;
  542   llvm::SmallMapVector<FunctionDecl *, QualType, 4> PendingDeducedTypeUpdates;
 1067   SmallVector<std::pair<FunctionDecl *, serialization::TypeID>, 16>
 1110   llvm::SmallDenseMap<FunctionDecl *, llvm::SmallVector<FunctionDecl *, 2>, 2>
 1110   llvm::SmallDenseMap<FunctionDecl *, llvm::SmallVector<FunctionDecl *, 2>, 2>
 1887   T *ReadDeclAs(ModuleFile &F, const RecordData &R, unsigned &I) {
 1888     return cast_or_null<T>(GetDecl(ReadDeclID(F, R, I)));
 2033       llvm::MapVector<const FunctionDecl *, std::unique_ptr<LateParsedTemplate>>
 2541   T *readDeclAs() {
 2542     return Reader->ReadDeclAs<T>(*F, Record, Idx);
tools/clang/include/clang/Serialization/ASTWriter.h
  723                                       const FunctionDecl *D) override;
  724   void ResolvedExceptionSpec(const FunctionDecl *FD) override;
  725   void DeducedReturnType(const FunctionDecl *FD, QualType ReturnType) override;
  727                               const FunctionDecl *Delete,
  729   void CompletedImplicitDefinition(const FunctionDecl *D) override;
  732   void FunctionDefinitionInstantiated(const FunctionDecl *D) override;
  845   void AddFunctionDefinition(const FunctionDecl *FD);
tools/clang/include/clang/StaticAnalyzer/Core/Checker.h
   33     ((const CHECKER *)checker)->checkASTDecl(cast<DECL>(D), mgr, BR);
   37     return isa<DECL>(D);
tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/CallEvent.h
  248     if (const auto *FD = dyn_cast<FunctionDecl>(D))
  248     if (const auto *FD = dyn_cast<FunctionDecl>(D))
  474   const FunctionDecl *getDecl() const override {
  475     return cast<FunctionDecl>(CallEvent::getDecl());
  514   const FunctionDecl *getDecl() const override;
  643   CXXInstanceCall(const FunctionDecl *D, ProgramStateRef St,
  658   const FunctionDecl *getDecl() const override;
  888   const FunctionDecl *getDecl() const override {
tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/CheckerContext.h
  279   const FunctionDecl *getCalleeDecl(const CallExpr *CE) const;
  282   StringRef getCalleeName(const FunctionDecl *FunDecl) const;
  286     const FunctionDecl *FunDecl = getCalleeDecl(CE);
  295     const FunctionDecl *FunDecl = getCalleeDecl(CE);
  309   static bool isCLibraryFunction(const FunctionDecl *FD,
tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/MemRegion.h
  597     if (const auto *D = dyn_cast<FunctionDecl>(FD)) {
  597     if (const auto *D = dyn_cast<FunctionDecl>(FD)) {
tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/SValBuilder.h
  238   DefinedSVal getFunctionPointer(const FunctionDecl *func);
tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/SVals.h
  164   const FunctionDecl *getAsFunctionDecl() const;
tools/clang/lib/ARCMigrate/ObjCMT.cpp
   69                         const FunctionDecl *FuncDecl, bool ResultAnnotated);
   77                                                 const FunctionDecl *FuncDecl);
 1416   if (isa<FunctionDecl>(LastFD)) {
 1443   if (const FunctionDecl *FuncDecl = dyn_cast<FunctionDecl>(Decl)) {
 1443   if (const FunctionDecl *FuncDecl = dyn_cast<FunctionDecl>(Decl)) {
 1468                                               const FunctionDecl *FuncDecl,
 1493   for (FunctionDecl::param_const_iterator pi = FuncDecl->param_begin(),
 1516                                                   const FunctionDecl *FuncDecl) {
 1545   for (FunctionDecl::param_const_iterator pi = FuncDecl->param_begin(),
 1923       else if (const FunctionDecl *FD = dyn_cast<FunctionDecl>(*D)) {
 1923       else if (const FunctionDecl *FD = dyn_cast<FunctionDecl>(*D)) {
tools/clang/lib/ARCMigrate/TransGCAttrs.cpp
  127     if (FunctionDecl *FD = dyn_cast<FunctionDecl>(D))
  127     if (FunctionDecl *FD = dyn_cast<FunctionDecl>(D))
tools/clang/lib/ARCMigrate/TransGCCalls.cpp
   47       if (FunctionDecl *FD = dyn_cast_or_null<FunctionDecl>(DRE->getDecl())) {
   47       if (FunctionDecl *FD = dyn_cast_or_null<FunctionDecl>(DRE->getDecl())) {
tools/clang/lib/ARCMigrate/TransUnbridgedCasts.cpp
  135       if (FunctionDecl *FD = callE->getDirectCallee()) {
  417       if (FunctionDecl *
  418             FD = dyn_cast_or_null<FunctionDecl>(callE->getCalleeDecl()))
  430       if (FunctionDecl *
  431             FD = dyn_cast_or_null<FunctionDecl>(callE->getCalleeDecl())) {
tools/clang/lib/ARCMigrate/TransZeroOutPropsInDealloc.cpp
  142   bool TraverseFunctionDecl(FunctionDecl *D) { return true; }
tools/clang/lib/ARCMigrate/Transforms.cpp
   86     if (const FunctionDecl *FD = callE->getDirectCallee()) {
tools/clang/lib/AST/ASTContext.cpp
  113   if (const auto *FD = dyn_cast<FunctionDecl>(D)) {
  113   if (const auto *FD = dyn_cast<FunctionDecl>(D)) {
  299   if (const auto *FD = dyn_cast<FunctionDecl>(&D)) {
  299   if (const auto *FD = dyn_cast<FunctionDecl>(&D)) {
  313     if (const FunctionDecl *MemberDecl =
  552     if (isa<ObjCMethodDecl>(D) || isa<FunctionDecl>(D)) {
 2830 void ASTContext::adjustDeducedFunctionResultType(FunctionDecl *FD,
 2837     if (FunctionDecl *Next = FD->getPreviousDecl())
 2887     FunctionDecl *FD, const FunctionProtoType::ExceptionSpecInfo &ESI,
 3881       FunctionType::ExceptionType, Expr *, FunctionDecl *,
 6377 ASTContext::getObjCEncodingForFunctionDecl(const FunctionDecl *Decl) const {
 7695 bool ASTContext::canBuiltinBeRedeclared(const FunctionDecl *FD) const {
 9367 void ASTMutationListener::DeducedReturnType(const FunctionDecl *FD,
 9759                                              const FunctionDecl *FD) {
 9865 GVALinkage ASTContext::GetGVALinkageForFunction(const FunctionDecl *FD) const {
 9878     while (LexicalContext && !isa<FunctionDecl>(LexicalContext))
 9889         Context.GetGVALinkageForFunction(cast<FunctionDecl>(LexicalContext));
 9964   } else if (const auto *FD = dyn_cast<FunctionDecl>(D)) {
 9964   } else if (const auto *FD = dyn_cast<FunctionDecl>(D)) {
 9966     if (FD->getTemplatedKind() == FunctionDecl::TK_FunctionTemplate)
 9998         isa<FunctionDecl>(D) &&
 9999         cast<FunctionDecl>(D)->getTemplateSpecializationKind() ==
10026   if (const auto *FD = dyn_cast<FunctionDecl>(D)) {
10026   if (const auto *FD = dyn_cast<FunctionDecl>(D)) {
10100     const FunctionDecl *FD,
10101     llvm::function_ref<void(FunctionDecl *)> Pred) const {
10103   llvm::SmallDenseSet<const FunctionDecl*, 4> SeenDecls;
10107     FunctionDecl *CurFD = CurDecl->getAsFunction()->getMostRecentDecl();
tools/clang/lib/AST/ASTDiagnostic.cpp
  449         else if (isa<FunctionDecl>(ND))
tools/clang/lib/AST/ASTDumper.cpp
   85 void ASTDumper::dumpTemplateDeclSpecialization(const SpecializationDecl *D,
   89   for (const auto *RedeclWithBadType : D->redecls()) {
   93     auto *Redecl = dyn_cast<SpecializationDecl>(RedeclWithBadType);
  132   for (const auto *Child : D->specializations())
tools/clang/lib/AST/ASTImporter.cpp
  113     for (auto *R : D->getFirstDecl()->redecls()) {
  123     if (auto *FD = dyn_cast<FunctionDecl>(D))
  123     if (auto *FD = dyn_cast<FunctionDecl>(D))
  124       return getCanonicalForwardRedeclChain<FunctionDecl>(FD);
  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;
  245     LLVM_NODISCARD bool GetImportedOrCreateDecl(ToDeclT *&ToD, FromDeclT *FromD,
  245     LLVM_NODISCARD bool GetImportedOrCreateDecl(ToDeclT *&ToD, FromDeclT *FromD,
  256     GetImportedOrCreateSpecialDecl(ToDeclT *&ToD, CreateFunT CreateFun,
  257                                    FromDeclT *FromD, Args &&... args) {
  262       ToD = cast_or_null<ToDeclT>(Importer.GetAlreadyImportedOrNull(FromD));
  292     Decl *FindAndMapDefinition(FunctionDecl *D, FunctionDecl *FoundFunction) {
  292     Decl *FindAndMapDefinition(FunctionDecl *D, FunctionDecl *FoundFunction) {
  293       const FunctionDecl *Definition = nullptr;
  426     Error ImportTemplateInformation(FunctionDecl *FromFD, FunctionDecl *ToFD);
  426     Error ImportTemplateInformation(FunctionDecl *FromFD, FunctionDecl *ToFD);
  428     Error ImportFunctionDeclBody(FunctionDecl *FromFD, FunctionDecl *ToFD);
  428     Error ImportFunctionDeclBody(FunctionDecl *FromFD, FunctionDecl *ToFD);
  445     bool IsStructuralMatch(FunctionDecl *From, FunctionDecl *To);
  445     bool IsStructuralMatch(FunctionDecl *From, FunctionDecl *To);
  464     ExpectedDecl VisitFunctionDecl(FunctionDecl *D);
  645     Expected<FunctionDecl *> FindFunctionTemplateSpecialization(
  646         FunctionDecl *FromFD);
  936 bool ASTNodeImporter::hasSameVisibilityContext(T *Found, T *From) {
  936 bool ASTNodeImporter::hasSameVisibilityContext(T *Found, T *From) {
 1547   FunctionDecl *FunDecl;
 1548   if (isa<RecordDecl>(D) && (FunDecl = dyn_cast<FunctionDecl>(OrigDC)) &&
 2046 bool ASTNodeImporter::IsStructuralMatch(FunctionDecl *From, FunctionDecl *To) {
 2046 bool ASTNodeImporter::IsStructuralMatch(FunctionDecl *From, FunctionDecl *To) {
 2884     FunctionDecl *FromFD, FunctionDecl *ToFD) {
 2884     FunctionDecl *FromFD, FunctionDecl *ToFD) {
 2886   case FunctionDecl::TK_NonTemplate:
 2887   case FunctionDecl::TK_FunctionTemplate:
 2890   case FunctionDecl::TK_MemberSpecialization: {
 2893     if (Expected<FunctionDecl *> InstFDOrErr =
 2908   case FunctionDecl::TK_FunctionTemplateSpecialization: {
 2939   case FunctionDecl::TK_DependentFunctionTemplateSpecialization: {
 2968 Expected<FunctionDecl *>
 2969 ASTNodeImporter::FindFunctionTemplateSpecialization(FunctionDecl *FromFD) {
 2979   auto *FoundSpec = Template->findSpecialization(ToTemplArgs, InsertPos);
 2983 Error ASTNodeImporter::ImportFunctionDeclBody(FunctionDecl *FromFD,
 2984                                               FunctionDecl *ToFD) {
 2994 ExpectedDecl ASTNodeImporter::VisitFunctionDecl(FunctionDecl *D) {
 3017   FunctionDecl *FoundByLookup = nullptr;
 3026       FunctionDecl::TK_FunctionTemplateSpecialization) {
 3030     if (FunctionDecl *FoundFunction = *FoundFunctionOrErr) {
 3046       if (auto *FoundFunction = dyn_cast<FunctionDecl>(FoundDecl)) {
 3046       if (auto *FoundFunction = dyn_cast<FunctionDecl>(FoundDecl)) {
 3156   FunctionDecl *ToFunction = nullptr;
 3182     FunctionDecl *ToOperatorDelete;
 3228     auto *Recent = const_cast<FunctionDecl *>(
 5028   auto *ToTemplatedDef = D->getTemplatedDecl()->getDefinition();
 5603   FunctionDecl *TemplatedFD;
 5624       auto *PrevTemplated =
 7065   FunctionDecl *ToOperatorNew, *ToOperatorDelete;
 7095   FunctionDecl *ToOperatorDelete;
tools/clang/lib/AST/ASTStructuralEquivalence.cpp
 1564                                      FunctionDecl *D1, FunctionDecl *D2) {
 1564                                      FunctionDecl *D1, FunctionDecl *D2) {
 1852   } else if (FunctionDecl *FD1 = dyn_cast<FunctionDecl>(D1)) {
 1852   } else if (FunctionDecl *FD1 = dyn_cast<FunctionDecl>(D1)) {
 1853     if (FunctionDecl *FD2 = dyn_cast<FunctionDecl>(D2)) {
 1853     if (FunctionDecl *FD2 = dyn_cast<FunctionDecl>(D2)) {
tools/clang/lib/AST/Comment.cpp
  233     const FunctionDecl *FD = cast<FunctionDecl>(CommentDecl);
  233     const FunctionDecl *FD = cast<FunctionDecl>(CommentDecl);
  266     const FunctionDecl *FD = FTD->getTemplatedDecl();
tools/clang/lib/AST/CommentSema.cpp
  684   if (const FunctionDecl *FD = dyn_cast<FunctionDecl>(D)) {
  684   if (const FunctionDecl *FD = dyn_cast<FunctionDecl>(D)) {
  812          isa<FunctionDecl>(ThisDeclInfo->CurrentDecl);
  818   if (const FunctionDecl *FD =
  819         dyn_cast<FunctionDecl>(ThisDeclInfo->CurrentDecl))
tools/clang/lib/AST/Decl.cpp
  305     if (isa<FunctionDecl>(DC) || isa<BlockDecl>(DC))
  367 static bool shouldConsiderTemplateVisibility(const FunctionDecl *fn,
  387     LinkageInfo &LV, const FunctionDecl *fn,
  536   const auto *FD = dyn_cast<FunctionDecl>(D);
  536   const auto *FD = dyn_cast<FunctionDecl>(D);
  549   const FunctionDecl *Def = nullptr;
  619     if (auto *FD = dyn_cast<FunctionDecl>(D))
  689     const auto *Func = dyn_cast<FunctionDecl>(D);
  689     const auto *Func = dyn_cast<FunctionDecl>(D);
  806   } else if (const auto *Function = dyn_cast<FunctionDecl>(D)) {
  806   } else if (const auto *Function = dyn_cast<FunctionDecl>(D)) {
 1152   if (const auto *fn = dyn_cast<FunctionDecl>(ND)) {
 1152   if (const auto *fn = dyn_cast<FunctionDecl>(ND)) {
 1162     FunctionDecl *InstantiatedFrom = fn->getInstantiatedFromMemberFunction();
 1217   if (const auto *Function = dyn_cast<FunctionDecl>(D)) {
 1217   if (const auto *Function = dyn_cast<FunctionDecl>(D)) {
 1283     const auto *FD = cast<FunctionDecl>(OuterD);
 1283     const auto *FD = cast<FunctionDecl>(OuterD);
 1627     } else if (const auto *FD = dyn_cast<FunctionDecl>(DC)) {
 1627     } else if (const auto *FD = dyn_cast<FunctionDecl>(DC)) {
 1676 template<typename T> static bool isRedeclarableImpl(Redeclarable<T> *) {
 2017 static LanguageLinkage getDeclLanguageLinkage(const T &D) {
 2045 static bool isDeclExternC(const T &D) {
 2454 static DeclT *getDefinitionOrSelf(DeclT *D) {
 2454 static DeclT *getDefinitionOrSelf(DeclT *D) {
 2456   if (auto *Def = D->getDefinition())
 2813 bool FunctionDecl::hasBody(const FunctionDecl *&Definition) const {
 2838 bool FunctionDecl::isDefined(const FunctionDecl *&Definition) const {
 2849 Stmt *FunctionDecl::getBody(const FunctionDecl *&Definition) const {
 3088 FunctionDecl::setPreviousDeclaration(FunctionDecl *PrevDecl) {
 3102 FunctionDecl *FunctionDecl::getCanonicalDecl() { return getFirstDecl(); }
 3231   for (const FunctionDecl *FD = getMostRecentDecl(); FD;
 3239 static bool redeclForcesDefMSVC(const FunctionDecl *Redecl) {
 3243   for (const FunctionDecl *FD = Redecl->getPreviousDecl(); FD;
 3251 static bool RedeclForcesDefC99(const FunctionDecl *Redecl) {
 3280     const FunctionDecl *Definition;
 3298     const FunctionDecl *Prev = this;
 3323   const FunctionDecl *Prev = this;
 3445 FunctionDecl::TemplatedKind FunctionDecl::getTemplatedKind() const {
 3461 FunctionDecl *FunctionDecl::getInstantiatedFromMemberFunction() const {
 3463     return cast<FunctionDecl>(Info->getInstantiatedFrom());
 3480                                                FunctionDecl *FD,
 3519   const FunctionDecl *PatternDecl = getTemplateInstantiationPattern();
 3540 FunctionDecl *FunctionDecl::getTemplateInstantiationPattern() const {
 3559     return getDefinitionOrSelf(cast<FunctionDecl>(Info->getInstantiatedFrom()));
 3779   if (FunctionDecl *FD = getInstantiatedFromMemberFunction()) {
 3780     const FunctionDecl *Definition;
 3788     const FunctionDecl *Definition;
 3910   if (auto *FT = getInstantiatedFromMemberFunction()) {
 4623 FunctionDecl *FunctionDecl::Create(ASTContext &C, DeclContext *DC,
 4630   FunctionDecl *New =
 4631       new (C, DC) FunctionDecl(Function, C, DC, StartLoc, NameInfo, T, TInfo,
 4637 FunctionDecl *FunctionDecl::CreateDeserialized(ASTContext &C, unsigned ID) {
 4638   return new (C, ID) FunctionDecl(Function, C, nullptr, SourceLocation(),
tools/clang/lib/AST/DeclBase.cpp
  218 FunctionDecl *Decl::getAsFunction() {
  219   if (auto *FD = dyn_cast<FunctionDecl>(this))
  219   if (auto *FD = dyn_cast<FunctionDecl>(this))
  231   if (auto *FD = dyn_cast<FunctionDecl>(this))
  652   } else if (const auto *FD = dyn_cast<FunctionDecl>(this)) {
  652   } else if (const auto *FD = dyn_cast<FunctionDecl>(this)) {
  899   if (const auto *FD = dyn_cast<FunctionDecl>(this)) {
  899   if (const auto *FD = dyn_cast<FunctionDecl>(this)) {
  900     const FunctionDecl *Definition;
  980   } else if (auto *FD = dyn_cast<FunctionDecl>(D))
  980   } else if (auto *FD = dyn_cast<FunctionDecl>(D))
 1042   if (isa<FunctionDecl>(this))
 1104   if (const auto *Function = dyn_cast<FunctionDecl>(this)) {
 1104   if (const auto *Function = dyn_cast<FunctionDecl>(this)) {
 1434   if (auto *FD = dyn_cast<FunctionDecl>(D))
 1434   if (auto *FD = dyn_cast<FunctionDecl>(D))
tools/clang/lib/AST/DeclCXX.cpp
 1938 ExplicitSpecifier ExplicitSpecifier::getFromDecl(FunctionDecl *Function) {
 2142     SmallVectorImpl<const FunctionDecl *> &PreventedBy) const {
 2208     if (const auto *FD = dyn_cast<FunctionDecl>(D)) {
 2208     if (const auto *FD = dyn_cast<FunctionDecl>(D)) {
 2333   const FunctionDecl *CheckFn = getTemplateInstantiationPattern();
 2337   const FunctionDecl *fn;
 2618 void CXXDestructorDecl::setOperatorDelete(FunctionDecl *OD, Expr *ThisArg) {
tools/clang/lib/AST/DeclPrinter.cpp
   68     void VisitFunctionDecl(FunctionDecl *D);
  389     if (auto FD = dyn_cast<FunctionDecl>(*D))
  447     else if (auto FD = dyn_cast<FunctionDecl>(*D)) {
  475         ((isa<FunctionDecl>(*D) &&
  476           cast<FunctionDecl>(*D)->doesThisDeclarationHaveABody()) ||
  584 void DeclPrinter::VisitFunctionDecl(FunctionDecl *D) {
  784   else if (FunctionDecl *FD =
  785       dyn_cast<FunctionDecl>(D->getFriendDecl())) {
 1146   if (const FunctionDecl *FD = D->getTemplatedDecl()) {
 1161     FunctionDecl *PrevDecl = D->getTemplatedDecl();
 1162     const FunctionDecl *Def;
 1165     for (auto *I : D->specializations())
tools/clang/lib/AST/DeclTemplate.cpp
  312 FunctionDecl *
  722     ASTContext &C, FunctionDecl *FD, FunctionTemplateDecl *Template,
tools/clang/lib/AST/Expr.cpp
  713   if (const FunctionDecl *FD = dyn_cast<FunctionDecl>(CurrentDecl)) {
  713   if (const FunctionDecl *FD = dyn_cast<FunctionDecl>(CurrentDecl)) {
  732     const FunctionDecl *Decl = FD;
  733     if (const FunctionDecl* Pattern = FD->getTemplateInstantiationPattern())
 1480   const FunctionDecl *FDecl = dyn_cast<FunctionDecl>(DRE->getDecl());
 1480   const FunctionDecl *FDecl = dyn_cast<FunctionDecl>(DRE->getDecl());
 3310   const FunctionDecl* FD = getDirectCallee();
tools/clang/lib/AST/ExprCXX.cpp
  166 CXXNewExpr::CXXNewExpr(bool IsGlobalNew, FunctionDecl *OperatorNew,
  167                        FunctionDecl *OperatorDelete, bool ShouldPassAlignment,
  258                    FunctionDecl *OperatorNew, FunctionDecl *OperatorDelete,
  258                    FunctionDecl *OperatorNew, FunctionDecl *OperatorDelete,
  967     cast<FunctionDecl>(getCalleeDecl())->getParamDecl(0)->getType();
  989   return cast<FunctionDecl>(getCalleeDecl())->getLiteralIdentifier();
tools/clang/lib/AST/ExprClassification.cpp
  226       return isa<FunctionDecl>(cast<DeclRefExpr>(E)->getDecl())
  455                 (isa<FunctionDecl>(D) || isa<MSPropertyDecl>(D) ||
  483     return (isa<FunctionDecl>(E->getMemberDecl())
tools/clang/lib/AST/ExprConstant.cpp
  148     const FunctionDecl *Callee = CE->getDirectCallee();
  498     const FunctionDecl *Callee;
  550                    const FunctionDecl *Callee, const LValue *This,
  596     const FunctionDecl *getCallee() const override { return Callee; }
 1376                                const FunctionDecl *Callee, const LValue *This,
 1822   for (FunctionDecl::param_const_iterator I = Callee->param_begin(),
 1869     return isa<FunctionDecl>(D);
 2048     if (const auto *FD = dyn_cast<const FunctionDecl>(VD)) {
 2048     if (const auto *FD = dyn_cast<const FunctionDecl>(VD)) {
 4885                                    const FunctionDecl *Declaration,
 4886                                    const FunctionDecl *Definition,
 4919     const FunctionDecl *DiagDecl = Definition ? Definition : Declaration;
 5433                          EvalInfo &Info, const FunctionDecl *Callee) {
 5473                                const FunctionDecl *Callee, const LValue *This,
 5832   const FunctionDecl *Definition = nullptr;
 6029 static const FunctionDecl *getVirtualOperatorDelete(QualType T) {
 6846     const FunctionDecl *FD = nullptr;
 6890       FD = dyn_cast_or_null<FunctionDecl>(
 6940           FunctionDecl *CorrespondingCallOpSpecialization =
 6988     const FunctionDecl *Definition = nullptr;
 7384   if (const FunctionDecl *FD = dyn_cast<FunctionDecl>(E->getDecl()))
 7384   if (const FunctionDecl *FD = dyn_cast<FunctionDecl>(E->getDecl()))
 8474   FunctionDecl *OperatorNew = E->getOperatorNew();
 9021   const FunctionDecl *Definition = nullptr;
 9053   const FunctionDecl *Definition = nullptr;
13196   FunctionDecl *OperatorDelete = E->getOperatorDelete();
13239     const FunctionDecl *VirtualDelete = getVirtualOperatorDelete(AllocType);
14325                                     const FunctionDecl *Callee,
14367 bool Expr::isPotentialConstantExpr(const FunctionDecl *FD,
14422                                               const FunctionDecl *FD,
tools/clang/lib/AST/ExternalASTMerger.cpp
  248   if (isa<FunctionDecl>(C.first.get()))
  456   for (auto *Spec : D->specializations()) {
tools/clang/lib/AST/Interp/ByteCodeEmitter.cpp
   21 Expected<Function *> ByteCodeEmitter::compileFunc(const FunctionDecl *F) {
tools/clang/lib/AST/Interp/ByteCodeEmitter.h
   40   llvm::Expected<Function *> compileFunc(const FunctionDecl *F);
   53   virtual bool visitFunc(const FunctionDecl *E) = 0;
tools/clang/lib/AST/Interp/ByteCodeStmtGen.cpp
   95 bool ByteCodeStmtGen<Emitter>::visitFunc(const FunctionDecl *F) {
tools/clang/lib/AST/Interp/ByteCodeStmtGen.h
   52   bool visitFunc(const FunctionDecl *F) override;
tools/clang/lib/AST/Interp/Context.cpp
   31                                               const FunctionDecl *FD) {
tools/clang/lib/AST/Interp/Context.h
   58                                        const FunctionDecl *FnDecl);
tools/clang/lib/AST/Interp/EvalEmitter.h
  118   bool ExecuteNoCall(const FunctionDecl *F, const SourceInfo &Info);
tools/clang/lib/AST/Interp/Frame.h
   39   virtual const FunctionDecl *getCallee() const = 0;
tools/clang/lib/AST/Interp/Function.cpp
   18 Function::Function(Program &P, const FunctionDecl *F, unsigned ArgSize,
tools/clang/lib/AST/Interp/Function.h
   74   const FunctionDecl *getDecl() const { return F; }
  113   Function(Program &P, const FunctionDecl *F, unsigned ArgSize,
  136   const FunctionDecl *F;
tools/clang/lib/AST/Interp/Interp.cpp
  345       const FunctionDecl *DiagDecl = F->getDecl();
tools/clang/lib/AST/Interp/InterpFrame.cpp
  113   const FunctionDecl *F = getCallee();
  151 const FunctionDecl *InterpFrame::getCallee() const {
tools/clang/lib/AST/Interp/InterpFrame.h
   57   const FunctionDecl *getCallee() const;
tools/clang/lib/AST/Interp/Program.cpp
  188 Function *Program::getFunction(const FunctionDecl *F) {
  194 llvm::Expected<Function *> Program::getOrCreateFunction(const FunctionDecl *F) {
  200   if (const FunctionDecl *FD = F->getDefinition())
tools/clang/lib/AST/Interp/Program.h
   76   Function *createFunction(const FunctionDecl *Def, Ts &&... Args) {
   90   Function *getFunction(const FunctionDecl *F);
   95   llvm::Expected<Function *> getOrCreateFunction(const FunctionDecl *F);
  139   llvm::DenseMap<const FunctionDecl *, std::unique_ptr<Function>> Funcs;
  144   llvm::DenseMap<const FunctionDecl *, std::vector<unsigned>> Relocs;
tools/clang/lib/AST/ItaniumMangle.cpp
   72   if (const auto *FD = dyn_cast<FunctionDecl>(D))
   72   if (const auto *FD = dyn_cast<FunctionDecl>(D))
   84   return isa<FunctionDecl>(DC) || isa<ObjCMethodDecl>(DC) || isa<BlockDecl>(DC);
   98 static const FunctionDecl *getStructor(const FunctionDecl *fn) {
   98 static const FunctionDecl *getStructor(const FunctionDecl *fn) {
  106   const FunctionDecl *fn = dyn_cast_or_null<FunctionDecl>(decl);
  106   const FunctionDecl *fn = dyn_cast_or_null<FunctionDecl>(decl);
  293       if (!isa<FunctionDecl>(ND) && !isa<VarDecl>(ND)) {
  424   void mangleFunctionEncoding(const FunctionDecl *FD);
  461   void mangleFunctionEncodingBareType(const FunctionDecl *FD);
  527                               const FunctionDecl *FD = nullptr);
  572   const FunctionDecl *FD = dyn_cast<FunctionDecl>(D);
  572   const FunctionDecl *FD = dyn_cast<FunctionDecl>(D);
  647   if (const FunctionDecl *FD = dyn_cast<FunctionDecl>(D))
  647   if (const FunctionDecl *FD = dyn_cast<FunctionDecl>(D))
  657 void CXXNameMangler::mangleFunctionEncoding(const FunctionDecl *FD) {
  708 void CXXNameMangler::mangleFunctionEncodingBareType(const FunctionDecl *FD) {
  792   if (const FunctionDecl *FD = dyn_cast<FunctionDecl>(ND)) {
  792   if (const FunctionDecl *FD = dyn_cast<FunctionDecl>(ND)) {
 1301       auto *FD = dyn_cast<FunctionDecl>(ND);
 1464       Arity = cast<FunctionDecl>(ND)->getNumParams();
 1567       mangleFunctionEncoding(cast<FunctionDecl>(DC));
 1589         if (const FunctionDecl *Func
 1590               = dyn_cast<FunctionDecl>(Parm->getDeclContext())) {
 1618       if (const FunctionDecl *Func
 1619             = dyn_cast<FunctionDecl>(Parm->getDeclContext())) {
 2863                                             const FunctionDecl *FD) {
 4565       if (isa<VarDecl>(D) || isa<FunctionDecl>(D)) {
tools/clang/lib/AST/JSONNodeDumper.cpp
  773 void JSONNodeDumper::VisitFunctionDecl(const FunctionDecl *FD) {
 1192   if (const FunctionDecl *FD = NE->getOperatorNew())
 1194   if (const FunctionDecl *FD = NE->getOperatorDelete())
 1201   if (const FunctionDecl *FD = DE->getOperatorDelete())
tools/clang/lib/AST/Linkage.h
  111   void mergeTemplateLV(LinkageInfo &LV, const FunctionDecl *fn,
tools/clang/lib/AST/Mangle.cpp
   57   if (const FunctionDecl *FD = dyn_cast<FunctionDecl>(ND))
   57   if (const FunctionDecl *FD = dyn_cast<FunctionDecl>(ND))
   75   const FunctionDecl *FD = dyn_cast<FunctionDecl>(ND);
   75   const FunctionDecl *FD = dyn_cast<FunctionDecl>(ND);
  173   const FunctionDecl *FD = cast<FunctionDecl>(D);
  173   const FunctionDecl *FD = cast<FunctionDecl>(D);
  306     if (auto *FD = dyn_cast<FunctionDecl>(D)) {
tools/clang/lib/AST/MicrosoftMangle.cpp
  112 static const FunctionDecl *getStructor(const NamedDecl *ND) {
  116   const auto *FD = cast<FunctionDecl>(ND);
  116   const auto *FD = cast<FunctionDecl>(ND);
  313   void mangleFunctionEncoding(const FunctionDecl *FD, bool ShouldMangle);
  328                           const FunctionDecl *D = nullptr,
  375   void mangleFunctionClass(const FunctionDecl *FD);
  424   if (const FunctionDecl *FD = dyn_cast<FunctionDecl>(D)) {
  424   if (const FunctionDecl *FD = dyn_cast<FunctionDecl>(D)) {
  493   if (const FunctionDecl *FD = dyn_cast<FunctionDecl>(D))
  493   if (const FunctionDecl *FD = dyn_cast<FunctionDecl>(D))
  501 void MicrosoftCXXNameMangler::mangleFunctionEncoding(const FunctionDecl *FD,
  762   if (const FunctionDecl *FD = dyn_cast<FunctionDecl>(ND)) {
  762   if (const FunctionDecl *FD = dyn_cast<FunctionDecl>(ND)) {
  918           const FunctionDecl *Func =
  919               Parm ? dyn_cast<FunctionDecl>(Parm->getDeclContext()) : nullptr;
 1080           if (const auto *F = dyn_cast<FunctionDecl>(P->getDeclContext()))
 1080           if (const auto *F = dyn_cast<FunctionDecl>(P->getDeclContext()))
 1126       if (const FunctionDecl *FD = dyn_cast<FunctionDecl>(ND)) {
 1126       if (const FunctionDecl *FD = dyn_cast<FunctionDecl>(ND)) {
 1463     } else if (const FunctionDecl *FD = dyn_cast<FunctionDecl>(ND)) {
 1463     } else if (const FunctionDecl *FD = dyn_cast<FunctionDecl>(ND)) {
 2170                                                  const FunctionDecl *D,
 2313 void MicrosoftCXXNameMangler::mangleFunctionClass(const FunctionDecl *FD) {
tools/clang/lib/AST/ODRHash.cpp
  288     if (!isa<FunctionDecl>(D)) {
  336   void VisitFunctionDecl(const FunctionDecl *D) {
  340     Inherited::VisitFunctionDecl(D);
  487       if (auto *Function = dyn_cast<FunctionDecl>(SubDecl)) {
  487       if (auto *Function = dyn_cast<FunctionDecl>(SubDecl)) {
  514 void ODRHash::AddFunctionDecl(const FunctionDecl *Function,
  522     if (auto *F = dyn_cast<FunctionDecl>(DC)) {
tools/clang/lib/AST/RecordLayoutBuilder.cpp
 2122       const FunctionDecl *Def;
tools/clang/lib/AST/StmtPrinter.cpp
 1788       cast<FunctionDecl>(DRE->getDecl())->getTemplateSpecializationArgs();
tools/clang/lib/AST/TextNodeDumper.cpp
   31 static void dumpPreviousDeclImpl(raw_ostream &OS, const Redeclarable<T> *D) {
   32   const T *Prev = D->getPreviousDecl();
  258   if (const FunctionDecl *FD = dyn_cast<FunctionDecl>(D)) {
  258   if (const FunctionDecl *FD = dyn_cast<FunctionDecl>(D)) {
  265   if (!isa<FunctionDecl>(*D)) {
 1270 void TextNodeDumper::VisitFunctionDecl(const FunctionDecl *D) {
tools/clang/lib/AST/Type.cpp
 3030     auto **slot = getTrailingObjects<FunctionDecl *>();
 3030     auto **slot = getTrailingObjects<FunctionDecl *>();
 3038     auto **slot = getTrailingObjects<FunctionDecl *>();
 3038     auto **slot = getTrailingObjects<FunctionDecl *>();
tools/clang/lib/ASTMatchers/ASTMatchersInternal.cpp
  610 const internal::VariadicDynCastAllOfMatcher<Decl, FunctionDecl> functionDecl;
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>());
  361     RetTypes.push_back(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
   95   if (const auto *FD = dyn_cast<FunctionDecl>(D)) {
   95   if (const auto *FD = dyn_cast<FunctionDecl>(D)) {
  296   if (const auto *FD = dyn_cast<FunctionDecl>(D)) {
  296   if (const auto *FD = dyn_cast<FunctionDecl>(D)) {
tools/clang/lib/Analysis/BodyFarm.cpp
  247 typedef Stmt *(*FunctionFarmer)(ASTContext &C, const FunctionDecl *D);
  281   FunctionDecl *callOperatorDecl = CallbackDecl->getLambdaCallOperator();
  317 static Stmt *create_call_once(ASTContext &C, const FunctionDecl *D) {
  477 static Stmt *create_dispatch_once(ASTContext &C, const FunctionDecl *D) {
  560 static Stmt *create_dispatch_sync(ASTContext &C, const FunctionDecl *D) {
  586 static Stmt *create_OSAtomicCompareAndSwap(ASTContext &C, const FunctionDecl *D)
  667 Stmt *BodyFarm::getBody(const FunctionDecl *D) {
tools/clang/lib/Analysis/CFG.cpp
 2590   if (FunctionDecl *FD = C->getDirectCallee()) {
tools/clang/lib/Analysis/CallGraph.cpp
   56     if (FunctionDecl *CalleeDecl = CE->getDirectCallee())
   84       for (FunctionDecl *FD : FTD->specializations())
   91     if (FunctionDecl *FD = E->getOperatorNew())
   98     if (FunctionDecl *Def = Ctor->getDefinition())
  160   if (const FunctionDecl *FD = dyn_cast<FunctionDecl>(D)) {
  160   if (const FunctionDecl *FD = dyn_cast<FunctionDecl>(D)) {
tools/clang/lib/Analysis/CocoaConventions.cpp
   97 bool coreFoundation::followsCreateRule(const FunctionDecl *fn) {
tools/clang/lib/Analysis/Consumed.cpp
  185 static bool isTestingFunction(const FunctionDecl *FunDecl) {
  265 static ConsumedState testsFor(const FunctionDecl *FunDecl) {
  491   void propagateReturnType(const Expr *Call, const FunctionDecl *Fun);
  495                         const FunctionDecl *FunDecl,
  498                   const FunctionDecl *FunD);
  580                                            const FunctionDecl *FunDecl,
  612                                      const FunctionDecl *FunD) {
  685                                               const FunctionDecl *Fun) {
  741   const FunctionDecl *FunDecl = Call->getDirectCallee();
  814   const auto *FunDecl = dyn_cast_or_null<FunctionDecl>(Call->getDirectCallee());
  814   const auto *FunDecl = dyn_cast_or_null<FunctionDecl>(Call->getDirectCallee());
 1199                                                     const FunctionDecl *D) {
 1305   const auto *D = dyn_cast_or_null<FunctionDecl>(AC.getDecl());
 1305   const auto *D = dyn_cast_or_null<FunctionDecl>(AC.getDecl());
tools/clang/lib/Analysis/ExprMutationAnalyzer.cpp
  400     const auto *Func = Nodes.getNodeAs<FunctionDecl>("func");
  400     const auto *Func = Nodes.getNodeAs<FunctionDecl>("func");
  435     const FunctionDecl &Func, ASTContext &Context)
tools/clang/lib/Analysis/PathDiagnostic.cpp
  800       if (const auto *FD = dyn_cast<FunctionDecl>(D)) {
  800       if (const auto *FD = dyn_cast<FunctionDecl>(D)) {
  975   if (const auto FD = dyn_cast<FunctionDecl>(D))
tools/clang/lib/Analysis/ReachableCode.cpp
   62     if (const auto *FDecl = dyn_cast<FunctionDecl>(DRE->getDecl()))
   62     if (const auto *FDecl = dyn_cast<FunctionDecl>(DRE->getDecl()))
  214       const FunctionDecl *Callee =
  215         dyn_cast_or_null<FunctionDecl>(cast<CallExpr>(S)->getCalleeDecl());
tools/clang/lib/Analysis/RetainSummaryManager.cpp
  184 static bool isRetain(const FunctionDecl *FD, StringRef FName) {
  188 static bool isRelease(const FunctionDecl *FD, StringRef FName) {
  192 static bool isAutorelease(const FunctionDecl *FD, StringRef FName) {
  233 RetainSummaryManager::getSummaryForOSObject(const FunctionDecl *FD,
  284     const FunctionDecl *FD,
  492 RetainSummaryManager::generateSummary(const FunctionDecl *FD,
  531 RetainSummaryManager::getFunctionSummary(const FunctionDecl *FD) {
  667     Summ = getFunctionSummary(cast_or_null<FunctionDecl>(C.getDecl()));
  700 RetainSummaryManager::getCFCreateGetRuleSummary(const FunctionDecl *FD) {
  713 RetainSummaryManager::canEval(const CallExpr *CE, const FunctionDecl *FD,
  761     const FunctionDecl* FDD = FD->getDefinition();
  800 RetainSummaryManager::getOSSummaryRetainRule(const FunctionDecl *FD) {
  809 RetainSummaryManager::getOSSummaryReleaseRule(const FunctionDecl *FD) {
  818 RetainSummaryManager::getOSSummaryFreeRule(const FunctionDecl *FD) {
  827 RetainSummaryManager::getOSSummaryCreateRule(const FunctionDecl *FD) {
  833 RetainSummaryManager::getOSSummaryGetRule(const FunctionDecl *FD) {
  839 RetainSummaryManager::getCFSummaryCreateRule(const FunctionDecl *FD) {
  845 RetainSummaryManager::getCFSummaryGetRule(const FunctionDecl *FD) {
  896   if (const auto *FD = dyn_cast<FunctionDecl>(ND)) {
  896   if (const auto *FD = dyn_cast<FunctionDecl>(ND)) {
  970                                                    const FunctionDecl *FD) {
tools/clang/lib/Analysis/ThreadSafety.cpp
 1591   void examineArguments(const FunctionDecl *FD,
 2002 void BuildLockset::examineArguments(const FunctionDecl *FD,
 2078         const FunctionDecl *FD = OE->getDirectCallee();
 2265   const auto *CurrentFunction = dyn_cast<FunctionDecl>(D);
 2265   const auto *CurrentFunction = dyn_cast<FunctionDecl>(D);
tools/clang/lib/Analysis/ThreadSafetyCommon.cpp
  283       if (isa<FunctionDecl>(D)
  284               ? (cast<FunctionDecl>(D)->getCanonicalDecl() == Canonical)
  293     VD = isa<FunctionDecl>(D)
  294              ? cast<FunctionDecl>(D)->getCanonicalDecl()->getParamDecl(I)
  379     if (const FunctionDecl *FD = CE->getDirectCallee()) {
  828                                       : cast<FunctionDecl>(D)->parameters();
tools/clang/lib/Analysis/plugins/SampleAnalyzer/MainCallChecker.cpp
   21   const FunctionDecl *FD = C.getSVal(Callee).getAsFunctionDecl();
tools/clang/lib/CodeGen/Address.h
  108 template <class U> inline U cast(CodeGen::Address addr) {
tools/clang/lib/CodeGen/CGBlocks.cpp
 2032   FunctionDecl *FD = FunctionDecl::Create(
 2032   FunctionDecl *FD = FunctionDecl::Create(
 2224   FunctionDecl *FD = FunctionDecl::Create(
 2224   FunctionDecl *FD = FunctionDecl::Create(
 2476   FunctionDecl *FD = FunctionDecl::Create(
 2476   FunctionDecl *FD = FunctionDecl::Create(
 2551   FunctionDecl *FD = FunctionDecl::Create(
 2551   FunctionDecl *FD = FunctionDecl::Create(
 2961       if ((ND = dyn_cast<FunctionDecl>(Result)) ||
tools/clang/lib/CodeGen/CGBuiltin.cpp
   69 llvm::Constant *CodeGenModule::getBuiltinLibFunction(const FunctionDecl *FD,
  445 static RValue emitLibraryCall(CodeGenFunction &CGF, const FunctionDecl *FD,
 1180   FunctionDecl *FD = FunctionDecl::Create(
 1180   FunctionDecl *FD = FunctionDecl::Create(
 1534   const FunctionDecl *FD = GD.getDecl()->getAsFunction();
 6070     const FunctionDecl *FD = E->getDirectCallee();
 7142     const FunctionDecl *FD = E->getDirectCallee();
tools/clang/lib/CodeGen/CGCUDANV.cpp
  280   FunctionDecl *cudaLaunchKernelFD = nullptr;
  282     if (FunctionDecl *FD = dyn_cast<FunctionDecl>(Result))
  282     if (FunctionDecl *FD = dyn_cast<FunctionDecl>(Result))
tools/clang/lib/CodeGen/CGCall.cpp
  265                                            const FunctionDecl *FD) {
  433 CodeGenTypes::arrangeFunctionDeclaration(const FunctionDecl *FD) {
  514   const FunctionDecl *FD = cast<FunctionDecl>(GD.getDecl());
  514   const FunctionDecl *FD = cast<FunctionDecl>(GD.getDecl());
 1853     if (const FunctionDecl *Fn = dyn_cast<FunctionDecl>(TargetDecl)) {
 1853     if (const FunctionDecl *Fn = dyn_cast<FunctionDecl>(TargetDecl)) {
 1913     if (auto *Fn = dyn_cast<FunctionDecl>(TargetDecl)) {
 2233   if (const FunctionDecl *FD = dyn_cast_or_null<FunctionDecl>(CurCodeDecl)) {
 2233   if (const FunctionDecl *FD = dyn_cast_or_null<FunctionDecl>(CurCodeDecl)) {
 2899       if (auto *FD = dyn_cast<FunctionDecl>(CurCodeDecl))
 3797   if (const FunctionDecl *FD = dyn_cast_or_null<FunctionDecl>(TargetDecl))
 3797   if (const FunctionDecl *FD = dyn_cast_or_null<FunctionDecl>(TargetDecl))
tools/clang/lib/CodeGen/CGCall.h
   77       const FunctionDecl *Decl;
  100     CGCallee(const FunctionDecl *builtinDecl, unsigned builtinID)
  120                                const FunctionDecl *builtinDecl) {
  157     const FunctionDecl *getBuiltinDecl() const {
tools/clang/lib/CodeGen/CGClass.cpp
  838   const FunctionDecl *Definition = nullptr;
 1177         FunctionDecl *FD = dyn_cast<FunctionDecl>(CE->getCalleeDecl());
 1177         FunctionDecl *FD = dyn_cast<FunctionDecl>(CE->getCalleeDecl());
 2925     FunctionDecl *CorrespondingCallOpSpecialization =
tools/clang/lib/CodeGen/CGCleanup.h
  611   static const EHPersonality &get(CodeGenModule &CGM, const FunctionDecl *FD);
tools/clang/lib/CodeGen/CGDebugInfo.cpp
  243 StringRef CGDebugInfo::getFunctionName(const FunctionDecl *FD) {
 1533   if (isa<FunctionDecl>(RD->getDeclContext()))
 1784         else if (const auto *FD = dyn_cast<FunctionDecl>(D))
 1784         else if (const auto *FD = dyn_cast<FunctionDecl>(D))
 1855 CGDebugInfo::CollectFunctionTemplateParams(const FunctionDecl *FD,
 1858       FunctionDecl::TK_FunctionTemplateSpecialization) {
 2155     if (FunctionDecl *Tmpl = MD->getInstantiatedFromMemberFunction())
 3235   const auto *FD = cast<FunctionDecl>(GD.getDecl());
 3235   const auto *FD = cast<FunctionDecl>(GD.getDecl());
 3289   if (VD->getDeclContext() && !isa<FunctionDecl>(VD->getDeclContext()) &&
 3335   auto *FD = cast<FunctionDecl>(GD.getDecl());
 3363   const FunctionDecl *CanonDecl = FD->getCanonicalDecl();
 3420   if (const auto *FD = dyn_cast<FunctionDecl>(D))
 3420   if (const auto *FD = dyn_cast<FunctionDecl>(D))
 3432   const auto *FD = dyn_cast<FunctionDecl>(D);
 3432   const auto *FD = dyn_cast<FunctionDecl>(D);
 3519   if (const auto *FD = dyn_cast<FunctionDecl>(D))
 3519   if (const auto *FD = dyn_cast<FunctionDecl>(D))
 3556   } else if (const auto *FD = dyn_cast<FunctionDecl>(D)) {
 3556   } else if (const auto *FD = dyn_cast<FunctionDecl>(D)) {
 3619   if (HasDecl && isa<FunctionDecl>(D))
 3627     if (auto *FD = dyn_cast<FunctionDecl>(D))
 3673   if (isa<FunctionDecl>(D)) {
 3711                                           const FunctionDecl *CalleeDecl) {
 3732   const auto *FD = cast<FunctionDecl>(GD.getDecl());
 3732   const auto *FD = cast<FunctionDecl>(GD.getDecl());
 4479   if (isa<FunctionDecl>(VD->getDeclContext()))
 4566   if (const auto *FD = dyn_cast<FunctionDecl>(USD.getUnderlyingDecl()))
 4566   if (const auto *FD = dyn_cast<FunctionDecl>(USD.getUnderlyingDecl()))
 4644     llvm::DenseMap<const FunctionDecl *, llvm::TrackingMDRef> &SPDefCache,
tools/clang/lib/CodeGen/CGDebugInfo.h
  136   llvm::DenseMap<const FunctionDecl *, llvm::TrackingMDRef> SPCache;
  139   llvm::DenseMap<const FunctionDecl *, llvm::TrackingMDRef> SPDefCache;
  255   llvm::DINodeArray CollectFunctionTemplateParams(const FunctionDecl *FD,
  420                                const FunctionDecl *CalleeDecl);
  650   StringRef getFunctionName(const FunctionDecl *FD);
tools/clang/lib/CodeGen/CGDecl.cpp
  205   if (const auto *FD = dyn_cast<FunctionDecl>(DC))
  205   if (const auto *FD = dyn_cast<FunctionDecl>(DC))
  292   else if (const auto *FD = dyn_cast<FunctionDecl>(DC))
  292   else if (const auto *FD = dyn_cast<FunctionDecl>(DC))
 1081     if (const auto *FD = dyn_cast<FunctionDecl>(DC)) {
 1081     if (const auto *FD = dyn_cast<FunctionDecl>(DC)) {
 2002     const FunctionDecl *FD = CA->getFunctionDecl();
tools/clang/lib/CodeGen/CGException.cpp
  213                                         const FunctionDecl *FD) {
  235   return get(CGF.CGM, dyn_cast_or_null<FunctionDecl>(FD));
  448   const FunctionDecl* FD = dyn_cast_or_null<FunctionDecl>(D);
  448   const FunctionDecl* FD = dyn_cast_or_null<FunctionDecl>(D);
  525   const FunctionDecl* FD = dyn_cast_or_null<FunctionDecl>(D);
  525   const FunctionDecl* FD = dyn_cast_or_null<FunctionDecl>(D);
tools/clang/lib/CodeGen/CGExpr.cpp
 2397                                                const FunctionDecl *FD) {
 2421                                      const Expr *E, const FunctionDecl *FD) {
 2666   if (const auto *FD = dyn_cast<FunctionDecl>(ND))
 2666   if (const auto *FD = dyn_cast<FunctionDecl>(ND))
 3890   if (const auto *FD = dyn_cast<FunctionDecl>(ND))
 3890   if (const auto *FD = dyn_cast<FunctionDecl>(ND))
 4546 static CGCallee EmitDirectCallee(CodeGenFunction &CGF, const FunctionDecl *FD) {
 4567     if (auto FD = dyn_cast<FunctionDecl>(DRE->getDecl())) {
 4571     if (auto FD = dyn_cast<FunctionDecl>(ME->getMemberDecl())) {
 4790       (!TargetDecl || !isa<FunctionDecl>(TargetDecl))) {
 4843       (!TargetDecl || !isa<FunctionDecl>(TargetDecl))) {
 4949     if (auto *CalleeDecl = dyn_cast_or_null<FunctionDecl>(TargetDecl))
tools/clang/lib/CodeGen/CGExprCXX.cpp
 1286                                 const FunctionDecl *CalleeDecl,
 1323     if (auto *FD = dyn_cast<FunctionDecl>(Decl))
 1323     if (auto *FD = dyn_cast<FunctionDecl>(Decl))
 1338 static UsualDeleteParams getUsualDeleteParams(const FunctionDecl *FD) {
 1386     const FunctionDecl *OperatorDelete;
 1401                         const FunctionDecl *OperatorDelete, ValueTy Ptr,
 1539   FunctionDecl *allocator = E->getOperatorNew();
 1751 void CodeGenFunction::EmitDeleteCall(const FunctionDecl *DeleteFD,
 1819     const FunctionDecl *OperatorDelete;
 1823                      const FunctionDecl *OperatorDelete,
 1834 CodeGenFunction::pushCallObjectDeleteCleanup(const FunctionDecl *OperatorDelete,
 1870   const FunctionDecl *OperatorDelete = DE->getOperatorDelete();
 1949     const FunctionDecl *OperatorDelete;
 1955                     const FunctionDecl *OperatorDelete,
 1983   const FunctionDecl *operatorDelete = E->getOperatorDelete();
tools/clang/lib/CodeGen/CGExprConstant.cpp
 1870     if (auto FD = dyn_cast<FunctionDecl>(D))
tools/clang/lib/CodeGen/CGNonTrivialStruct.cpp
  462     FunctionDecl *FD = FunctionDecl::Create(
  462     FunctionDecl *FD = FunctionDecl::Create(
tools/clang/lib/CodeGen/CGObjC.cpp
 1293     if (const FunctionDecl *callee
 1294           = dyn_cast_or_null<FunctionDecl>(call->getCalleeDecl()))
 3517   FunctionDecl *FD = FunctionDecl::Create(
 3517   FunctionDecl *FD = FunctionDecl::Create(
 3601   FunctionDecl *FD = FunctionDecl::Create(
 3601   FunctionDecl *FD = FunctionDecl::Create(
tools/clang/lib/CodeGen/CGOpenMPRuntime.cpp
 1278     const auto *D = cast<FunctionDecl>(OldGD.getDecl());
 1278     const auto *D = cast<FunctionDecl>(OldGD.getDecl());
 1672     if (const auto *FD = dyn_cast_or_null<FunctionDecl>(CGF.CurFuncDecl))
 1672     if (const auto *FD = dyn_cast_or_null<FunctionDecl>(CGF.CurFuncDecl))
 9583     if (const auto *FD = dyn_cast<FunctionDecl>(GD.getDecl())) {
 9583     if (const auto *FD = dyn_cast<FunctionDecl>(GD.getDecl())) {
 9596   if (const auto *FD = dyn_cast<FunctionDecl>(VD)) {
 9596   if (const auto *FD = dyn_cast<FunctionDecl>(VD)) {
 9750   if (isa<FunctionDecl>(GD.getDecl()) ||
 9839   const auto *D = cast<FunctionDecl>(GD.getDecl());
 9839   const auto *D = cast<FunctionDecl>(GD.getDecl());
10242 static unsigned evaluateCDTSize(const FunctionDecl *FD,
10295 emitX86DeclareSimdFunction(const FunctionDecl *FD, llvm::Function *Fn,
10441 getNDSWDS(const FunctionDecl *FD, ArrayRef<ParamAttrTy> ParamAttrs) {
10562     CodeGenModule &CGM, const FunctionDecl *FD, unsigned UserVLEN,
10669 void CGOpenMPRuntime::emitDeclareSimdFunction(const FunctionDecl *FD,
10930   if (const auto *FD = dyn_cast<FunctionDecl>(D))
10930   if (const auto *FD = dyn_cast<FunctionDecl>(D))
11079 static const FunctionDecl *getDeclareVariantFunction(ASTContext &Ctx,
11080                                                      const FunctionDecl *FD) {
11120   return cast<FunctionDecl>(
11126   const auto *D = cast<FunctionDecl>(GD.getDecl());
11126   const auto *D = cast<FunctionDecl>(GD.getDecl());
11132   const FunctionDecl *NewFD = getDeclareVariantFunction(CGM.getContext(), D);
tools/clang/lib/CodeGen/CGOpenMPRuntime.h
  660   llvm::MapVector<CanonicalDeclPtr<const FunctionDecl>,
 1582   virtual void emitDeclareSimdFunction(const FunctionDecl *FD,
tools/clang/lib/CodeGen/CGOpenMPRuntimeNVPTX.cpp
 1912   auto *NewFD = cast<FunctionDecl>(NewGD.getDecl());
 4668   if (const auto *FD = dyn_cast<FunctionDecl>(D)) {
 4668   if (const auto *FD = dyn_cast<FunctionDecl>(D)) {
tools/clang/lib/CodeGen/CGStmt.cpp
 1711     auto *FD = dyn_cast_or_null<FunctionDecl>(Call->getCalleeDecl());
tools/clang/lib/CodeGen/CGStmtOpenMP.cpp
  405   FunctionDecl *DebugFunctionDecl = nullptr;
  409     DebugFunctionDecl = FunctionDecl::Create(
 4170         CGM.getMangledName(GlobalDecl(cast<FunctionDecl>(CGF.CurFuncDecl)));
tools/clang/lib/CodeGen/CGVTables.cpp
  836     const FunctionDecl *def = nullptr;
tools/clang/lib/CodeGen/CodeGenABITypes.cpp
   67 CodeGen::convertFreeFunctionType(CodeGenModule &CGM, const FunctionDecl *FD) {
tools/clang/lib/CodeGen/CodeGenAction.cpp
  184     void HandleInlineFunctionDefinition(FunctionDecl *D) override {
tools/clang/lib/CodeGen/CodeGenFunction.cpp
  536 void CodeGenFunction::EmitOpenCLKernelMetadata(const FunctionDecl *FD,
  589   if (auto *FD = dyn_cast_or_null<FunctionDecl>(F))
  631                                             const FunctionDecl *FD) {
  652   if (const auto *FD = dyn_cast_or_null<FunctionDecl>(D))
  652   if (const auto *FD = dyn_cast_or_null<FunctionDecl>(D))
  736     if (const auto *FD = dyn_cast<FunctionDecl>(D))
  736     if (const auto *FD = dyn_cast<FunctionDecl>(D))
  776     if (const FunctionDecl *FD = dyn_cast_or_null<FunctionDecl>(D))
  776     if (const FunctionDecl *FD = dyn_cast_or_null<FunctionDecl>(D))
  783     if (const FunctionDecl *FD = dyn_cast_or_null<FunctionDecl>(D)) {
  783     if (const FunctionDecl *FD = dyn_cast_or_null<FunctionDecl>(D)) {
  819     if (const FunctionDecl *FD = dyn_cast_or_null<FunctionDecl>(D))
  819     if (const FunctionDecl *FD = dyn_cast_or_null<FunctionDecl>(D))
  825   if (const FunctionDecl *FD = dyn_cast_or_null<FunctionDecl>(D))
  825   if (const FunctionDecl *FD = dyn_cast_or_null<FunctionDecl>(D))
  855     if (auto *FD = dyn_cast_or_null<FunctionDecl>(D))
 1087   const FunctionDecl *FD = cast<FunctionDecl>(GD.getDecl());
 1087   const FunctionDecl *FD = cast<FunctionDecl>(GD.getDecl());
 1129 shouldUseUndefinedBehaviorReturnOptimization(const FunctionDecl *FD,
 1143   const FunctionDecl *FD = cast<FunctionDecl>(GD.getDecl());
 1143   const FunctionDecl *FD = cast<FunctionDecl>(GD.getDecl());
 1171   if (const FunctionDecl *SpecDecl = FD->getTemplateInstantiationPattern())
 1539     auto *FD = dyn_cast_or_null<FunctionDecl>(Call->getCalleeDecl());
 2147                                 CodeGenModule &CGM, const FunctionDecl *FD,
 2177                                           const FunctionDecl *TargetDecl) {
 2184                                           const FunctionDecl *TargetDecl) {
 2191   const FunctionDecl *FD = dyn_cast_or_null<FunctionDecl>(CurCodeDecl);
 2191   const FunctionDecl *FD = dyn_cast_or_null<FunctionDecl>(CurCodeDecl);
tools/clang/lib/CodeGen/CodeGenFunction.h
  434     AbstractCallee(const FunctionDecl *FD) : CalleeDecl(FD) {}
  437       return dyn_cast_or_null<FunctionDecl>(CalleeDecl);
  441       if (const auto *FD = dyn_cast<FunctionDecl>(CalleeDecl))
  441       if (const auto *FD = dyn_cast<FunctionDecl>(CalleeDecl))
  446       if (const auto *FD = dyn_cast<FunctionDecl>(CalleeDecl))
  446       if (const auto *FD = dyn_cast<FunctionDecl>(CalleeDecl))
 1609   void EmitOpenCLKernelMetadata(const FunctionDecl *FD,
 1691   void pushCallObjectDeleteCleanup(const FunctionDecl *OperatorDelete,
 2575   void EmitDeleteCall(const FunctionDecl *DeleteFD, llvm::Value *Ptr,
 3615   void checkTargetFeatures(const CallExpr *E, const FunctionDecl *TargetDecl);
 3616   void checkTargetFeatures(SourceLocation Loc, const FunctionDecl *TargetDecl);
 4330     FunctionDecl *FD;
tools/clang/lib/CodeGen/CodeGenModule.cpp
 1002     const auto *FD = dyn_cast<FunctionDecl>(ND);
 1002     const auto *FD = dyn_cast<FunctionDecl>(ND);
 1013   if (const auto *FD = dyn_cast<FunctionDecl>(ND))
 1013   if (const auto *FD = dyn_cast<FunctionDecl>(ND))
 1034                                             const FunctionDecl *FD) {
 1052     const FunctionDecl *OtherFD = OtherGD.getCanonicalDecl()
 1097   if (auto *FD = dyn_cast<FunctionDecl>(GD.getDecl()))
 1190   const auto *D = cast<FunctionDecl>(GD.getDecl());
 1190   const auto *D = cast<FunctionDecl>(GD.getDecl());
 1264                                          const FunctionDecl *FD,
 1556     if (auto *FD = dyn_cast<FunctionDecl>(D)) {
 1564         const FunctionDecl *Pattern = FD->getTemplateInstantiationPattern();
 1616     if (auto *FD = dyn_cast<FunctionDecl>(D)) {
 1663   const auto *FD = dyn_cast_or_null<FunctionDecl>(GD.getDecl());
 1663   const auto *FD = dyn_cast_or_null<FunctionDecl>(GD.getDecl());
 1770 void CodeGenModule::CreateFunctionTypeMetadataForIcall(const FunctionDecl *FD,
 1802   const auto *FD = cast<FunctionDecl>(GD.getDecl());
 1802   const auto *FD = cast<FunctionDecl>(GD.getDecl());
 2325   if (const auto *FD = dyn_cast<FunctionDecl>(Global)) {
 2325   if (const auto *FD = dyn_cast<FunctionDecl>(Global)) {
 2401                                       GlobalDecl(cast<FunctionDecl>(VD)),
 2451       if (isa<FunctionDecl>(Global) && !Global->hasAttr<CUDAHostAttr>() &&
 2476   if (const auto *FD = dyn_cast<FunctionDecl>(Global)) {
 2476   if (const auto *FD = dyn_cast<FunctionDecl>(Global)) {
 2536   if (LangOpts.OpenMP && isa<FunctionDecl>(Global) && OpenMPRuntime &&
 2583       const FunctionDecl *FD = E->getDirectCallee();
 2637       if (isa<FunctionDecl>(VD))
 2676 CodeGenModule::isTriviallyRecursive(const FunctionDecl *FD) {
 2696   const auto *F = cast<FunctionDecl>(GD.getDecl());
 2696   const auto *F = cast<FunctionDecl>(GD.getDecl());
 2703     Visitor.TraverseFunctionDecl(const_cast<FunctionDecl*>(F));
 2734   const auto *FD = cast<FunctionDecl>(GD.getDecl());
 2734   const auto *FD = cast<FunctionDecl>(GD.getDecl());
 2749   const auto *D = cast<FunctionDecl>(OldGD.getDecl());
 2749   const auto *D = cast<FunctionDecl>(OldGD.getDecl());
 2796   if (const auto *FD = dyn_cast<FunctionDecl>(D)) {
 2796   if (const auto *FD = dyn_cast<FunctionDecl>(D)) {
 2856     const FunctionDecl *FD = cast<FunctionDecl>(GD.getDecl());
 2856     const FunctionDecl *FD = cast<FunctionDecl>(GD.getDecl());
 2911   const auto *FD = cast<FunctionDecl>(GD.getDecl());
 2911   const auto *FD = cast<FunctionDecl>(GD.getDecl());
 3026     GlobalDecl GD, llvm::Type *DeclTy, const FunctionDecl *FD) {
 3087   if (const FunctionDecl *FD = cast_or_null<FunctionDecl>(D)) {
 3087   if (const FunctionDecl *FD = cast_or_null<FunctionDecl>(D)) {
 3092       if (const FunctionDecl *FDDef = FD->getDefinition()) {
 3121       const FunctionDecl *FD = cast_or_null<FunctionDecl>(D);
 3121       const FunctionDecl *FD = cast_or_null<FunctionDecl>(D);
 3244       for (const auto *FD = cast<FunctionDecl>(D)->getMostRecentDecl(); FD;
 3244       for (const auto *FD = cast<FunctionDecl>(D)->getMostRecentDecl(); FD;
 3276     const auto *FD = cast<FunctionDecl>(GD.getDecl());
 3276     const auto *FD = cast<FunctionDecl>(GD.getDecl());
 3296 static const FunctionDecl *
 3303     if (const auto FD = dyn_cast<FunctionDecl>(Result))
 3326           if (const auto *FD = dyn_cast<FunctionDecl>(Result))
 3326           if (const auto *FD = dyn_cast<FunctionDecl>(Result))
 3362         const FunctionDecl *FD = GetRuntimeFunctionDecl(Context, Name);
 3604   } else if (isa<FunctionDecl>(D)) {
 3803   const SomeDecl *First = D->getFirstDecl();
 3835     Linkage = CGM.getContext().GetGVALinkageForFunction(cast<FunctionDecl>(&D));
 4187   if (const auto *FD = D->getAsFunction())
 4390   const auto *D = cast<FunctionDecl>(GD.getDecl());
 4390   const auto *D = cast<FunctionDecl>(GD.getDecl());
 5230     EmitGlobal(cast<FunctionDecl>(D));
 5482     if (!cast<FunctionDecl>(D)->doesThisDeclarationHaveABody())
 5501   if (const auto *Fn = dyn_cast<FunctionDecl>(D)) {
 5501   if (const auto *Fn = dyn_cast<FunctionDecl>(D)) {
 5527       GlobalDecl GD(cast<FunctionDecl>(D));
 5883   const FunctionDecl *FD = GD.getDecl()->getAsFunction();
tools/clang/lib/CodeGen/CodeGenModule.h
  499   bool isTriviallyRecursive(const FunctionDecl *F);
  988   llvm::Constant *getBuiltinLibFunction(const FunctionDecl *FD,
 1015   void MaybeHandleStaticInExternC(const SomeDecl *D, llvm::GlobalValue *GV);
 1324   void CreateFunctionTypeMetadataForIcall(const FunctionDecl *FD,
 1361                             const FunctionDecl *FD = nullptr,
 1378                                                   const FunctionDecl *FD);
 1379   void UpdateMultiVersionNames(GlobalDecl GD, const FunctionDecl *FD);
tools/clang/lib/CodeGen/CodeGenPGO.cpp
  389   void VisitFunctionDecl(const FunctionDecl *D) {
  805   if (const FunctionDecl *FD = dyn_cast_or_null<FunctionDecl>(D))
  805   if (const FunctionDecl *FD = dyn_cast_or_null<FunctionDecl>(D))
  872   if (const FunctionDecl *FD = dyn_cast_or_null<FunctionDecl>(D))
  872   if (const FunctionDecl *FD = dyn_cast_or_null<FunctionDecl>(D))
tools/clang/lib/CodeGen/CodeGenTypes.h
  201   const CGFunctionInfo &arrangeFunctionDeclaration(const FunctionDecl *FD);
tools/clang/lib/CodeGen/ItaniumCXXABI.cpp
 2430     FunctionDecl *FD = FunctionDecl::Create(
 2430     FunctionDecl *FD = FunctionDecl::Create(
tools/clang/lib/CodeGen/MicrosoftCXXABI.cpp
  366         getContext().GetGVALinkageForFunction(cast<FunctionDecl>(GD.getDecl()));
tools/clang/lib/CodeGen/ModuleBuilder.cpp
   66     SmallVector<FunctionDecl *, 8> DeferredInlineMemberFuncDefs;
  115       if (auto FD = dyn_cast<FunctionDecl>(D)) {
  188     void HandleInlineFunctionDefinition(FunctionDecl *D) override {
tools/clang/lib/CodeGen/ObjectFilePCHContainerOperations.cpp
   98     bool VisitFunctionDecl(FunctionDecl *D) {
tools/clang/lib/CodeGen/TargetInfo.cpp
  768     if (const auto *FD = dyn_cast_or_null<FunctionDecl>(D)) {
  768     if (const auto *FD = dyn_cast_or_null<FunctionDecl>(D)) {
  783     if (auto *FD = dyn_cast_or_null<FunctionDecl>(D)) {
 1984   if (const FunctionDecl *FD = dyn_cast_or_null<FunctionDecl>(D)) {
 1984   if (const FunctionDecl *FD = dyn_cast_or_null<FunctionDecl>(D)) {
 2356     if (const FunctionDecl *FD = dyn_cast_or_null<FunctionDecl>(D)) {
 2356     if (const FunctionDecl *FD = dyn_cast_or_null<FunctionDecl>(D)) {
 2467   if (const FunctionDecl *FD = dyn_cast_or_null<FunctionDecl>(D)) {
 2467   if (const FunctionDecl *FD = dyn_cast_or_null<FunctionDecl>(D)) {
 5055     const FunctionDecl *FD = dyn_cast_or_null<FunctionDecl>(D);
 5055     const FunctionDecl *FD = dyn_cast_or_null<FunctionDecl>(D);
 5711     const FunctionDecl *FD = dyn_cast_or_null<FunctionDecl>(D);
 5711     const FunctionDecl *FD = dyn_cast_or_null<FunctionDecl>(D);
 6466   const FunctionDecl *FD = dyn_cast_or_null<FunctionDecl>(D);
 6466   const FunctionDecl *FD = dyn_cast_or_null<FunctionDecl>(D);
 6910   if (const FunctionDecl *FD = dyn_cast_or_null<FunctionDecl>(D)) {
 6910   if (const FunctionDecl *FD = dyn_cast_or_null<FunctionDecl>(D)) {
 6967     const FunctionDecl *FD = dyn_cast_or_null<FunctionDecl>(D);
 6967     const FunctionDecl *FD = dyn_cast_or_null<FunctionDecl>(D);
 7350     const auto *FD = dyn_cast_or_null<FunctionDecl>(D);
 7350     const auto *FD = dyn_cast_or_null<FunctionDecl>(D);
 7384   const FunctionDecl *FD = dyn_cast_or_null<FunctionDecl>(D);
 7384   const FunctionDecl *FD = dyn_cast_or_null<FunctionDecl>(D);
 7925          (isa<FunctionDecl>(D) && D->hasAttr<CUDAGlobalAttr>()) ||
 7951   const FunctionDecl *FD = dyn_cast_or_null<FunctionDecl>(D);
 7951   const FunctionDecl *FD = dyn_cast_or_null<FunctionDecl>(D);
 9218   if (const FunctionDecl *FD = dyn_cast<FunctionDecl>(D)) {
 9218   if (const FunctionDecl *FD = dyn_cast<FunctionDecl>(D)) {
 9672     const auto *FD = dyn_cast_or_null<FunctionDecl>(D);
 9672     const auto *FD = dyn_cast_or_null<FunctionDecl>(D);
tools/clang/lib/CrossTU/CrossTranslationUnit.cpp
  179 static bool hasBodyOrInit(const FunctionDecl *D, const FunctionDecl *&DefD) {
  179 static bool hasBodyOrInit(const FunctionDecl *D, const FunctionDecl *&DefD) {
  185 template <typename T> static bool hasBodyOrInit(const T *D) {
  186   const T *Unused;
  207 const T *
  214       if (const auto *ND = findDefInDeclContext<T>(SubDC, LookupName))
  214       if (const auto *ND = findDefInDeclContext<T>(SubDC, LookupName))
  217     const auto *ND = dyn_cast<T>(D);
  217     const auto *ND = dyn_cast<T>(D);
  218     const T *ResultDecl;
  230 llvm::Expected<const T *> CrossTranslationUnitContext::getCrossTUDefinitionImpl(
  231     const T *D, StringRef CrossTUDir, StringRef IndexName,
  298   if (const T *ResultDecl = findDefInDeclContext<T>(TU, *LookupName))
  298   if (const T *ResultDecl = findDefInDeclContext<T>(TU, *LookupName))
  303 llvm::Expected<const FunctionDecl *>
  304 CrossTranslationUnitContext::getCrossTUDefinition(const FunctionDecl *FD,
  498 llvm::Expected<const T *>
  499 CrossTranslationUnitContext::importDefinitionImpl(const T *D, ASTUnit *Unit) {
  524   auto *ToDecl = cast<T>(*ToDeclOrError);
  531 llvm::Expected<const FunctionDecl *>
  532 CrossTranslationUnitContext::importDefinition(const FunctionDecl *FD,
tools/clang/lib/Frontend/ASTConsumers.cpp
  184   if (isa<FunctionDecl>(D) || isa<ObjCMethodDecl>(D)) {
tools/clang/lib/Frontend/InterfaceStubFunctionsConsumer.cpp
   61       if (const FunctionDecl *FD = dyn_cast<FunctionDecl>(ND)) {
   61       if (const FunctionDecl *FD = dyn_cast<FunctionDecl>(ND)) {
   80         if (const auto *FD =
   81                 dyn_cast_or_null<FunctionDecl>(VD->getParentFunctionOrMethod()))
  117       if (const auto *FD = dyn_cast<FunctionDecl>(ND))
  117       if (const auto *FD = dyn_cast<FunctionDecl>(ND))
  146     for (const auto *D : FTD.specializations())
  212         if (const auto *FD = dyn_cast<FunctionDecl>(ND))
  212         if (const auto *FD = dyn_cast<FunctionDecl>(ND))
  243             *S.LateParsedTemplateMap.find(cast<FunctionDecl>(FD))->second;
tools/clang/lib/Frontend/Rewrite/RewriteModernObjC.cpp
   97     FunctionDecl *MsgSendFunctionDecl;
   98     FunctionDecl *MsgSendSuperFunctionDecl;
   99     FunctionDecl *MsgSendStretFunctionDecl;
  100     FunctionDecl *MsgSendSuperStretFunctionDecl;
  101     FunctionDecl *MsgSendFpretFunctionDecl;
  102     FunctionDecl *GetClassFunctionDecl;
  103     FunctionDecl *GetMetaClassFunctionDecl;
  104     FunctionDecl *GetSuperClassFunctionDecl;
  105     FunctionDecl *SelGetUidFunctionDecl;
  106     FunctionDecl *CFStringFunctionDecl;
  107     FunctionDecl *SuperConstructorFunctionDecl;
  108     FunctionDecl *CurFunctionDef;
  157     SmallVector<FunctionDecl*, 32> FunctionDefinitionsSeen;
  210         if (FunctionDecl *FDecl = dyn_cast<FunctionDecl>(*I)) {
  210         if (FunctionDecl *FDecl = dyn_cast<FunctionDecl>(*I)) {
  336     void RewriteFunctionDecl(FunctionDecl *FD);
  339     void RewriteBlockLiteralFunctionDecl(FunctionDecl *FD);
  392     void RewriteBlockPointerFunctionArgs(FunctionDecl *FD);
  412     CallExpr *SynthesizeCallToFunctionDecl(FunctionDecl *FD,
  417     Expr *SynthMsgSendStretCallExpr(FunctionDecl *MsgSendStretFlavor,
  479     FunctionDecl *SynthBlockInitFunctionDecl(StringRef name);
  487     void InsertBlockLiteralsWithinFunction(FunctionDecl *FD);
  729   if (FunctionDecl *FD = dyn_cast<FunctionDecl>(D)) {
  729   if (FunctionDecl *FD = dyn_cast<FunctionDecl>(D)) {
 2089 RewriteModernObjC::SynthesizeCallToFunctionDecl(FunctionDecl *FD,
 2197   else if (FunctionDecl *FD = dyn_cast<FunctionDecl>(Dcl)) {
 2197   else if (FunctionDecl *FD = dyn_cast<FunctionDecl>(Dcl)) {
 2314   SelGetUidFunctionDecl = FunctionDecl::Create(*Context, TUDecl,
 2321 void RewriteModernObjC::RewriteFunctionDecl(FunctionDecl *FD) {
 2374 void RewriteModernObjC::RewriteBlockLiteralFunctionDecl(FunctionDecl *FD) {
 2412   SuperConstructorFunctionDecl = FunctionDecl::Create(*Context, TUDecl,
 2431   MsgSendFunctionDecl = FunctionDecl::Create(*Context, TUDecl,
 2445   MsgSendSuperFunctionDecl = FunctionDecl::Create(*Context, TUDecl,
 2464   MsgSendStretFunctionDecl = FunctionDecl::Create(*Context, TUDecl,
 2480   MsgSendSuperStretFunctionDecl = FunctionDecl::Create(*Context, TUDecl,
 2500   MsgSendFpretFunctionDecl = FunctionDecl::Create(*Context, TUDecl,
 2514   GetClassFunctionDecl = FunctionDecl::Create(*Context, TUDecl,
 2529   GetSuperClassFunctionDecl = FunctionDecl::Create(*Context, TUDecl,
 2544   GetMetaClassFunctionDecl = FunctionDecl::Create(*Context, TUDecl,
 2621   FunctionDecl *MsgSendFlavor = MsgSendFunctionDecl;
 2704   FunctionDecl *MsgSendFlavor = MsgSendFunctionDecl;
 2713   FunctionDecl *NSArrayFD = SynthBlockInitFunctionDecl(NSArrayFName);
 2825   FunctionDecl *MsgSendFlavor = MsgSendFunctionDecl;
 2834   FunctionDecl *NSDictFD = SynthBlockInitFunctionDecl(NSDictFName);
 3034                                                  FunctionDecl *FD) {
 3062     if (const FunctionDecl *FD = dyn_cast<FunctionDecl>(D)) {
 3062     if (const FunctionDecl *FD = dyn_cast<FunctionDecl>(D)) {
 3085 Expr *RewriteModernObjC::SynthMsgSendStretCallExpr(FunctionDecl *MsgSendStretFlavor,
 3167   FunctionDecl *FD =
 3168       FunctionDecl::Create(*Context, TUDecl, SourceLocation(), SourceLocation(),
 3210   FunctionDecl *MsgSendFlavor = MsgSendFunctionDecl;
 3212   FunctionDecl *MsgSendStretFlavor = nullptr;
 4429 void RewriteModernObjC::InsertBlockLiteralsWithinFunction(FunctionDecl *FD) {
 4766 void RewriteModernObjC::RewriteBlockPointerFunctionArgs(FunctionDecl *FD) {
 4863   if (FunctionDecl *FD = dyn_cast<FunctionDecl>(ND)) {
 4863   if (FunctionDecl *FD = dyn_cast<FunctionDecl>(ND)) {
 5187 FunctionDecl *RewriteModernObjC::SynthBlockInitFunctionDecl(StringRef name) {
 5190   return FunctionDecl::Create(*Context, TUDecl, SourceLocation(),
 5259   FunctionDecl *FD;
 5681       FunctionDecl *FD = cast<FunctionDecl>(D);
 5681       FunctionDecl *FD = cast<FunctionDecl>(D);
 5830     FunctionDecl *FDecl = FunctionDefinitionsSeen[i];
tools/clang/lib/Frontend/Rewrite/RewriteObjC.cpp
   94     FunctionDecl *MsgSendFunctionDecl;
   95     FunctionDecl *MsgSendSuperFunctionDecl;
   96     FunctionDecl *MsgSendStretFunctionDecl;
   97     FunctionDecl *MsgSendSuperStretFunctionDecl;
   98     FunctionDecl *MsgSendFpretFunctionDecl;
   99     FunctionDecl *GetClassFunctionDecl;
  100     FunctionDecl *GetMetaClassFunctionDecl;
  101     FunctionDecl *GetSuperClassFunctionDecl;
  102     FunctionDecl *SelGetUidFunctionDecl;
  103     FunctionDecl *CFStringFunctionDecl;
  104     FunctionDecl *SuperConstructorFunctionDecl;
  105     FunctionDecl *CurFunctionDef;
  106     FunctionDecl *CurFunctionDeclToDeclareForBlock;
  284     void RewriteFunctionDecl(FunctionDecl *FD);
  287     void RewriteBlockLiteralFunctionDecl(FunctionDecl *FD);
  320     void RewriteBlockPointerFunctionArgs(FunctionDecl *FD);
  349     CallExpr *SynthesizeCallToFunctionDecl(FunctionDecl *FD,
  353     CallExpr *SynthMsgSendStretCallExpr(FunctionDecl *MsgSendStretFlavor,
  389     FunctionDecl *SynthBlockInitFunctionDecl(StringRef name);
  398     void InsertBlockLiteralsWithinFunction(FunctionDecl *FD);
  658   if (FunctionDecl *FD = dyn_cast<FunctionDecl>(D)) {
  658   if (FunctionDecl *FD = dyn_cast<FunctionDecl>(D)) {
 2004 RewriteObjC::SynthesizeCallToFunctionDecl(FunctionDecl *FD,
 2113   else if (FunctionDecl *FD = dyn_cast<FunctionDecl>(Dcl)) {
 2113   else if (FunctionDecl *FD = dyn_cast<FunctionDecl>(Dcl)) {
 2226   SelGetUidFunctionDecl = FunctionDecl::Create(*Context, TUDecl,
 2233 void RewriteObjC::RewriteFunctionDecl(FunctionDecl *FD) {
 2286 void RewriteObjC::RewriteBlockLiteralFunctionDecl(FunctionDecl *FD) {
 2321   SuperConstructorFunctionDecl = FunctionDecl::Create(*Context, TUDecl,
 2340   MsgSendFunctionDecl = FunctionDecl::Create(*Context, TUDecl,
 2362   MsgSendSuperFunctionDecl = FunctionDecl::Create(*Context, TUDecl,
 2381   MsgSendStretFunctionDecl = FunctionDecl::Create(*Context, TUDecl,
 2405   MsgSendSuperStretFunctionDecl = FunctionDecl::Create(*Context, TUDecl,
 2425   MsgSendFpretFunctionDecl = FunctionDecl::Create(*Context, TUDecl,
 2439   GetClassFunctionDecl = FunctionDecl::Create(*Context, TUDecl,
 2454   GetSuperClassFunctionDecl = FunctionDecl::Create(*Context, TUDecl,
 2469   GetMetaClassFunctionDecl = FunctionDecl::Create(*Context, TUDecl,
 2583 CallExpr *RewriteObjC::SynthMsgSendStretCallExpr(FunctionDecl *MsgSendStretFlavor,
 2637   FunctionDecl *MsgSendFlavor = MsgSendFunctionDecl;
 2639   FunctionDecl *MsgSendStretFlavor = nullptr;
 3618 void RewriteObjC::InsertBlockLiteralsWithinFunction(FunctionDecl *FD) {
 3920 void RewriteObjC::RewriteBlockPointerFunctionArgs(FunctionDecl *FD) {
 4017   if (FunctionDecl *FD = dyn_cast<FunctionDecl>(ND)) {
 4017   if (FunctionDecl *FD = dyn_cast<FunctionDecl>(ND)) {
 4341 FunctionDecl *RewriteObjC::SynthBlockInitFunctionDecl(StringRef name) {
 4344   return FunctionDecl::Create(*Context, TUDecl, SourceLocation(),
 4405   FunctionDecl *FD;
 4779       FunctionDecl *FD = cast<FunctionDecl>(D);
 4779       FunctionDecl *FD = cast<FunctionDecl>(D);
tools/clang/lib/Index/IndexBody.cpp
  130     if (auto *FD = dyn_cast<FunctionDecl>(ParentDC))
tools/clang/lib/Index/IndexDecl.cpp
   93         if (auto *FD = dyn_cast<FunctionDecl>(DC)) {
  103       } else if (const FunctionDecl *FD = dyn_cast<FunctionDecl>(D)) {
  103       } else if (const FunctionDecl *FD = dyn_cast<FunctionDecl>(D)) {
  113       if (const auto *FD = dyn_cast<FunctionDecl>(D)) {
  113       if (const auto *FD = dyn_cast<FunctionDecl>(D)) {
  216         if (const auto *FD = dyn_cast<FunctionDecl>(ND)) {
  216         if (const auto *FD = dyn_cast<FunctionDecl>(ND)) {
  217           const auto *DFD = cast<FunctionDecl>(D);
  217           const auto *DFD = cast<FunctionDecl>(D);
  229   bool VisitFunctionDecl(const FunctionDecl *D) {
  659     if (const auto *FD = dyn_cast<FunctionDecl>(D))
  659     if (const auto *FD = dyn_cast<FunctionDecl>(D))
tools/clang/lib/Index/IndexSymbol.cpp
  368   if (const FunctionDecl *FD = dyn_cast<FunctionDecl>(D)) {
  368   if (const FunctionDecl *FD = dyn_cast<FunctionDecl>(D)) {
  370           FunctionDecl::TK_FunctionTemplateSpecialization) {
tools/clang/lib/Index/IndexTypeSourceInfo.cpp
   93     if (auto FD = dyn_cast<FunctionDecl>(D->getDeclContext())) {
tools/clang/lib/Index/IndexingContext.cpp
  155   } else if (const FunctionDecl *FD = dyn_cast<FunctionDecl>(D)) {
  155   } else if (const FunctionDecl *FD = dyn_cast<FunctionDecl>(D)) {
  210   } else if (const FunctionDecl *FD = dyn_cast<FunctionDecl>(D)) {
  210   } else if (const FunctionDecl *FD = dyn_cast<FunctionDecl>(D)) {
  244   if (auto FD = dyn_cast<FunctionDecl>(D))
tools/clang/lib/Index/USRGeneration.cpp
   84   void VisitFunctionDecl(const FunctionDecl *D);
  219 void USRGenerator::VisitFunctionDecl(const FunctionDecl *D) {
tools/clang/lib/Parse/ParseCXXInlineMethods.cpp
   73       if (auto *DeclAsFunction = dyn_cast<FunctionDecl>(FnD)) {
   73       if (auto *DeclAsFunction = dyn_cast<FunctionDecl>(FnD)) {
   82       if (auto *DeclAsFunction = dyn_cast<FunctionDecl>(FnD)) {
   82       if (auto *DeclAsFunction = dyn_cast<FunctionDecl>(FnD)) {
  124       FunctionDecl *FD = FnD->getAsFunction();
  166     FunctionDecl *FD = FnD->getAsFunction();
  373       FunctionDecl *Old = cast<FunctionDecl>(LM.Method)->getPreviousDecl();
  373       FunctionDecl *Old = cast<FunctionDecl>(LM.Method)->getPreviousDecl();
  562   if (auto *FD = dyn_cast_or_null<FunctionDecl>(LM.D))
  562   if (auto *FD = dyn_cast_or_null<FunctionDecl>(LM.D))
tools/clang/lib/Parse/ParseExpr.cpp
  567       if (isa<ValueDecl>(ND) && !isa<FunctionDecl>(ND))
tools/clang/lib/Parse/ParseOpenMP.cpp
 1012   Optional<std::pair<FunctionDecl *, Expr *>> DeclVarData =
tools/clang/lib/Parse/ParseTemplate.cpp
 1450   FunctionDecl *FunD = LPT.D->getAsFunction();
tools/clang/lib/Parse/Parser.cpp
 1207       FunctionDecl *FnD = DP->getAsFunction();
tools/clang/lib/Sema/AnalysisBasedWarnings.cpp
  186 static bool hasRecursiveCallInPath(const FunctionDecl *FD, CFGBlock &Block) {
  217 static bool checkForRecursiveFunctionCall(const FunctionDecl *FD, CFG *cfg) {
  253 static void checkRecursiveFunction(Sema &S, const FunctionDecl *FD,
  259   if (FD->getTemplatedKind() != FunctionDecl::TK_NonTemplate &&
  260       FD->getTemplatedKind() != FunctionDecl::TK_MemberSpecialization)
  337                                                  const FunctionDecl *FD) {
  356 static void checkThrowInNonThrowingFunc(Sema &S, const FunctionDecl *FD,
  369 static bool isNoexcept(const FunctionDecl *FD) {
  550     if (const FunctionDecl *Function = dyn_cast<FunctionDecl>(Func))
  550     if (const FunctionDecl *Function = dyn_cast<FunctionDecl>(Func))
  646   if (const auto *FD = dyn_cast<FunctionDecl>(D)) {
  646   if (const auto *FD = dyn_cast<FunctionDecl>(D)) {
  703         if (const FunctionDecl *FD = dyn_cast<FunctionDecl>(D)) {
  703         if (const FunctionDecl *FD = dyn_cast<FunctionDecl>(D)) {
 1279     if (const FunctionDecl *Function = dyn_cast<FunctionDecl>(AC.getDecl()))
 1279     if (const FunctionDecl *Function = dyn_cast<FunctionDecl>(AC.getDecl()))
 1617   const FunctionDecl *CurrentFunction;
 1865   void enterFunction(const FunctionDecl* FD) override {
 1869   void leaveFunction(const FunctionDecl* FD) override {
 2157     if (const FunctionDecl *Function = dyn_cast<FunctionDecl>(D))
 2157     if (const FunctionDecl *Function = dyn_cast<FunctionDecl>(D))
 2226     if (const FunctionDecl *FD = dyn_cast<FunctionDecl>(D)) {
 2226     if (const FunctionDecl *FD = dyn_cast<FunctionDecl>(D)) {
 2233     if (const FunctionDecl *FD = dyn_cast<FunctionDecl>(D))
 2233     if (const FunctionDecl *FD = dyn_cast<FunctionDecl>(D))
tools/clang/lib/Sema/CodeCompleteConsumer.cpp
  486 FunctionDecl *CodeCompleteConsumer::OverloadCandidate::getFunction() const {
  696     if (const auto *Function = dyn_cast<FunctionDecl>(Declaration))
  696     if (const auto *Function = dyn_cast<FunctionDecl>(Declaration))
tools/clang/lib/Sema/CoroutineStmtBuilder.h
   26   FunctionDecl &FD;
   37   CoroutineStmtBuilder(Sema &S, FunctionDecl &FD, sema::FunctionScopeInfo &Fn,
tools/clang/lib/Sema/MultiplexExternalSemaSource.cpp
  308     llvm::MapVector<const FunctionDecl *, std::unique_ptr<LateParsedTemplate>>
tools/clang/lib/Sema/Sema.cpp
  409   FunctionDecl *fn = dyn_cast<FunctionDecl>(CurContext);
  409   FunctionDecl *fn = dyn_cast<FunctionDecl>(CurContext);
  584   if (const FunctionDecl *FD = dyn_cast<FunctionDecl>(D)) {
  584   if (const FunctionDecl *FD = dyn_cast<FunctionDecl>(D)) {
  588       for (const auto *Spec : Template->specializations())
  594     const FunctionDecl *DeclToCheck;
  639   if (auto *FD = dyn_cast<FunctionDecl>(ND))
  639   if (auto *FD = dyn_cast<FunctionDecl>(ND))
  678     if (FunctionDecl *FD = dyn_cast<FunctionDecl>(ND)) {
  678     if (FunctionDecl *FD = dyn_cast<FunctionDecl>(ND)) {
  742     } else if (auto *FD = dyn_cast<FunctionDecl>(VD)) {
  742     } else if (auto *FD = dyn_cast<FunctionDecl>(VD)) {
  839       if (const FunctionDecl *FD =
  840           dyn_cast<FunctionDecl>((*I)->getFriendDecl()))
  917       if (auto Func = dyn_cast<FunctionDecl>(PII.first))
 1023         !(isa<FunctionDecl>(PrevDecl) || isa<VarDecl>(PrevDecl)))
 1149       if (const FunctionDecl *FD = dyn_cast<FunctionDecl>(*I)) {
 1149       if (const FunctionDecl *FD = dyn_cast<FunctionDecl>(*I)) {
 1150         const FunctionDecl *DiagD;
 1271 FunctionDecl *Sema::getCurFunctionDecl() {
 1273   return dyn_cast<FunctionDecl>(DC);
 1285   if (isa<ObjCMethodDecl>(DC) || isa<FunctionDecl>(DC))
 1398 static void emitCallStackNotes(Sema &S, FunctionDecl *FD) {
 1412 static void emitDeferredDiags(Sema &S, FunctionDecl *FD, bool ShowCallStack) {
 1460                                            unsigned DiagID, FunctionDecl *Fn,
 1509     Sema &S, FunctionDecl *OrigCaller, FunctionDecl *OrigCallee,
 1509     Sema &S, FunctionDecl *OrigCaller, FunctionDecl *OrigCallee,
 1511     const llvm::function_ref<bool(Sema &, FunctionDecl *)> IsKnownEmitted) {
 1522     FunctionDecl *Caller;
 1523     FunctionDecl *Callee;
 1527   llvm::SmallSet<CanonicalDeclPtr<FunctionDecl>, 4> Seen;
 1540       FunctionDecl *TemplFD = Templ->getAsFunction();
 1553     for (std::pair<CanonicalDeclPtr<FunctionDecl>, SourceLocation> FDLoc :
 1555       FunctionDecl *NewCallee = FDLoc.first;
 1962       if (const FunctionDecl *OverloadDecl
 1963             = dyn_cast<FunctionDecl>((*it)->getUnderlyingDecl())) {
 1999     if (const FunctionDecl *Fun = dyn_cast<FunctionDecl>(DeclRef->getDecl())) {
 1999     if (const FunctionDecl *Fun = dyn_cast<FunctionDecl>(DeclRef->getDecl())) {
 2052     if (const auto *FD = Fn->getAsFunction()) {
 2075     const FunctionDecl *OverloadDecl = cast<FunctionDecl>(*It);
 2075     const FunctionDecl *OverloadDecl = cast<FunctionDecl>(*It);
 2104     if (const auto *FD = dyn_cast<FunctionDecl>(ND))
 2104     if (const auto *FD = dyn_cast<FunctionDecl>(ND))
 2217 std::string Sema::getOpenCLExtensionsFromDeclExtMap(FunctionDecl *FD) {
tools/clang/lib/Sema/SemaAccess.cpp
  110       } else if (isa<FunctionDecl>(DC)) {
  111         FunctionDecl *Function = cast<FunctionDecl>(DC);
  111         FunctionDecl *Function = cast<FunctionDecl>(DC);
  141   SmallVector<FunctionDecl*, 4> Functions;
  361                                FunctionDecl *Context,
  362                                FunctionDecl *Friend) {
  492                                   FunctionDecl *Friend) {
  495   for (SmallVectorImpl<FunctionDecl*>::const_iterator
  516   for (SmallVectorImpl<FunctionDecl*>::const_iterator
  565   return MatchesFriend(S, EC, cast<FunctionDecl>(Friend));
 1107     else if (FunctionDecl *FD = dyn_cast<FunctionDecl>(D))
 1107     else if (FunctionDecl *FD = dyn_cast<FunctionDecl>(D))
 1476   } else if (FunctionDecl *FN = dyn_cast<FunctionDecl>(D)) {
 1476   } else if (FunctionDecl *FN = dyn_cast<FunctionDecl>(D)) {
 1918     else if (FunctionDecl *FD = getCurFunctionDecl()) {
tools/clang/lib/Sema/SemaAttr.cpp
  856 void Sema::AddRangeBasedOptnone(FunctionDecl *FD) {
  863 void Sema::AddOptnoneAttributeIfNoConflicts(FunctionDecl *FD,
tools/clang/lib/Sema/SemaCUDA.cpp
   43   FunctionDecl *ConfigDecl = Context.getcudaConfigureCallDecl();
   98 static bool hasAttr(const FunctionDecl *D, bool IgnoreImplicitAttr) {
  106 Sema::CUDAFunctionTarget Sema::IdentifyCUDATarget(const FunctionDecl *D,
  162 Sema::IdentifyCUDAPreference(const FunctionDecl *Caller,
  163                              const FunctionDecl *Callee) {
  214     const FunctionDecl *Caller,
  215     SmallVectorImpl<std::pair<DeclAccessPair, FunctionDecl *>> &Matches) {
  219   using Pair = std::pair<DeclAccessPair, FunctionDecl*>;
  526     const FunctionDecl *InitFn = nullptr;
  556 void Sema::maybeAddCUDAHostDeviceAttrs(FunctionDecl *NewD,
  578     FunctionDecl *OldD = D->getAsFunction();
  618         return (getEmissionStatus(cast<FunctionDecl>(CurContext)) ==
  630                            dyn_cast<FunctionDecl>(CurContext), *this);
  647       return (getEmissionStatus(cast<FunctionDecl>(CurContext)) ==
  656                            dyn_cast<FunctionDecl>(CurContext), *this);
  659 bool Sema::CheckCUDACall(SourceLocation Loc, FunctionDecl *Callee) {
  669   FunctionDecl *Caller = dyn_cast<FunctionDecl>(CurContext);
  669   FunctionDecl *Caller = dyn_cast<FunctionDecl>(CurContext);
  736   FunctionDecl *CurFn = dyn_cast<FunctionDecl>(CurContext);
  736   FunctionDecl *CurFn = dyn_cast<FunctionDecl>(CurContext);
  748 void Sema::checkCUDATargetOverload(FunctionDecl *NewFD,
  753     FunctionDecl *OldFD = OldND->getAsFunction();
  778 static void copyAttrIfPresent(Sema &S, FunctionDecl *FD,
  779                               const FunctionDecl &TemplateFD) {
  787 void Sema::inheritCUDATargetAttrs(FunctionDecl *FD,
  789   const FunctionDecl &TemplateFD = *TD.getTemplatedDecl();
tools/clang/lib/Sema/SemaCast.cpp
 1542     if (FunctionDecl *Fn
 1621     FunctionDecl *Fn = Self.ResolveAddressOfOverloadedFunction(SrcExpr.get(),
 1901   auto *FD = dyn_cast<FunctionDecl>(DRE->getDecl());
 1901   auto *FD = dyn_cast<FunctionDecl>(DRE->getDecl());
 2515       FunctionDecl *Fn = Self.ResolveAddressOfOverloadedFunction(SrcExpr.get(),
 2607     if (FunctionDecl *FD = Self.ResolveAddressOfOverloadedFunction(
tools/clang/lib/Sema/SemaChecking.cpp
  272   if (const FunctionDecl *FD = dyn_cast_or_null<FunctionDecl>(TargetDecl))
  272   if (const FunctionDecl *FD = dyn_cast_or_null<FunctionDecl>(TargetDecl))
  315 void Sema::checkFortifiedBuiltinMemoryFunction(FunctionDecl *FD,
 1072 Sema::CheckBuiltinFunctionCall(FunctionDecl *FDecl, unsigned BuiltinID,
 4238   if (FDecl && (isa<FunctionDecl>(FDecl) || isa<ObjCMethodDecl>(FDecl))) {
 4242     if (const FunctionDecl *FD = dyn_cast<FunctionDecl>(FDecl))
 4242     if (const FunctionDecl *FD = dyn_cast<FunctionDecl>(FDecl))
 4326   auto *FD = dyn_cast_or_null<FunctionDecl>(FDecl);
 4326   auto *FD = dyn_cast_or_null<FunctionDecl>(FDecl);
 4330                        : FDecl && isa<FunctionDecl>(FDecl)
 4331                            ? cast<FunctionDecl>(FDecl)->getNumParams()
 4361 void Sema::CheckConstructorCall(FunctionDecl *FDecl,
 4373 bool Sema::CheckFunctionCall(FunctionDecl *FDecl, CallExpr *TheCall,
 5000   FunctionDecl *Fn = E->getDirectCallee();
 5028   FunctionDecl *FDecl = cast<FunctionDecl>(DRE->getDecl());
 5028   FunctionDecl *FDecl = cast<FunctionDecl>(DRE->getDecl());
 5326   FunctionDecl *NewBuiltinDecl;
 5335     NewBuiltinDecl = dyn_cast<FunctionDecl>(Res.getFoundDecl());
 5395   FunctionDecl *FDecl = cast<FunctionDecl>(DRE->getDecl());
 5395   FunctionDecl *FDecl = cast<FunctionDecl>(DRE->getDecl());
 5524     if (const FunctionDecl *FD = S.getCurFunctionDecl())
 5560   } else if (auto *FD = dyn_cast<FunctionDecl>(Caller)) {
 5560   } else if (auto *FD = dyn_cast<FunctionDecl>(Caller)) {
 6015         << cast<FunctionDecl>(TheCall->getCalleeDecl())->getIdentifier();
 6098       cast<FunctionDecl>(TheCall->getCalleeDecl())->getBuiltinID();
 6182   FunctionDecl *FDecl = cast<FunctionDecl>(DRE->getDecl());
 6182   FunctionDecl *FDecl = cast<FunctionDecl>(DRE->getDecl());
 6976       if (const auto *FD = dyn_cast<FunctionDecl>(ND)) {
 6976       if (const auto *FD = dyn_cast<FunctionDecl>(ND)) {
 9036 static unsigned getAbsoluteValueFunctionKind(const FunctionDecl *FDecl) {
 9091         const FunctionDecl *FDecl = nullptr;
 9093           FDecl = dyn_cast<FunctionDecl>(UsingD->getTargetDecl());
 9095           FDecl = dyn_cast<FunctionDecl>(I);
 9126         FunctionDecl *FD = dyn_cast<FunctionDecl>(R.getFoundDecl());
 9126         FunctionDecl *FD = dyn_cast<FunctionDecl>(R.getFoundDecl());
 9152 static bool IsStdFunction(const FunctionDecl *FDecl,
 9166                                       const FunctionDecl *FDecl) {
 9246                                 const FunctionDecl *FDecl) {
 9882     const FunctionDecl *FD = CE->getDirectCallee();
 9980                          const FunctionDecl *FD) {
12174   const FunctionDecl *FD = nullptr;
12280     if (auto *Callee = Call->getDirectCallee()) {
12309       if (const auto *FD = dyn_cast<FunctionDecl>(PV->getDeclContext())) {
12309       if (const auto *FD = dyn_cast<FunctionDecl>(PV->getDeclContext())) {
12311         if (FD->getTemplatedKind() == FunctionDecl::TK_FunctionTemplate)
13615       FunctionDecl *Fn = dyn_cast_or_null<FunctionDecl>(CE->getCalleeDecl());
13615       FunctionDecl *Fn = dyn_cast_or_null<FunctionDecl>(CE->getCalleeDecl());
tools/clang/lib/Sema/SemaCodeComplete.cpp
  377   } else if (const auto *Function = dyn_cast<FunctionDecl>(S.CurContext)) {
  377   } else if (const auto *Function = dyn_cast<FunctionDecl>(S.CurContext)) {
  889   if (const FunctionDecl *Function = ND->getAsFunction())
 1946   llvm::StringMap<std::vector<FunctionDecl *>> Overrides;
 1963         for (auto *MD : it->second) {
 2298     if (const auto *Function = dyn_cast<FunctionDecl>(SemaRef.CurContext))
 2298     if (const auto *Function = dyn_cast<FunctionDecl>(SemaRef.CurContext))
 2603   if (const FunctionDecl *Function = ND->getAsFunction())
 2921                                        const FunctionDecl *Function,
 3073                                        const FunctionDecl *Function) {
 3356   if (const auto *Function = dyn_cast<FunctionDecl>(ND)) {
 3356   if (const auto *Function = dyn_cast<FunctionDecl>(ND)) {
 3371     FunctionDecl *Function = FunTmpl->getTemplatedDecl();
 3586                                        const FunctionDecl *Function,
 3660   FunctionDecl *FDecl = getFunction();
 5145     FunctionDecl *FD = nullptr;
 5147       FD = dyn_cast<FunctionDecl>(MCE->getMemberDecl());
 5149       FD = dyn_cast<FunctionDecl>(DRE->getDecl());
 5219     if (auto *FD = dyn_cast<FunctionDecl>(C)) {
 5219     if (auto *FD = dyn_cast<FunctionDecl>(C)) {
 5597     if (const auto *Function = dyn_cast<FunctionDecl>(ND))
 5597     if (const auto *Function = dyn_cast<FunctionDecl>(ND))
tools/clang/lib/Sema/SemaCoroutine.cpp
   50 static QualType lookupPromiseType(Sema &S, const FunctionDecl *FD,
  194   auto *FD = dyn_cast<FunctionDecl>(S.CurContext);
  194   auto *FD = dyn_cast<FunctionDecl>(S.CurContext);
  298   auto *BuiltInDecl = R.getAsSingle<FunctionDecl>();
  298   auto *BuiltInDecl = R.getAsSingle<FunctionDecl>();
  482   auto *FD = cast<FunctionDecl>(CurContext);
  482   auto *FD = cast<FunctionDecl>(CurContext);
  613   auto *Fn = cast<FunctionDecl>(CurContext);
  613   auto *Fn = cast<FunctionDecl>(CurContext);
  932 static FunctionDecl *findDeleteForPromise(Sema &S, SourceLocation Loc,
  934   FunctionDecl *OperatorDelete = nullptr;
  957 void Sema::CheckCompletedCoroutineBody(FunctionDecl *FD, Stmt *&Body) {
  992 CoroutineStmtBuilder::CoroutineStmtBuilder(Sema &S, FunctionDecl &FD,
 1135   FunctionDecl *OperatorNew = nullptr;
 1136   FunctionDecl *OperatorDelete = nullptr;
 1137   FunctionDecl *UnusedResult = nullptr;
 1526   auto *FD = cast<FunctionDecl>(CurContext);
 1526   auto *FD = cast<FunctionDecl>(CurContext);
tools/clang/lib/Sema/SemaDecl.cpp
 1267   if (isa<FunctionDecl>(DC) && !isLambdaCallOperator(DC)) {
 1369   FunctionDecl *FD = D->getAsFunction();
 1409                                        const FunctionDecl *New) {
 1444   if (isa<FunctionDecl>(D) &&
 1445       cast<FunctionDecl>(D)->isFunctionTemplateSpecialization())
 1647   if (const FunctionDecl *FD = dyn_cast<FunctionDecl>(D)) {
 1647   if (const FunctionDecl *FD = dyn_cast<FunctionDecl>(D)) {
 1702   if (const FunctionDecl *FD = dyn_cast<FunctionDecl>(D)) {
 1702   if (const FunctionDecl *FD = dyn_cast<FunctionDecl>(D)) {
 1703     const FunctionDecl *First = FD->getFirstDecl();
 2088   FunctionDecl *New = FunctionDecl::Create(Context,
 2088   FunctionDecl *New = FunctionDecl::Create(Context,
 2556   else if (S.getLangOpts().CUDA && isa<FunctionDecl>(D) &&
 2607   if (const FunctionDecl *FD = dyn_cast<FunctionDecl>(D))
 2607   if (const FunctionDecl *FD = dyn_cast<FunctionDecl>(D))
 2634       if (FunctionDecl *FD = dyn_cast<FunctionDecl>(New)) {
 2634       if (FunctionDecl *FD = dyn_cast<FunctionDecl>(New)) {
 2636         S.CheckForFunctionRedefinition(FD, cast<FunctionDecl>(Def), &SkipBody);
 2830         << isa<FunctionDecl>(Old) << New->getAttr<AsmLabelAttr>()->getRange();
 2927     const FunctionDecl *FirstFD =
 2928       cast<FunctionDecl>(oldDecl->getDeclContext())->getFirstDecl();
 3000 getNoteDiagForInvalidRedeclaration(const T *Old, const T *New) {
 3000 getNoteDiagForInvalidRedeclaration(const T *Old, const T *New) {
 3017 static bool canRedefineFunction(const FunctionDecl *FD,
 3033 static bool haveIncompatibleLanguageLinkages(const T *Old, const T *New) {
 3033 static bool haveIncompatibleLanguageLinkages(const T *Old, const T *New) {
 3046 template<typename T> static bool isExternC(T *D) { return D->isExternC(); }
 3054                                    ExpectedDecl *New) {
 3072   auto *Old = dyn_cast<ExpectedDecl>(OldS->getTargetDecl());
 3072   auto *Old = dyn_cast<ExpectedDecl>(OldS->getTargetDecl());
 3088 static bool hasIdenticalPassObjectSizeAttrs(const FunctionDecl *A,
 3089                                             const FunctionDecl *B) {
 3140   if (auto *FD = dyn_cast<FunctionDecl>(NewD))
 3140   if (auto *FD = dyn_cast<FunctionDecl>(NewD))
 3157 bool Sema::MergeFunctionDecl(FunctionDecl *New, NamedDecl *&OldD,
 3160   FunctionDecl *Old = OldD->getAsFunction();
 3173       if (checkUsingShadowRedecl<FunctionDecl>(*this, Shadow, New))
 3175       OldD = Old = cast<FunctionDecl>(Shadow->getTargetDecl());
 3288     FunctionDecl *First = Old->getFirstDecl();
 3758 bool Sema::MergeCompatibleFunctionDecls(FunctionDecl *New, FunctionDecl *Old,
 3758 bool Sema::MergeCompatibleFunctionDecls(FunctionDecl *New, FunctionDecl *Old,
 4955         else if (isa<FunctionDecl>(Mem))
 5276                                      FunctionDecl *Declaration,
 5277                                      FunctionDecl *Definition,
 5469     else if (isa<FunctionDecl>(Cur))
 6154     if (isa<FunctionDecl>(ND) || !ND.isExternallyVisible()) {
 6197   if (const auto *FD = dyn_cast<FunctionDecl>(&ND)) {
 6197   if (const auto *FD = dyn_cast<FunctionDecl>(&ND)) {
 6267       auto *FD = dyn_cast<FunctionDecl>(OldDecl);
 6267       auto *FD = dyn_cast<FunctionDecl>(OldDecl);
 6268       if (FD && FD->getTemplatedKind() == FunctionDecl::TK_NonTemplate)
 6276       if (!isa<FunctionDecl>(OldDecl) || !NewImportAttr)
 6304   } else if (const auto *FD = dyn_cast<FunctionDecl>(NewDecl)) {
 6304   } else if (const auto *FD = dyn_cast<FunctionDecl>(NewDecl)) {
 6345     if (MD->getTemplatedKind() == FunctionDecl::TK_MemberSpecialization &&
 6360 static bool isFunctionDefinitionDiscarded(Sema &S, FunctionDecl *FD) {
 6391 static bool isIncompleteDeclExternC(Sema &S, const T *D) {
 6417 static bool shouldConsiderLinkage(const FunctionDecl *FD) {
 6470   if (const auto *FD = dyn_cast<FunctionDecl>(D))
 6470   if (const auto *FD = dyn_cast<FunctionDecl>(D))
 6913     FunctionDecl *CurFD = getCurFunctionDecl();
 7421     Sema &S, const T *ND, bool IsGlobal, LookupResult &Previous) {
 7482   if (FunctionDecl *FD = dyn_cast<FunctionDecl>(Prev))
 7482   if (FunctionDecl *FD = dyn_cast<FunctionDecl>(Prev))
 7503 static bool checkForConflictWithNonVisibleExternC(Sema &S, const T *ND,
 7631         FunctionDecl *FD = getCurFunctionDecl();
 7909   DifferentNameValidatorCCC(ASTContext &Context, FunctionDecl *TypoFD,
 7922       FunctionDecl *FD = dyn_cast<FunctionDecl>(*CDecl);
 7922       FunctionDecl *FD = dyn_cast<FunctionDecl>(*CDecl);
 7945   FunctionDecl *OriginalFD;
 7965     Sema &SemaRef, LookupResult &Previous, FunctionDecl *NewFD,
 7970   SmallVector<std::pair<FunctionDecl *, unsigned>, 1> NearMatches;
 7995       FunctionDecl *FD = dyn_cast<FunctionDecl>(*Func);
 7995       FunctionDecl *FD = dyn_cast<FunctionDecl>(*Func);
 8018       FunctionDecl *FD = dyn_cast<FunctionDecl>(*CDecl);
 8018       FunctionDecl *FD = dyn_cast<FunctionDecl>(*CDecl);
 8080   for (SmallVectorImpl<std::pair<FunctionDecl *, unsigned> >::iterator
 8083     FunctionDecl *FD = NearMatch->first;
 8144 static FunctionDecl *CreateNewFunctionDecl(Sema &SemaRef, Declarator &D,
 8152   FunctionDecl *NewFD = nullptr;
 8166     NewFD = FunctionDecl::Create(SemaRef.Context, DC, D.getBeginLoc(), NameInfo,
 8231       return FunctionDecl::Create(SemaRef.Context, DC, D.getBeginLoc(),
 8287     return FunctionDecl::Create(SemaRef.Context, DC, D.getBeginLoc(), NameInfo,
 8600   FunctionDecl *NewFD = CreateNewFunctionDecl(*this, D, DC, R, TInfo, SC,
 9545 static Attr *getImplicitCodeSegAttrFromClass(Sema &S, const FunctionDecl *FD) {
 9580 Attr *Sema::getImplicitCodeSegOrSectionAttrForFunction(const FunctionDecl *FD,
 9665 static bool CheckMultiVersionValue(Sema &S, const FunctionDecl *FD) {
 9697 static bool HasNonMultiVersionAttributes(const FunctionDecl *FD,
 9719     const FunctionDecl *OldFD, const FunctionDecl *NewFD,
 9719     const FunctionDecl *OldFD, const FunctionDecl *NewFD,
 9755       NewFD->getTemplatedKind() == FunctionDecl::TK_FunctionTemplate)
 9828 static bool CheckMultiVersionAdditionalRules(Sema &S, const FunctionDecl *OldFD,
 9829                                              const FunctionDecl *NewFD,
 9880 static bool CheckMultiVersionFirstFunction(Sema &S, FunctionDecl *FD,
 9905 static bool PreviousDeclsHaveMultiVersionAttribute(const FunctionDecl *FD) {
 9915     Sema &S, FunctionDecl *OldFD, FunctionDecl *NewFD, const TargetAttr *NewTA,
 9915     Sema &S, FunctionDecl *OldFD, FunctionDecl *NewFD, const TargetAttr *NewTA,
 9973   for (const auto *FD : OldFD->redecls()) {
 9999     Sema &S, FunctionDecl *OldFD, FunctionDecl *NewFD,
 9999     Sema &S, FunctionDecl *OldFD, FunctionDecl *NewFD,
10029     FunctionDecl *CurFD = ND->getAsFunction();
10151 static bool CheckMultiVersionFunction(Sema &S, FunctionDecl *NewFD,
10192   FunctionDecl *OldFD = OldDecl->getAsFunction();
10235 bool Sema::CheckFunctionDeclaration(Scope *S, FunctionDecl *NewFD,
10296         if (IsOverload(NewFD, cast<FunctionDecl>(OldDecl), false)) {
10360       auto *OldFD = OldTemplateDecl->getTemplatedDecl();
10395         auto *OldFD = cast<FunctionDecl>(OldDecl);
10395         auto *OldFD = cast<FunctionDecl>(OldDecl);
10413       const auto *FD = dyn_cast<FunctionDecl>(ND);
10413       const auto *FD = dyn_cast<FunctionDecl>(ND);
10576 void Sema::CheckMain(FunctionDecl* FD, const DeclSpec& DS) {
10731 void Sema::CheckMSVCRTEntryPoint(FunctionDecl *FD) {
12576   auto *FD = dyn_cast_or_null<FunctionDecl>(VD->getParentFunctionOrMethod());
12576   auto *FD = dyn_cast_or_null<FunctionDecl>(VD->getParentFunctionOrMethod());
12582     FD = dyn_cast_or_null<FunctionDecl>(FD->getParentFunctionOrMethod());
12673     if (dyn_cast_or_null<FunctionDecl>(VD->getParentFunctionOrMethod())) {
12732     auto *F = dyn_cast_or_null<FunctionDecl>(VD->getParentFunctionOrMethod());
12732     auto *F = dyn_cast_or_null<FunctionDecl>(VD->getParentFunctionOrMethod());
13276 void Sema::ActOnFinishInlineFunctionDef(FunctionDecl *D) {
13281 ShouldWarnAboutMissingPrototype(const FunctionDecl *FD,
13282                                 const FunctionDecl *&PossiblePrototype) {
13319   for (const FunctionDecl *Prev = FD->getPreviousDecl();
13334 Sema::CheckForFunctionRedefinition(FunctionDecl *FD,
13335                                    const FunctionDecl *EffectiveDefinition,
13337   const FunctionDecl *Definition = EffectiveDefinition;
13357         if (FunctionDecl *Original = I->getInstantiatedFromMemberFunction()) {
13358           if (FunctionDecl *OrigFD = FD->getInstantiatedFromMemberFunction()) {
13493   FunctionDecl *FD = nullptr;
13498     FD = cast<FunctionDecl>(D);
13687   if (const FunctionDecl *FD = D->getAsFunction()) {
13702   if (FunctionDecl *FD = Decl->getAsFunction())
13759   FunctionDecl *FD = dcl ? dcl->getAsFunction() : nullptr;
13850     const FunctionDecl *PossiblePrototype = nullptr;
13913           const FunctionDecl *Definition;
14122     if (!isa<FunctionDecl>(ExternCPrev) ||
14124             cast<FunctionDecl>(ExternCPrev)->getType(),
14156     DeclFilterCCC<FunctionDecl> CCC{};
14197   FunctionDecl *FD = cast<FunctionDecl>(ActOnDeclarator(BlockScope, D));
14197   FunctionDecl *FD = cast<FunctionDecl>(ActOnDeclarator(BlockScope, D));
14214 void Sema::AddKnownFunctionAttributes(FunctionDecl *FD) {
17611   if (PrevDecl && (isa<FunctionDecl>(PrevDecl) || isa<VarDecl>(PrevDecl))) {
17616           << /*Variable*/(isa<FunctionDecl>(PrevDecl) ? 0 : 1) << PrevDecl;
17645   if (PrevDecl && (isa<FunctionDecl>(PrevDecl) || isa<VarDecl>(PrevDecl))) {
17659 Sema::FunctionEmissionStatus Sema::getEmissionStatus(FunctionDecl *FD) {
17716     FunctionDecl *Def = FD->getDefinition();
17731 bool Sema::shouldIgnoreInHostDeviceCheck(FunctionDecl *Callee) {
tools/clang/lib/Sema/SemaDeclAttr.cpp
   98   if (const auto *FD = dyn_cast<FunctionDecl>(D))
   98   if (const auto *FD = dyn_cast<FunctionDecl>(D))
  129   if (const auto *FD = dyn_cast<FunctionDecl>(D))
  129   if (const auto *FD = dyn_cast<FunctionDecl>(D))
  693       const auto *FD = dyn_cast<FunctionDecl>(D);
  693       const auto *FD = dyn_cast<FunctionDecl>(D);
  844 static bool checkParamIsIntegerType(Sema &S, const FunctionDecl *FD,
  868   const auto *FD = cast<FunctionDecl>(D);
  868   const auto *FD = cast<FunctionDecl>(D);
  980   if (isa<FunctionDecl>(D) && !Cond->isValueDependent() &&
  981       !Expr::isPotentialConstantExprUnevaluated(Cond, cast<FunctionDecl>(D),
 1012   ArgumentDependenceChecker(const FunctionDecl *FD) {
 1066   if (const auto *FD = dyn_cast<FunctionDecl>(D))
 1066   if (const auto *FD = dyn_cast<FunctionDecl>(D))
 1610   const auto *FuncDecl = cast<FunctionDecl>(D);
 1610   const auto *FuncDecl = cast<FunctionDecl>(D);
 1803   const auto *FD = cast<FunctionDecl>(D);
 1803   const auto *FD = cast<FunctionDecl>(D);
 1826   if (const auto *FD = dyn_cast<FunctionDecl>(D)) {
 1826   if (const auto *FD = dyn_cast<FunctionDecl>(D)) {
 1882   FunctionDecl *FD = cast<FunctionDecl>(D);
 1882   FunctionDecl *FD = cast<FunctionDecl>(D);
 2679   if (const auto *FD = dyn_cast<FunctionDecl>(D)) {
 2679   if (const auto *FD = dyn_cast<FunctionDecl>(D)) {
 2861   if (const auto *FD = dyn_cast<FunctionDecl>(D)) {
 2861   if (const auto *FD = dyn_cast<FunctionDecl>(D)) {
 2930   if (const auto *FD = dyn_cast<FunctionDecl>(D)) {
 2930   if (const auto *FD = dyn_cast<FunctionDecl>(D)) {
 3028   FunctionDecl *FD = nullptr;
 3036     FD = dyn_cast<FunctionDecl>(DRE->getDecl());
 3356   FunctionDecl *FD = D->getAsFunction();
 4226   const auto *FD = cast<FunctionDecl>(D);
 4226   const auto *FD = cast<FunctionDecl>(D);
 4253   const auto *Fn = cast<FunctionDecl>(D);
 4253   const auto *Fn = cast<FunctionDecl>(D);
 4427                                 const FunctionDecl *FD) {
 4855                         cast<FunctionDecl>(D)->getIdentifier()->getName())) {
 4976   } else if (const auto *FD = dyn_cast<FunctionDecl>(D)) {
 4976   } else if (const auto *FD = dyn_cast<FunctionDecl>(D)) {
 5660   auto *FD = cast<FunctionDecl>(D);
 5660   auto *FD = cast<FunctionDecl>(D);
 5682   auto *FD = cast<FunctionDecl>(D);
 5682   auto *FD = cast<FunctionDecl>(D);
 5919   if (!isa<FunctionDecl>(D)) {
 5982   if (const auto *FD = dyn_cast<FunctionDecl>(D)) {
 5982   if (const auto *FD = dyn_cast<FunctionDecl>(D)) {
 6427   if (auto *FD = dyn_cast<FunctionDecl>(D)) {
 6427   if (auto *FD = dyn_cast<FunctionDecl>(D)) {
 7336   if (auto *FD = dyn_cast<FunctionDecl>(ND)) {
 7336   if (auto *FD = dyn_cast<FunctionDecl>(ND)) {
 7337     FunctionDecl *NewFD;
 7342     NewFD = FunctionDecl::Create(
 7410     if (auto *FD = dyn_cast<FunctionDecl>(D))
 7410     if (auto *FD = dyn_cast<FunctionDecl>(D))
 7459       !isa<FunctionDecl>(D))
 7496     if (const auto *FD = dyn_cast<FunctionDecl>(D)) {
 7496     if (const auto *FD = dyn_cast<FunctionDecl>(D)) {
 7692     if (isa<TagDecl>(Ctx) || isa<FunctionDecl>(Ctx) || isa<ObjCMethodDecl>(Ctx))
 8221     if (!D || isa<FunctionDecl>(D))
 8455   if (auto *FD = D->getAsFunction()) {
tools/clang/lib/Sema/SemaDeclCXX.cpp
  421 static bool functionDeclHasDefaultArgument(const FunctionDecl *FD) {
  436 bool Sema::MergeCXXFunctionDecl(FunctionDecl *New, FunctionDecl *Old,
  436 bool Sema::MergeCXXFunctionDecl(FunctionDecl *New, FunctionDecl *Old,
  448   FunctionDecl *PrevForDefaultArgs = Old;
  638   const FunctionDecl *Def;
 1529 void Sema::CheckCXXDefaultArguments(FunctionDecl *FD) {
 1634                                          const FunctionDecl *FD,
 1666 static bool CheckConstexprFunctionBody(Sema &SemaRef, const FunctionDecl *Dcl,
 1676 bool Sema::CheckConstexprFunctionDefinition(const FunctionDecl *NewFD,
 1766 static bool CheckConstexprDeclStmt(Sema &SemaRef, const FunctionDecl *Dcl,
 1908                                           const FunctionDecl *Dcl,
 1963 CheckConstexprFunctionStmt(Sema &SemaRef, const FunctionDecl *Dcl, Stmt *S,
 2108 static bool CheckConstexprFunctionBody(Sema &SemaRef, const FunctionDecl *Dcl,
 5727       FunctionDecl *FD = cast<FunctionTemplateDecl>(D)->getTemplatedDecl();
 6009         for (FunctionDecl *FD = MD->getMostRecentDecl(); FD;
 6095 Sema::getDefaultedFunctionKind(const FunctionDecl *FD) {
 6480       auto *FD = dyn_cast_or_null<FunctionDecl>(D->getFriendDecl());
 6480       auto *FD = dyn_cast_or_null<FunctionDecl>(D->getFriendDecl());
 6839 void Sema::CheckExplicitlyDefaultedFunction(FunctionDecl *FD) {
 6989       MD->getTemplatedKind() == FunctionDecl::TK_NonTemplate) {
 7049 bool Sema::CheckExplicitlyDefaultedComparison(FunctionDecl *FD,
 7721     FunctionDecl *OperatorDelete = nullptr;
 8485     if (FunctionDecl *FD = dyn_cast<FunctionDecl>(D)) {
 8485     if (FunctionDecl *FD = dyn_cast<FunctionDecl>(D)) {
 8586   FunctionDecl *Method = cast<FunctionDecl>(MethodD);
 8586   FunctionDecl *Method = cast<FunctionDecl>(MethodD);
 8739     if (FunctionDecl *OperatorDelete =
 9754 bool Sema::isInitListConstructor(const FunctionDecl *Ctor) {
10132   if (FunctionDecl *FD = Target->getAsFunction()) {
11399 void Sema::CheckImplicitSpecialMemberDeclaration(Scope *S, FunctionDecl *FD) {
12061   FunctionDecl *MemCpy = R.getAsSingle<FunctionDecl>();
12061   FunctionDecl *MemCpy = R.getAsSingle<FunctionDecl>();
13282 bool Sema::isImplicitlyDeleted(FunctionDecl *FD) {
13293   FunctionDecl *CallOp = Lambda->getLambdaCallOperator();
13294   FunctionDecl *Invoker = Lambda->getLambdaStaticInvoker();
13678                                        const FunctionDecl *FnDecl) {
13704 CheckOperatorNewDeleteTypes(Sema &SemaRef, const FunctionDecl *FnDecl,
13766 CheckOperatorNewDeclaration(Sema &SemaRef, const FunctionDecl *FnDecl) {
13797 CheckOperatorDeleteDeclaration(Sema &SemaRef, FunctionDecl *FnDecl) {
13841 bool Sema::CheckOverloadedOperatorDeclaration(FunctionDecl *FnDecl) {
14021 bool Sema::CheckLiteralOperatorDeclaration(FunctionDecl *FnDecl) {
14101     FunctionDecl::param_iterator Param = FnDecl->param_begin();
14882   FunctionDecl *FunctionContainingLocalClass = nullptr;
15101     FunctionDecl *FD;
15105       FD = cast<FunctionDecl>(ND);
15138   FunctionDecl *Fn = dyn_cast_or_null<FunctionDecl>(Dcl);
15138   FunctionDecl *Fn = dyn_cast_or_null<FunctionDecl>(Dcl);
15147   if (const FunctionDecl *Prev = Fn->getPreviousDecl()) {
15207   auto *FD = dyn_cast<FunctionDecl>(Dcl);
15207   auto *FD = dyn_cast<FunctionDecl>(Dcl);
15270   const FunctionDecl *Primary = FD;
15271   if (const FunctionDecl *Pattern = FD->getTemplateInstantiationPattern())
15555   if (isa<FunctionDecl>(Dcl)) { // The declarator shall not specify a function.
15728       const FunctionDecl *KeyFunctionDef = nullptr;
15855     const FunctionDecl *FNTarget = nullptr;
15888         const FunctionDecl *FNTarget = nullptr;
tools/clang/lib/Sema/SemaExceptionSpec.cpp
  197   FunctionDecl *SourceDecl = FPT->getExceptionSpecDecl();
  221 Sema::UpdateExceptionSpec(FunctionDecl *FD,
  228   for (FunctionDecl *Redecl : FD->redecls())
  232 static bool exceptionSpecNotKnownYet(const FunctionDecl *FD) {
  252 static bool hasImplicitExceptionSpec(FunctionDecl *Decl) {
  270 bool Sema::CheckEquivalentExceptionSpec(FunctionDecl *Old, FunctionDecl *New) {
  270 bool Sema::CheckEquivalentExceptionSpec(FunctionDecl *Old, FunctionDecl *New) {
  986   if (D && isa<FunctionDecl>(D) && D->hasAttr<NoThrowAttr>())
tools/clang/lib/Sema/SemaExpr.cpp
   59   if (FunctionDecl *FD = dyn_cast<FunctionDecl>(D)) {
   59   if (FunctionDecl *FD = dyn_cast<FunctionDecl>(D)) {
   99 void Sema::NoteDeletedFunction(FunctionDecl *Decl) {
  128 static bool hasAnyExplicitStorageClass(const FunctionDecl *D) {
  154   FunctionDecl *Current = S.getCurFunctionDecl();
  173   const FunctionDecl *UsedFn = dyn_cast<FunctionDecl>(D);
  173   const FunctionDecl *UsedFn = dyn_cast<FunctionDecl>(D);
  188 void Sema::MaybeSuggestAddingStaticToDecl(const FunctionDecl *Cur) {
  189   const FunctionDecl *First = Cur->getFirstDecl();
  217   if (getLangOpts().CPlusPlus && isa<FunctionDecl>(D)) {
  234     if (cast<FunctionDecl>(D)->isMain())
  237     diagnoseUnavailableAlignedAllocation(*cast<FunctionDecl>(D), Loc);
  253   if (FunctionDecl *FD = dyn_cast<FunctionDecl>(D)) {
  253   if (FunctionDecl *FD = dyn_cast<FunctionDecl>(D)) {
  356   } else if (FunctionDecl *FD = dyn_cast<FunctionDecl>(D)) {
  356   } else if (FunctionDecl *FD = dyn_cast<FunctionDecl>(D)) {
  453       if (auto *FD = dyn_cast<FunctionDecl>(DRE->getDecl()))
  453       if (auto *FD = dyn_cast<FunctionDecl>(DRE->getDecl()))
 2033           else if (FunctionDecl *FD = dyn_cast<FunctionDecl>(CD))
 2033           else if (FunctionDecl *FD = dyn_cast<FunctionDecl>(CD))
 2857     if (isa<FunctionDecl>(D)) {
 2858       FunctionDecl *FDecl = cast<FunctionDecl>(D);
 2858       FunctionDecl *FDecl = cast<FunctionDecl>(D);
 2901   const auto *FD = dyn_cast<FunctionDecl>(R.getFoundDecl());
 2901   const auto *FD = dyn_cast<FunctionDecl>(R.getFoundDecl());
 3108       if (unsigned BID = cast<FunctionDecl>(VD)->getBuiltinID()) {
 3137       if (!cast<FunctionDecl>(VD)->hasPrototype() &&
 4804 bool Sema::CheckCXXDefaultArgExpr(SourceLocation CallLoc, FunctionDecl *FD,
 4937 Sema::getVariadicCallType(FunctionDecl *FDecl, const FunctionProtoType *Proto,
 4982                                                FunctionDecl *FDecl,
 4998           if (FunctionDecl *FD = dyn_cast<FunctionDecl>(CD))
 4998           if (FunctionDecl *FD = dyn_cast<FunctionDecl>(CD))
 5027                               FunctionDecl *FDecl,
 5142 bool Sema::GatherArgumentsForCall(SourceLocation CallLoc, FunctionDecl *FDecl,
 5402 static FunctionDecl *rewriteBuiltinFunctionDecl(Sema *Sema, ASTContext &Context,
 5403                                                 FunctionDecl *FDecl,
 5453   FunctionDecl *OverloadDecl = FunctionDecl::Create(Context, Parent,
 5453   FunctionDecl *OverloadDecl = FunctionDecl::Create(Context, Parent,
 5477                                     FunctionDecl *Callee,
 5715     FunctionDecl *FDecl = dyn_cast<FunctionDecl>(NDecl);
 5715     FunctionDecl *FDecl = dyn_cast<FunctionDecl>(NDecl);
 5732   if (FunctionDecl *FD = dyn_cast_or_null<FunctionDecl>(NDecl)) {
 5732   if (FunctionDecl *FD = dyn_cast_or_null<FunctionDecl>(NDecl)) {
 5791   FunctionDecl *FDecl = dyn_cast_or_null<FunctionDecl>(NDecl);
 5791   FunctionDecl *FDecl = dyn_cast_or_null<FunctionDecl>(NDecl);
 5804   if (auto *Caller = getCurFunctionDecl())
 5959       const FunctionDecl *Def = nullptr;
 8606     if (FunctionDecl *FD = ResolveAddressOfOverloadedFunction(
10881       if (isa<FunctionDecl>(DC))
11476     if (auto *FD = dyn_cast<FunctionDecl>(DC))
11476     if (auto *FD = dyn_cast<FunctionDecl>(DC))
11584     const FunctionDecl *FD = CE->getDirectCallee();
12354   if (auto *FD = dyn_cast_or_null<FunctionDecl>(dcl))
12354   if (auto *FD = dyn_cast_or_null<FunctionDecl>(dcl))
12475     } else if (!isa<FunctionDecl>(dcl) && !isa<NonTypeTemplateParmDecl>(dcl) &&
12511   if (const FunctionDecl* FD = dyn_cast<FunctionDecl>(Param->getDeclContext()))
12511   if (const FunctionDecl* FD = dyn_cast<FunctionDecl>(Param->getDeclContext()))
13222   FunctionDecl *FD = OCE->getDirectCallee();
14439     if (const FunctionDecl *F = dyn_cast<FunctionDecl>(CurContext)) {
14439     if (const FunctionDecl *F = dyn_cast<FunctionDecl>(CurContext)) {
14622   auto *FD = dyn_cast<FunctionDecl>(DRE->getDecl());
15267 static bool funcHasParameterSizeMangling(Sema &S, FunctionDecl *FD) {
15302 static void CheckCompleteParameterTypesForMangler(Sema &S, FunctionDecl *FD,
15305     FunctionDecl *FD;
15309     ParamIncompleteTypeDiagnoser(FunctionDecl *FD, ParmVarDecl *Param)
15387 static bool isImplicitlyDefinableConstexprFunction(FunctionDecl *Func) {
15395 void Sema::MarkFunctionReferenced(SourceLocation Loc, FunctionDecl *Func,
15682   } else if (isa<FunctionDecl>(VarDC)) {
16948   if (auto *FD = dyn_cast<FunctionDecl>(D)) {
16948   if (auto *FD = dyn_cast<FunctionDecl>(D)) {
17141                                CallExpr *CE, FunctionDecl *FD) {
17154     FunctionDecl *FD;
17158     CallReturnIncompleteDiagnoser(FunctionDecl *FD, CallExpr *CE)
17386       if (!isa<FunctionDecl>(VD)) return VisitExpr(E);
17682   if (FunctionDecl *FD = dyn_cast<FunctionDecl>(VD)) {
17682   if (FunctionDecl *FD = dyn_cast<FunctionDecl>(VD)) {
17706         FunctionDecl *NewFD = FunctionDecl::Create(
17706         FunctionDecl *NewFD = FunctionDecl::Create(
17929       auto *FD = cast<FunctionDecl>(DRE->getDecl());
17929       auto *FD = cast<FunctionDecl>(DRE->getDecl());
tools/clang/lib/Sema/SemaExprCXX.cpp
 1436   const FunctionDecl *Caller = dyn_cast<FunctionDecl>(CurContext);
 1436   const FunctionDecl *Caller = dyn_cast<FunctionDecl>(CurContext);
 1441   SmallVector<const FunctionDecl*, 4> PreventedBy;
 1458 static bool isNonPlacementDeallocationFunction(Sema &S, FunctionDecl *FD) {
 1487         : Found(Found), FD(dyn_cast<FunctionDecl>(Found->getUnderlyingDecl())),
 1515         if (auto *Caller = dyn_cast<FunctionDecl>(S.CurContext))
 1515         if (auto *Caller = dyn_cast<FunctionDecl>(S.CurContext))
 1544     FunctionDecl *FD;
 1740 Sema::isUnavailableAlignedAllocationFunction(const FunctionDecl &FD) const {
 1753 void Sema::diagnoseUnavailableAlignedAllocation(const FunctionDecl &FD,
 2038   FunctionDecl *OperatorNew = nullptr;
 2039   FunctionDecl *OperatorDelete = nullptr;
 2224     bool &PassAlignment, FunctionDecl *&Operator,
 2242     FunctionDecl *Fn = cast<FunctionDecl>(D);
 2242     FunctionDecl *Fn = cast<FunctionDecl>(D);
 2252     FunctionDecl *FnDecl = Best->Function;
 2349                                    FunctionDecl *&OperatorNew,
 2350                                    FunctionDecl *&OperatorDelete,
 2487   SmallVector<std::pair<DeclAccessPair,FunctionDecl*>, 2> Matches;
 2537       FunctionDecl *Fn = nullptr;
 2547         Fn = cast<FunctionDecl>((*D)->getUnderlyingDecl());
 2557       EraseUnwantedCUDAMatches(dyn_cast<FunctionDecl>(CurContext), Matches);
 2778     if (FunctionDecl *Func = dyn_cast<FunctionDecl>(*Alloc)) {
 2778     if (FunctionDecl *Func = dyn_cast<FunctionDecl>(*Alloc)) {
 2816     FunctionDecl *Alloc = FunctionDecl::Create(
 2816     FunctionDecl *Alloc = FunctionDecl::Create(
 2852 FunctionDecl *Sema::FindUsualDeallocationFunction(SourceLocation StartLoc,
 2871 FunctionDecl *Sema::FindDeallocationFunctionForDestructor(SourceLocation Loc,
 2875   FunctionDecl *OperatorDelete = nullptr;
 2890                                     FunctionDecl *&Operator, bool Diagnose) {
 3092   const FunctionDecl *Definition = CD;
 3231   FunctionDecl *OperatorDelete = nullptr;
 3445                                             FunctionDecl *&Operator) {
 3475     FunctionDecl *Fn = cast<FunctionDecl>(D);
 3475     FunctionDecl *Fn = cast<FunctionDecl>(D);
 3487     FunctionDecl *FnDecl = Best->Function;
 3544   FunctionDecl *OperatorNewOrDelete = nullptr;
 3811       FunctionDecl *FD = ICS.UserDefined.ConversionFunction;
 3930     FunctionDecl *Fn = ResolveAddressOfOverloadedFunction(From, ToType,
 6679                                ArrayRef<FunctionDecl *> OperatorArrows) {
 6739     FunctionDecl *CurFD = dyn_cast<FunctionDecl>(CurContext);
 6739     FunctionDecl *CurFD = dyn_cast<FunctionDecl>(CurContext);
 6742     SmallVector<FunctionDecl*, 8> OperatorArrows;
tools/clang/lib/Sema/SemaExprMember.cpp
  997   const auto *FD = getCurFunctionDecl();
tools/clang/lib/Sema/SemaExprObjC.cpp
 3448       if (FunctionDecl *fn = e->getDirectCallee())
 3455     ACCResult checkCallToFunction(FunctionDecl *fn) {
tools/clang/lib/Sema/SemaInit.cpp
 3518 ::AddAddressOverloadResolutionStep(FunctionDecl *Function,
 3565 InitializationSequence::AddUserConversionStep(FunctionDecl *Function,
 4158     if (FunctionDecl *Fn
 4581   FunctionDecl *Function = Best->Function;
 5228   FunctionDecl *Function = Best->Function;
 5544   if (!DRE || !isa<FunctionDecl>(DRE->getDecl()))
 5548       cast<FunctionDecl>(DRE->getDecl()));
 6760 static bool shouldTrackFirstArgument(const FunctionDecl *FD) {
 6808     FunctionDecl *Callee = OCE->getDirectCallee();
 6814     FunctionDecl *Callee = CE->getDirectCallee();
 6828 static bool implicitObjectParamIsLifetimeBound(const FunctionDecl *FD) {
 6847   const FunctionDecl *Callee;
 7990           if (auto *FD = dyn_cast<FunctionDecl>(DRE->getDecl())) {
 7990           if (auto *FD = dyn_cast<FunctionDecl>(DRE->getDecl())) {
 8046       FunctionDecl *Fn = Step->Function.Function;
 8788     auto *FD = cast<FunctionDecl>(cast<DeclRefExpr>(OnlyArg)->getDecl());
 8788     auto *FD = cast<FunctionDecl>(cast<DeclRefExpr>(OnlyArg)->getDecl());
 9630       const FunctionDecl *Function = LastStep->Function.Function;
 9755           TD ? TD->getTemplatedDecl() : dyn_cast<FunctionDecl>(D));
 9824         auto *FD = dyn_cast<FunctionDecl>(D->getUnderlyingDecl());
 9824         auto *FD = dyn_cast<FunctionDecl>(D->getUnderlyingDecl());
tools/clang/lib/Sema/SemaLambda.cpp
  265     if (const FunctionDecl *FD = dyn_cast<FunctionDecl>(DC))
  265     if (const FunctionDecl *FD = dyn_cast<FunctionDecl>(DC))
tools/clang/lib/Sema/SemaLookup.cpp
  393   if (auto *DFD = dyn_cast<FunctionDecl>(DUnderlying)) {
  393   if (auto *DFD = dyn_cast<FunctionDecl>(DUnderlying)) {
  394     auto *EFD = cast<FunctionDecl>(EUnderlying);
  394     auto *EFD = cast<FunctionDecl>(EUnderlying);
  440   if (!isa<FunctionDecl>(DUnderlying) && !isa<VarDecl>(DUnderlying)) {
  469   return isa<VarDecl>(D) || isa<EnumConstantDecl>(D) || isa<FunctionDecl>(D) ||
  570     } else if (isa<FunctionDecl>(D)) {
  791     FunctionDecl *NewOpenCLBuiltin;
  794       NewOpenCLBuiltin = FunctionDecl::Create(
 1070     FunctionDecl *Specialization = nullptr;
 1524   if (FunctionDecl *FD = dyn_cast<FunctionDecl>(Entity)) {
 1524   if (FunctionDecl *FD = dyn_cast<FunctionDecl>(Entity)) {
 1527     if (FunctionDecl *Pattern = FD->getTemplateInstantiationPattern())
 1648     if (auto *FD = dyn_cast<FunctionDecl>(D))
 1724                (isa<FunctionDecl>(DC) && !SemaRef.getLangOpts().CPlusPlus))
 3012       const FunctionDecl *FDecl = D->getUnderlyingDecl()->getAsFunction();
 3410     if (FunctionDecl *FD = dyn_cast<FunctionDecl>(D)) {
 3410     if (FunctionDecl *FD = dyn_cast<FunctionDecl>(D)) {
 3504   FunctionDecl *OldFD = Old->getAsFunction();
 3505   FunctionDecl *NewFD = New->getAsFunction();
 3507   FunctionDecl *Cursor = NewFD;
 3563       if (!isa<FunctionDecl>(Underlying) &&
 5214     FunctionDecl *FD = nullptr;
 5219       if (!(FD = dyn_cast<FunctionDecl>(ND)) && isa<ValueDecl>(ND)) {
 5281   if (FunctionDecl *FD = dyn_cast<FunctionDecl>(D))
 5281   if (FunctionDecl *FD = dyn_cast<FunctionDecl>(D))
tools/clang/lib/Sema/SemaObjCProperty.cpp
 1493           if (const FunctionDecl *FuncDecl = CXXCE->getDirectCallee())
tools/clang/lib/Sema/SemaOpenMP.cpp
 1618 void Sema::checkOpenMPDeviceFunction(SourceLocation Loc, FunctionDecl *Callee,
 1624   FunctionDecl *Caller = getCurFunctionDecl();
 1661 void Sema::checkOpenMPHostFunction(SourceLocation Loc, FunctionDecl *Callee,
 1667   FunctionDecl *Caller = getCurFunctionDecl();
 2097     for (const std::pair<CanonicalDeclPtr<FunctionDecl>, SourceLocation>
 2099       const FunctionDecl *FD = Callee.first->getMostRecentDecl();
 2241                isa<FunctionDecl>(ND))) {
 4730   auto *FD = dyn_cast<FunctionDecl>(ADecl);
 4730   auto *FD = dyn_cast<FunctionDecl>(ADecl);
 4957 Optional<std::pair<FunctionDecl *, Expr *>>
 4975   auto *FD = dyn_cast<FunctionDecl>(ADecl);
 4975   auto *FD = dyn_cast<FunctionDecl>(ADecl);
 5000   const FunctionDecl *Definition;
 5088   auto *NewFD = dyn_cast_or_null<FunctionDecl>(DRE->getDecl());
 5088   auto *NewFD = dyn_cast_or_null<FunctionDecl>(DRE->getDecl());
 5172     FunctionDecl *FD, Expr *VariantRef, SourceRange SR,
 5198                                                    FunctionDecl *Func,
 5208       auto *F = cast<FunctionDecl>(DRE->getDecl());
 5208       auto *F = cast<FunctionDecl>(DRE->getDecl());
16201   if (!isa<VarDecl>(ND) && !isa<FunctionDecl>(ND) &&
16307   if (auto *FD = dyn_cast<FunctionDecl>(D)) {
16307   if (auto *FD = dyn_cast<FunctionDecl>(D)) {
16333       if (isa<VarDecl>(D) || isa<FunctionDecl>(D) ||
tools/clang/lib/Sema/SemaOverload.cpp
   41 static bool functionHasPassObjectSizeParams(const FunctionDecl *FD) {
   49 CreateFunctionRefExpr(Sema &S, FunctionDecl *Fn, NamedDecl *FoundDecl,
  859     ASTContext &Ctx, const FunctionDecl *FD) {
  994 Sema::CheckOverload(Scope *S, FunctionDecl *New, const LookupResult &Old,
 1025     if (FunctionDecl *OldF = OldD->getAsFunction()) {
 1099     Match = TemplateSpecResult.getAsSingle<FunctionDecl>();
 1106 bool Sema::IsOverload(FunctionDecl *New, FunctionDecl *Old,
 1106 bool Sema::IsOverload(FunctionDecl *New, FunctionDecl *Old,
 1654     if (FunctionDecl *Fn
 1754       if (auto *FD = dyn_cast<FunctionDecl>(DRE->getDecl()))
 1754       if (auto *FD = dyn_cast<FunctionDecl>(DRE->getDecl()))
 3574 compareConversionFunctions(Sema &S, FunctionDecl *Function1,
 3575                            FunctionDecl *Function2) {
 4612     if (FunctionDecl *Fn = S.ResolveAddressOfOverloadedFunction(Init, DeclType,
 5042         if (FunctionDecl *Fn = S.ResolveAddressOfOverloadedFunction(
 6041                                                    FunctionDecl *Fn,
 6083     FunctionDecl *Function, DeclAccessPair FoundDecl, ArrayRef<Expr *> Args,
 6232     if (const FunctionDecl *Caller = dyn_cast<FunctionDecl>(CurContext))
 6232     if (const FunctionDecl *Caller = dyn_cast<FunctionDecl>(CurContext))
 6391 convertArgsForAvailabilityChecks(Sema &S, FunctionDecl *Function, Expr *ThisArg,
 6461 EnableIfAttr *Sema::CheckEnableIf(FunctionDecl *Function, ArrayRef<Expr *> Args,
 6531 bool Sema::diagnoseArgDependentDiagnoseIfAttrs(const FunctionDecl *Function,
 6543                 Result, Context, cast<FunctionDecl>(DIA->getParent()), Args, ThisArg))
 6574     FunctionDecl *FD =
 6575         FunTmpl ? FunTmpl->getTemplatedDecl() : cast<FunctionDecl>(D);
 6752     if (const FunctionDecl *Caller = dyn_cast<FunctionDecl>(CurContext))
 6752     if (const FunctionDecl *Caller = dyn_cast<FunctionDecl>(CurContext))
 6829   FunctionDecl *Specialization = nullptr;
 6894   FunctionDecl *Specialization = nullptr;
 6951   auto *FD = FunctionTemplate->getTemplatedDecl();
 7389     FunctionDecl *FD =
 7390         FunTmpl ? FunTmpl->getTemplatedDecl() : cast<FunctionDecl>(D);
 9161     if (FunctionDecl *FD = dyn_cast<FunctionDecl>(*I)) {
 9161     if (FunctionDecl *FD = dyn_cast<FunctionDecl>(*I)) {
 9195 static Comparison compareEnableIfAttrs(const Sema &S, const FunctionDecl *Cand1,
 9196                                        const FunctionDecl *Cand2) {
 9500     FunctionDecl *Caller = dyn_cast<FunctionDecl>(S.CurContext);
 9500     FunctionDecl *Caller = dyn_cast<FunctionDecl>(S.CurContext);
 9607     const FunctionDecl *Caller = dyn_cast<FunctionDecl>(S.CurContext);
 9607     const FunctionDecl *Caller = dyn_cast<FunctionDecl>(S.CurContext);
 9702 ClassifyOverloadCandidate(Sema &S, NamedDecl *Found, FunctionDecl *Fn,
 9776                                     const FunctionDecl *FD) {
 9795 static bool checkAddressOfFunctionIsAvailable(Sema &S, const FunctionDecl *FD,
 9831                                                const FunctionDecl *FD) {
 9837 bool Sema::checkAddressOfFunctionIsAvailable(const FunctionDecl *Function,
 9846 void Sema::NoteOverloadCandidate(NamedDecl *Found, FunctionDecl *Fn,
 9883     } else if (FunctionDecl *Fun
 9884                       = dyn_cast<FunctionDecl>((*I)->getUnderlyingDecl()) ) {
 9920   FunctionDecl *Fn = Cand->Function;
10150   FunctionDecl *Fn = Cand->Function;
10183   FunctionDecl *Fn = cast<FunctionDecl>(D);
10183   FunctionDecl *Fn = cast<FunctionDecl>(D);
10456     if (TakingCandidateAddress && isa<FunctionDecl>(Templated) &&
10457         !checkAddressOfCandidateIsAvailable(S, cast<FunctionDecl>(Templated)))
10497   FunctionDecl *Caller = cast<FunctionDecl>(S.CurContext);
10497   FunctionDecl *Caller = cast<FunctionDecl>(S.CurContext);
10498   FunctionDecl *Callee = Cand->Function;
10555   FunctionDecl *Callee = Cand->Function;
10591   FunctionDecl *Callee = Cand->Function;
10617   FunctionDecl *Fn = Cand->Function;
11271 static bool completeFunctionType(Sema &S, FunctionDecl *FD, SourceLocation Loc,
11307   SmallVector<std::pair<DeclAccessPair, FunctionDecl*>, 4> Matches;
11332       if (FunctionDecl *Fn = S.ResolveSingleFunctionTemplateSpecialization(
11373   bool candidateHasExactlyCorrectType(const FunctionDecl *FD) {
11381   bool isBetterCandidate(const FunctionDecl *A, const FunctionDecl *B) {
11381   bool isBetterCandidate(const FunctionDecl *A, const FunctionDecl *B) {
11400     const FunctionDecl *BestFn = Best->second;
11447     FunctionDecl *Specialization = nullptr;
11486     if (FunctionDecl *FunDecl = dyn_cast<FunctionDecl>(Fn)) {
11486     if (FunctionDecl *FunDecl = dyn_cast<FunctionDecl>(Fn)) {
11488         if (FunctionDecl *Caller = dyn_cast<FunctionDecl>(S.CurContext))
11488         if (FunctionDecl *Caller = dyn_cast<FunctionDecl>(S.CurContext))
11512             CurAccessFunPair, cast<FunctionDecl>(FunDecl->getCanonicalDecl())));
11585       Matches[0].second = cast<FunctionDecl>(*Result);
11605     S.EraseUnwantedCUDAMatches(dyn_cast<FunctionDecl>(S.CurContext), Matches);
11624         if (FunctionDecl *Fun =
11625                 dyn_cast<FunctionDecl>((*I)->getUnderlyingDecl()))
11673   FunctionDecl* getMatchingFunctionDecl() const {
11700 FunctionDecl *
11711   FunctionDecl *Fn = nullptr;
11746 FunctionDecl *
11751   FunctionDecl *Result = nullptr;
11757     auto *FD = dyn_cast<FunctionDecl>(I->getUnderlyingDecl());
11757     auto *FD = dyn_cast<FunctionDecl>(I->getUnderlyingDecl());
11789   FunctionDecl *Found = resolveAddressOfOnlyViableOverloadCandidate(E, DAP);
11817 FunctionDecl *
11838   FunctionDecl *Matched = nullptr;
11856     FunctionDecl *Specialization = nullptr;
11912   if (FunctionDecl *fn = ResolveSingleFunctionTemplateSpecialization(
11988   if (FunctionDecl *Func = dyn_cast<FunctionDecl>(Callee)) {
11988   if (FunctionDecl *Func = dyn_cast<FunctionDecl>(Callee)) {
12320     FunctionDecl *F;
12323         (F = dyn_cast<FunctionDecl>(*ULE->decls_begin())) &&
12344       (isa<FunctionDecl>(CurContext) || isa<CXXRecordDecl>(CurContext))) {
12391     FunctionDecl *FDecl = (*Best)->Function;
12418         auto *FD = dyn_cast<FunctionDecl>(DRE->getDecl());
12452     FunctionDecl *FDecl = (*Best)->Function;
12599     FunctionDecl *FnDecl = Best->Function;
12854       FunctionDecl *FnDecl = Best->Function;
13180       FunctionDecl *FnDecl = Best->Function;
14023   FunctionDecl *FD = Best->Function;
14135                                            FunctionDecl *Fn) {
14309                                                 FunctionDecl *Fn) {
tools/clang/lib/Sema/SemaStmt.cpp
 1601       FunctionDecl *FD = Call->getDirectCallee();
 2039   FunctionDecl *D = dyn_cast<FunctionDecl>(CE->getCalleeDecl());
 2039   FunctionDecl *D = dyn_cast<FunctionDecl>(CE->getCalleeDecl());
 2749     const FunctionDecl *FD = Call->getDirectCallee();
 3067     FunctionDecl *FD = Step.Function.Function;
 3228 static bool hasDeducedReturnType(FunctionDecl *FD) {
 3264     FunctionDecl *FD = CurLambda->CallOperator;
 3434 TypeLoc Sema::getReturnTypeLoc(FunctionDecl *FD) const {
 3443 bool Sema::DeduceFunctionTypeFromReturnExpr(FunctionDecl *FD,
 3591   if (const FunctionDecl *FD = getCurFunctionDecl()) {
 3637       FunctionDecl *FD = cast<FunctionDecl>(CurContext);
 3637       FunctionDecl *FD = cast<FunctionDecl>(CurContext);
 3729     FunctionDecl *FD = getCurFunctionDecl();
 4174   FunctionDecl *FD = dyn_cast_or_null<FunctionDecl>(DC);
 4174   FunctionDecl *FD = dyn_cast_or_null<FunctionDecl>(DC);
tools/clang/lib/Sema/SemaStmtAsm.cpp
  128   FunctionDecl *Func = dyn_cast<FunctionDecl>(S.CurContext);
  128   FunctionDecl *Func = dyn_cast<FunctionDecl>(S.CurContext);
tools/clang/lib/Sema/SemaTemplate.cpp
  121         isa<FunctionDecl>((*I)->getUnderlyingDecl()))
  441           return isa<FunctionDecl>(ND->getUnderlyingDecl());
  775     if (isa<FunctionDecl>(Instantiation)) {
  789     if (isa<FunctionDecl>(Instantiation)) {
 6075   FunctionDecl *Func = dyn_cast<FunctionDecl>(Entity);
 6075   FunctionDecl *Func = dyn_cast<FunctionDecl>(Entity);
 6757       if (FunctionDecl *Fn = ResolveAddressOfOverloadedFunction(Arg, ParamType,
 6809       if (FunctionDecl *Fn = ResolveAddressOfOverloadedFunction(Arg,
 7050   } else if (isa<FunctionDecl>(VD)) {
 7425   if (FunctionDecl *Function = dyn_cast<FunctionDecl>(D))
 7425   if (FunctionDecl *Function = dyn_cast<FunctionDecl>(D))
 8107   if (FunctionDecl *FD = dyn_cast<FunctionDecl>(D))
 8107   if (FunctionDecl *FD = dyn_cast<FunctionDecl>(D))
 8330 Sema::CheckDependentFunctionTemplateSpecialization(FunctionDecl *FD,
 8394     FunctionDecl *FD, TemplateArgumentListInfo *ExplicitTemplateArgs,
 8402   llvm::SmallDenseMap<FunctionDecl *, TemplateArgumentListInfo, 8>
 8446       FunctionDecl *Specialization = nullptr;
 8491       if (auto *OldFD = dyn_cast<FunctionDecl>(OldND->getUnderlyingDecl()))
 8491       if (auto *OldFD = dyn_cast<FunctionDecl>(OldND->getUnderlyingDecl()))
 8510   FunctionDecl *Specialization = cast<FunctionDecl>(*Result);
 8510   FunctionDecl *Specialization = cast<FunctionDecl>(*Result);
 8639   } else if (FunctionDecl *Function = dyn_cast<FunctionDecl>(Member)) {
 8639   } else if (FunctionDecl *Function = dyn_cast<FunctionDecl>(Member)) {
 8751   if (auto *MemberFunction = dyn_cast<FunctionDecl>(Member)) {
 8751   if (auto *MemberFunction = dyn_cast<FunctionDecl>(Member)) {
 8752     FunctionDecl *InstantiationFunction = cast<FunctionDecl>(Instantiation);
 8752     FunctionDecl *InstantiationFunction = cast<FunctionDecl>(Instantiation);
 9579   FunctionDecl *NonTemplateMatch = nullptr;
 9605     FunctionDecl *Specialization = nullptr;
 9637   FunctionDecl *Specialization = NonTemplateMatch;
 9651     Specialization = cast<FunctionDecl>(*Result);
 9687   FunctionDecl *PrevDecl = Specialization->getPreviousDecl();
10316 void Sema::MarkAsLateParsedTemplate(FunctionDecl *FD, Decl *FnD,
10331 void Sema::UnmarkAsLateParsedTemplate(FunctionDecl *FD) {
10342       const FunctionDecl *FD = RD->isLocalClass();
10343       return (FD && FD->getTemplatedKind() != FunctionDecl::TK_NonTemplate);
10380     if (auto *FD = dyn_cast<FunctionDecl>(ND))
10380     if (auto *FD = dyn_cast<FunctionDecl>(ND))
10418   void checkImpl(SpecDecl *Spec) {
10433   void checkInstantiated(FunctionDecl *FD) {
tools/clang/lib/Sema/SemaTemplateDeduction.cpp
 2971   FunctionDecl *Function = FunctionTemplate->getTemplatedDecl();
 3313     unsigned NumExplicitlySpecified, FunctionDecl *&Specialization,
 3366   Specialization = cast_or_null<FunctionDecl>(
 3451                                   FunctionDecl *Fn) {
 3501       if (FunctionDecl *ExplicitSpec
 3507     if (FunctionDecl *Viable =
 3531       FunctionDecl *Specialization = nullptr;
 3540     FunctionDecl *Fn = cast<FunctionDecl>(D);
 3540     FunctionDecl *Fn = cast<FunctionDecl>(D);
 3811     FunctionDecl *&Specialization, TemplateDeductionInfo &Info,
 3817   FunctionDecl *Function = FunctionTemplate->getTemplatedDecl();
 4028     FunctionDecl *&Specialization, TemplateDeductionInfo &Info,
 4033   FunctionDecl *Function = FunctionTemplate->getTemplatedDecl();
 4249   FunctionDecl *ConversionSpecialized = nullptr;
 4284     FunctionDecl *&Specialization, TemplateDeductionInfo &Info,
 4631 bool Sema::DeduceReturnType(FunctionDecl *FD, SourceLocation Loc,
 4639     FunctionDecl *CallOp = Lambda->getLambdaCallOperator();
 4719   FunctionDecl *FD1 = FT1->getTemplatedDecl();
 4720   FunctionDecl *FD2 = FT2->getTemplatedDecl();
 4865   FunctionDecl *Function = FunTmpl->getTemplatedDecl();
 4987     = cast<FunctionDecl>(*Best)->getPrimaryTemplate();
 4991       = cast<FunctionDecl>(*I)->getPrimaryTemplate();
 5006       = cast<FunctionDecl>(*I)->getPrimaryTemplate();
 5028       const auto *FD = cast<FunctionDecl>(*I);
 5028       const auto *FD = cast<FunctionDecl>(*I);
 5698   FunctionDecl *Function = FunctionTemplate->getTemplatedDecl();
tools/clang/lib/Sema/SemaTemplateInstantiate.cpp
   59                                    const FunctionDecl *Pattern) {
  135     else if (FunctionDecl *Function = dyn_cast<FunctionDecl>(Ctx)) {
  135     else if (FunctionDecl *Function = dyn_cast<FunctionDecl>(Ctx)) {
  263     Sema &SemaRef, SourceLocation PointOfInstantiation, FunctionDecl *Entity,
  499       } else if (FunctionDecl *Function = dyn_cast<FunctionDecl>(D)) {
  499       } else if (FunctionDecl *Function = dyn_cast<FunctionDecl>(D)) {
  599       FunctionDecl *FD = cast<FunctionDecl>(Param->getDeclContext());
  599       FunctionDecl *FD = cast<FunctionDecl>(Param->getDeclContext());
  658           << cast<FunctionDecl>(Active->Entity);
  664         << cast<FunctionDecl>(Active->Entity)
 1496                            cast<FunctionDecl>(E->getParam()->getDeclContext()),
 1792 void Sema::SubstExceptionSpec(FunctionDecl *New, const FunctionProtoType *Proto,
 1870     FunctionDecl *OwningFunc = cast<FunctionDecl>(OldParm->getDeclContext());
 1870     FunctionDecl *OwningFunc = cast<FunctionDecl>(OldParm->getDeclContext());
 2669     if (auto *Function = dyn_cast<FunctionDecl>(D)) {
 2669     if (auto *Function = dyn_cast<FunctionDecl>(D)) {
 2670       if (FunctionDecl *Pattern =
 2982     if (const FunctionDecl *FD = dyn_cast<FunctionDecl>(PV->getDeclContext())) {
 2982     if (const FunctionDecl *FD = dyn_cast<FunctionDecl>(PV->getDeclContext())) {
tools/clang/lib/Sema/SemaTemplateInstantiateDecl.cpp
   42 static bool SubstQualifier(Sema &SemaRef, const DeclT *OldDecl, DeclT *NewDecl,
   42 static bool SubstQualifier(Sema &SemaRef, const DeclT *OldDecl, DeclT *NewDecl,
  183     const Attr *A, Expr *OldCond, const Decl *Tmpl, FunctionDecl *New) {
  214     const EnableIfAttr *EIA, const Decl *Tmpl, FunctionDecl *New) {
  225     const DiagnoseIfAttr *DIA, const Decl *Tmpl, FunctionDecl *New) {
  275   auto *FD = cast<FunctionDecl>(New);
  275   auto *FD = cast<FunctionDecl>(New);
  358   auto *FD = cast<FunctionDecl>(New);
  358   auto *FD = cast<FunctionDecl>(New);
  396   Optional<std::pair<FunctionDecl *, Expr *>> DeclVarData =
  435                              ExplicitSpecifier ES, FunctionDecl *New) {
  542                                        cast<FunctionDecl>(New));
  548                                          cast<FunctionDecl>(New));
  916     QualType ReturnType = cast<FunctionDecl>(DC)->getReturnType();
 1613   FunctionDecl *Instantiated = nullptr;
 1615     Instantiated = cast_or_null<FunctionDecl>(VisitCXXMethodDecl(DMethod,
 1618     Instantiated = cast_or_null<FunctionDecl>(VisitFunctionDecl(
 1744                                                    FunctionDecl *D,
 1764 Decl *TemplateDeclInstantiator::VisitFunctionDecl(FunctionDecl *D,
 1773     FunctionDecl *SpecFunc
 1835   FunctionDecl *Function;
 1845     Function = FunctionDecl::Create(
 2079     FunctionDecl *SpecFunc
 3223 Decl *TemplateDeclInstantiator::VisitFunctionDecl(FunctionDecl *D) {
 3813 TemplateDeclInstantiator::SubstFunctionType(FunctionDecl *D,
 3914 static bool addInstantiatedParametersToScope(Sema &S, FunctionDecl *Function,
 3915                                              const FunctionDecl *PatternDecl,
 3976                                     FunctionDecl *Decl) {
 4005   FunctionDecl *Template = Proto->getExceptionSpecTemplate();
 4021 TemplateDeclInstantiator::InitFunctionInstantiation(FunctionDecl *New,
 4022                                                     FunctionDecl *Tmpl) {
 4068       FunctionDecl *ExceptionSpecTemplate = Tmpl;
 4092   const FunctionDecl *Definition = Tmpl;
 4128 FunctionDecl *
 4132   FunctionDecl *FD = FTD->getTemplatedDecl();
 4144   return cast_or_null<FunctionDecl>(SubstDecl(FD, FD->getParent(), MArgs));
 4186                                          FunctionDecl *Function,
 4202   const FunctionDecl *PatternDecl = Function->getTemplateInstantiationPattern();
 4205   const FunctionDecl *PatternDef = PatternDecl->getDefinition();
 4303     for (auto *D = Function->getMostRecentDecl(); /**/;
 5121 static bool isInstantiationOf(FunctionDecl *Pattern,
 5122                               FunctionDecl *Instance) {
 5216   if (auto *Function = dyn_cast<FunctionDecl>(Other))
 5216   if (auto *Function = dyn_cast<FunctionDecl>(Other))
 5217     return isInstantiationOf(cast<FunctionDecl>(D), Function);
 5433       if (FunctionDecl *FD = dyn_cast<FunctionDecl>(DC)) {
 5433       if (FunctionDecl *FD = dyn_cast<FunctionDecl>(DC)) {
 5609     if (FunctionDecl *Function = dyn_cast<FunctionDecl>(Inst.first)) {
 5609     if (FunctionDecl *Function = dyn_cast<FunctionDecl>(Inst.first)) {
tools/clang/lib/Sema/SemaTemplateVariadic.cpp
   46         auto *FD = dyn_cast<FunctionDecl>(VD->getDeclContext());
   46         auto *FD = dyn_cast<FunctionDecl>(VD->getDeclContext());
tools/clang/lib/Sema/SemaType.cpp
 7899   } else if (auto *FD = dyn_cast<FunctionDecl>(D)) {
 7899   } else if (auto *FD = dyn_cast<FunctionDecl>(D)) {
 7900     if (auto *Pattern = FD->getTemplateInstantiationPattern())
tools/clang/lib/Sema/TreeTransform.h
 3233     FunctionDecl *Builtin = cast<FunctionDecl>(Lookup.front());
 3233     FunctionDecl *Builtin = cast<FunctionDecl>(Lookup.front());
 7182   auto *FD = cast<FunctionDecl>(SemaRef.CurContext);
 7182   auto *FD = cast<FunctionDecl>(SemaRef.CurContext);
 9356   if (FunctionDecl *FD = E->getDirectCallee())
10651   FunctionDecl *OperatorNew = nullptr;
10653     OperatorNew = cast_or_null<FunctionDecl>(
10659   FunctionDecl *OperatorDelete = nullptr;
10661     OperatorDelete = cast_or_null<FunctionDecl>(
10735   FunctionDecl *OperatorDelete = nullptr;
10737     OperatorDelete = cast_or_null<FunctionDecl>(
tools/clang/lib/Serialization/ASTCommon.cpp
  428     if (auto *FD = dyn_cast<FunctionDecl>(D))
tools/clang/lib/Serialization/ASTReader.cpp
 4919                            cast<FunctionDecl>(GetDecl(CUDASpecialDeclRefs[0])));
 6905     ESI.SourceDecl = ReadDeclAs<FunctionDecl>(ModuleFile, Record, Idx);
 6906     ESI.SourceTemplate = ReadDeclAs<FunctionDecl>(ModuleFile, Record, Idx);
 6908     ESI.SourceDecl = ReadDeclAs<FunctionDecl>(ModuleFile, Record, Idx);
 7648   if (auto *FD = dyn_cast<FunctionDecl>(D)) {
 8788     llvm::MapVector<const FunctionDecl *, std::unique_ptr<LateParsedTemplate>>
 8792     FunctionDecl *FD = cast<FunctionDecl>(GetDecl(LateParsedTemplates[Idx++]));
 8792     FunctionDecl *FD = cast<FunctionDecl>(GetDecl(LateParsedTemplates[Idx++]));
 9876       auto *FD = PendingFunctionTypes[I].first;
10010     if (FunctionDecl *FD = dyn_cast<FunctionDecl>(PB->first)) {
10010     if (FunctionDecl *FD = dyn_cast<FunctionDecl>(PB->first)) {
10026       const FunctionDecl *Defn = nullptr;
10030         auto *NonConstDefn = const_cast<FunctionDecl*>(Defn);
11798     FunctionDecl *FirstFunction = Merge.first;
12161           Listener->ResolvedExceptionSpec(cast<FunctionDecl>(Update.second));
12162         for (auto *Redecl : Update.second->redecls())
12163           getContext().adjustExceptionSpec(cast<FunctionDecl>(Redecl), ESI);
tools/clang/lib/Serialization/ASTReaderDecl.cpp
  144     T *ReadDeclAs() {
  145       return Record.readDeclAs<T>();
  249       operator T*() const { return dyn_cast_or_null<T>(Existing); }
  249       operator T*() const { return dyn_cast_or_null<T>(Existing); }
  312     void ReadFunctionDefinition(FunctionDecl *FD);
  368     void VisitFunctionDecl(FunctionDecl *FD);
  412     RedeclarableResult VisitRedeclarable(Redeclarable<T> *D);
  415     void mergeRedeclarable(Redeclarable<T> *D, RedeclarableResult &Redecl,
  419     void mergeRedeclarable(Redeclarable<T> *D, T *Existing,
  419     void mergeRedeclarable(Redeclarable<T> *D, T *Existing,
  508 void ASTDeclReader::ReadFunctionDefinition(FunctionDecl *FD) {
  546   } else if (auto *FD = dyn_cast<FunctionDecl>(D)) {
  546   } else if (auto *FD = dyn_cast<FunctionDecl>(D)) {
  810   if (isa<FunctionDecl>(VD))
  838 void ASTDeclReader::VisitFunctionDecl(FunctionDecl *FD) {
  888   case FunctionDecl::TK_NonTemplate:
  891   case FunctionDecl::TK_FunctionTemplate:
  895   case FunctionDecl::TK_MemberSpecialization: {
  896     auto *InstFD = ReadDeclAs<FunctionDecl>();
  896     auto *InstFD = ReadDeclAs<FunctionDecl>();
  904   case FunctionDecl::TK_FunctionTemplateSpecialization: {
  937       auto *FD = ReadDeclAs<FunctionDecl>();
  937       auto *FD = ReadDeclAs<FunctionDecl>();
  977   case FunctionDecl::TK_DependentFunctionTemplateSpecialization: {
 1939   if (auto *OperatorDelete = ReadDeclAs<FunctionDecl>()) {
 1939   if (auto *OperatorDelete = ReadDeclAs<FunctionDecl>()) {
 2394   auto *FirstDecl = cast_or_null<T>(Reader.GetDecl(FirstDeclID));
 2394   auto *FirstDecl = cast_or_null<T>(Reader.GetDecl(FirstDeclID));
 2400     D->RedeclLink = Redeclarable<T>::PreviousDeclLink(FirstDecl);
 2404   auto *DAsT = static_cast<T *>(D);
 2430   auto *D = static_cast<T *>(DBase);
 2434     mergeRedeclarable(D, cast<T>(Existing), Redecl, TemplatePatternID);
 2436     if (T *Existing = ExistingRes)
 2479   if (auto *DFunction = dyn_cast<FunctionDecl>(DPattern))
 2479   if (auto *DFunction = dyn_cast<FunctionDecl>(DPattern))
 2480     return mergeRedeclarable(DFunction, cast<FunctionDecl>(ExistingPattern),
 2496   auto *D = static_cast<T *>(DBase);
 2497   T *ExistingCanon = Existing->getCanonicalDecl();
 2498   T *DCanon = D->getCanonicalDecl();
 2506     D->RedeclLink = Redeclarable<T>::PreviousDeclLink(ExistingCanon);
 2689   template <typename T> T *GetLocalDeclAs(uint32_t LocalID) {
 2690     return cast_or_null<T>(Reader->GetLocalDecl(*F, LocalID));
 2780   if (const auto *Func = dyn_cast<FunctionDecl>(D))
 2780   if (const auto *Func = dyn_cast<FunctionDecl>(D))
 2904 static bool hasSameOverloadableAttrs(const FunctionDecl *A,
 2905                                      const FunctionDecl *B) {
 2985   if (const auto *FuncX = dyn_cast<FunctionDecl>(X)) {
 2985   if (const auto *FuncX = dyn_cast<FunctionDecl>(X)) {
 2986     const auto *FuncY = cast<FunctionDecl>(Y);
 2986     const auto *FuncY = cast<FunctionDecl>(Y);
 3236     if (auto *FD = dyn_cast<FunctionDecl>(D))
 3236     if (auto *FD = dyn_cast<FunctionDecl>(D))
 3381 Decl *ASTDeclReader::getMostRecentDeclImpl(Redeclarable<DeclT> *D) {
 3446                                            Redeclarable<FunctionDecl> *D,
 3448   auto *FD = static_cast<FunctionDecl *>(D);
 3449   auto *PrevFD = cast<FunctionDecl>(Previous);
 3449   auto *PrevFD = cast<FunctionDecl>(Previous);
 3493           {cast<FunctionDecl>(Canon),
 3567 void ASTDeclReader::attachLatestDeclImpl(Redeclarable<DeclT> *D, Decl *Latest) {
 3568   D->RedeclLink.setLatest(cast<DeclT>(Latest));
 3589 void ASTDeclReader::markIncompleteDeclChainImpl(Redeclarable<DeclT> *D) {
 3664     D = FunctionDecl::CreateDeserialized(Context, ID);
 4219 static void forAllLaterRedecls(DeclT *D, Fn F) {
 4225   auto *MostRecent = D->getMostRecentDecl();
 4227   for (auto *Redecl = MostRecent; Redecl && !Found;
 4233     for (auto *Redecl = MostRecent; Redecl != D;
 4298         auto *FD = cast<FunctionDecl>(D);
 4298         auto *FD = cast<FunctionDecl>(D);
 4342       auto *FD = cast<FunctionDecl>(D);
 4342       auto *FD = cast<FunctionDecl>(D);
 4427       auto *Del = ReadDeclAs<FunctionDecl>();
 4427       auto *Del = ReadDeclAs<FunctionDecl>();
 4444       auto *FD = cast<FunctionDecl>(D);
 4444       auto *FD = cast<FunctionDecl>(D);
 4462       auto *FD = cast<FunctionDecl>(D);
 4462       auto *FD = cast<FunctionDecl>(D);
tools/clang/lib/Serialization/ASTReaderStmt.cpp
   95     T *ReadDeclAs() {
   96       return Record.readDeclAs<T>();
 1634   E->setOperatorNew(ReadDeclAs<FunctionDecl>());
 1635   E->setOperatorDelete(ReadDeclAs<FunctionDecl>());
 1655   E->OperatorDelete = ReadDeclAs<FunctionDecl>();
tools/clang/lib/Serialization/ASTWriter.cpp
 4463     const FunctionDecl *FD = LPTMapEntry.first;
 5369             cast<FunctionDecl>(D)->getType()->castAs<FunctionProtoType>(),
 5415       const auto *Def = cast<FunctionDecl>(D);
 5415       const auto *Def = cast<FunctionDecl>(D);
 6406 void ASTWriter::ResolvedExceptionSpec(const FunctionDecl *FD) {
 6413     if (isUnresolvedExceptionSpec(cast<FunctionDecl>(D)
 6421 void ASTWriter::DeducedReturnType(const FunctionDecl *FD, QualType ReturnType) {
 6432                                        const FunctionDecl *Delete,
 6443 void ASTWriter::CompletedImplicitDefinition(const FunctionDecl *D) {
 6462 void ASTWriter::FunctionDefinitionInstantiated(const FunctionDecl *D) {
 6483     POI = cast<FunctionDecl>(D)->getPointOfInstantiation();
 6602                                                const FunctionDecl *D) {
tools/clang/lib/Serialization/ASTWriterDecl.cpp
   89     void VisitFunctionDecl(FunctionDecl *D);
  129     template <typename T> void VisitRedeclarable(Redeclarable<T> *D);
  279   if (FunctionDecl *FD = dyn_cast<FunctionDecl>(D)) {
  279   if (FunctionDecl *FD = dyn_cast<FunctionDecl>(D)) {
  531 void ASTDeclWriter::VisitFunctionDecl(FunctionDecl *D) {
  564   case FunctionDecl::TK_NonTemplate:
  566   case FunctionDecl::TK_FunctionTemplate:
  569   case FunctionDecl::TK_MemberSpecialization: {
  576   case FunctionDecl::TK_FunctionTemplateSpecialization: {
  619   case FunctionDecl::TK_DependentFunctionTemplateSpecialization: {
 1722   T *First = D->getFirstDecl();
 1723   T *MostRecent = First->getMostRecentDecl();
 1724   T *DAsT = static_cast<T *>(D);
 2394 void ASTRecordWriter::AddFunctionDefinition(const FunctionDecl *FD) {
tools/clang/lib/StaticAnalyzer/Checkers/AnalyzerStatsChecker.cpp
   96   if (isa<FunctionDecl>(D) || isa<ObjCMethodDecl>(D)) {
tools/clang/lib/StaticAnalyzer/Checkers/BasicObjCFoundationChecks.cpp
  430   const FunctionDecl *FD = C.getCalleeDecl(CE);
  576        << cast<FunctionDecl>(Call.getDecl())->getName();
tools/clang/lib/StaticAnalyzer/Checkers/BuiltinFunctionChecker.cpp
   35   const auto *FD = dyn_cast_or_null<FunctionDecl>(Call.getDecl());
   35   const auto *FD = dyn_cast_or_null<FunctionDecl>(Call.getDecl());
tools/clang/lib/StaticAnalyzer/Checkers/CStringChecker.cpp
 2228   const FunctionDecl *FD = dyn_cast_or_null<FunctionDecl>(Call.getDecl());
 2228   const FunctionDecl *FD = dyn_cast_or_null<FunctionDecl>(Call.getDecl());
tools/clang/lib/StaticAnalyzer/Checkers/CStringSyntaxChecker.cpp
   56       const FunctionDecl *FD = CE->getDirectCallee();
  214   const FunctionDecl *FD = CE->getDirectCallee();
tools/clang/lib/StaticAnalyzer/Checkers/CallAndMessageChecker.cpp
  400   if (D && (isa<FunctionDecl>(D) || isa<BlockDecl>(D))) {
  413       if (isa<FunctionDecl>(D)) {
  441   const FunctionDecl *FD = dyn_cast_or_null<FunctionDecl>(D);
  441   const FunctionDecl *FD = dyn_cast_or_null<FunctionDecl>(D);
tools/clang/lib/StaticAnalyzer/Checkers/CastValueChecker.cpp
  220   const FunctionDecl *FD = Call.getDecl()->getAsFunction();
  412     const FunctionDecl *FD = Call.getDecl()->getAsFunction();
tools/clang/lib/StaticAnalyzer/Checkers/CheckSecuritySyntaxOnly.cpp
   93   bool checkCall_strCommon(const CallExpr *CE, const FunctionDecl *FD);
   99   void checkCall_bcmp(const CallExpr *CE, const FunctionDecl *FD);
  100   void checkCall_bcopy(const CallExpr *CE, const FunctionDecl *FD);
  101   void checkCall_bzero(const CallExpr *CE, const FunctionDecl *FD);
  102   void checkCall_gets(const CallExpr *CE, const FunctionDecl *FD);
  103   void checkCall_getpw(const CallExpr *CE, const FunctionDecl *FD);
  104   void checkCall_mktemp(const CallExpr *CE, const FunctionDecl *FD);
  105   void checkCall_mkstemp(const CallExpr *CE, const FunctionDecl *FD);
  106   void checkCall_strcpy(const CallExpr *CE, const FunctionDecl *FD);
  107   void checkCall_strcat(const CallExpr *CE, const FunctionDecl *FD);
  109                                              const FunctionDecl *FD);
  110   void checkCall_rand(const CallExpr *CE, const FunctionDecl *FD);
  111   void checkCall_random(const CallExpr *CE, const FunctionDecl *FD);
  112   void checkCall_vfork(const CallExpr *CE, const FunctionDecl *FD);
  129   const FunctionDecl *FD = CE->getDirectCallee();
  330 void WalkAST::checkCall_bcmp(const CallExpr *CE, const FunctionDecl *FD) {
  372 void WalkAST::checkCall_bcopy(const CallExpr *CE, const FunctionDecl *FD) {
  415 void WalkAST::checkCall_bzero(const CallExpr *CE, const FunctionDecl *FD) {
  457 void WalkAST::checkCall_gets(const CallExpr *CE, const FunctionDecl *FD) {
  493 void WalkAST::checkCall_getpw(const CallExpr *CE, const FunctionDecl *FD) {
  533 void WalkAST::checkCall_mktemp(const CallExpr *CE, const FunctionDecl *FD) {
  574 void WalkAST::checkCall_mkstemp(const CallExpr *CE, const FunctionDecl *FD) {
  659 void WalkAST::checkCall_strcpy(const CallExpr *CE, const FunctionDecl *FD) {
  698 void WalkAST::checkCall_strcat(const CallExpr *CE, const FunctionDecl *FD) {
  736                                                     const FunctionDecl *FD) {
  806 bool WalkAST::checkCall_strCommon(const CallExpr *CE, const FunctionDecl *FD) {
  837 void WalkAST::checkCall_rand(const CallExpr *CE, const FunctionDecl *FD) {
  880 void WalkAST::checkCall_random(const CallExpr *CE, const FunctionDecl *FD) {
  908 void WalkAST::checkCall_vfork(const CallExpr *CE, const FunctionDecl *FD) {
  935   const FunctionDecl *FD = CE->getDirectCallee();
tools/clang/lib/StaticAnalyzer/Checkers/CheckerDocumentation.cpp
   59                                        check::ASTDecl<FunctionDecl> > {
  324   void checkASTDecl(const FunctionDecl *D,
tools/clang/lib/StaticAnalyzer/Checkers/DeadStoresChecker.cpp
  517   if (const FunctionDecl *FD = dyn_cast<FunctionDecl>(D))
  517   if (const FunctionDecl *FD = dyn_cast<FunctionDecl>(D))
tools/clang/lib/StaticAnalyzer/Checkers/GenericTaintChecker.cpp
  139   bool checkTaintedBufferSize(const CallExpr *CE, const FunctionDecl *FDecl,
  196                             const FunctionDecl *FDecl, StringRef Name,
  341     const NameRuleMap &CustomPropagations, const FunctionDecl *FDecl,
  470   const FunctionDecl *FDecl = C.getCalleeDecl(CE);
  538   const FunctionDecl *FDecl = C.getCalleeDecl(CE);
  703   const FunctionDecl *FDecl = C.getCalleeDecl(CE);
  788                                                  const FunctionDecl *FDecl,
tools/clang/lib/StaticAnalyzer/Checkers/InnerPointerChecker.cpp
  154     const FunctionDecl *FD = FC->getDecl();
tools/clang/lib/StaticAnalyzer/Checkers/IteratorChecker.cpp
  276 bool isBeginCall(const FunctionDecl *Func);
  277 bool isEndCall(const FunctionDecl *Func);
  278 bool isAssignCall(const FunctionDecl *Func);
  279 bool isClearCall(const FunctionDecl *Func);
  280 bool isPushBackCall(const FunctionDecl *Func);
  281 bool isEmplaceBackCall(const FunctionDecl *Func);
  282 bool isPopBackCall(const FunctionDecl *Func);
  283 bool isPushFrontCall(const FunctionDecl *Func);
  284 bool isEmplaceFrontCall(const FunctionDecl *Func);
  285 bool isPopFrontCall(const FunctionDecl *Func);
  286 bool isInsertCall(const FunctionDecl *Func);
  287 bool isEraseCall(const FunctionDecl *Func);
  288 bool isEraseAfterCall(const FunctionDecl *Func);
  289 bool isEmplaceCall(const FunctionDecl *Func);
  371   const auto *Func = dyn_cast_or_null<FunctionDecl>(Call.getDecl());
  371   const auto *Func = dyn_cast_or_null<FunctionDecl>(Call.getDecl());
  561   const auto *Func = dyn_cast_or_null<FunctionDecl>(Call.getDecl());
  561   const auto *Func = dyn_cast_or_null<FunctionDecl>(Call.getDecl());
 1701 bool isBeginCall(const FunctionDecl *Func) {
 1708 bool isEndCall(const FunctionDecl *Func) {
 1715 bool isAssignCall(const FunctionDecl *Func) {
 1724 bool isClearCall(const FunctionDecl *Func) {
 1733 bool isPushBackCall(const FunctionDecl *Func) {
 1742 bool isEmplaceBackCall(const FunctionDecl *Func) {
 1751 bool isPopBackCall(const FunctionDecl *Func) {
 1760 bool isPushFrontCall(const FunctionDecl *Func) {
 1769 bool isEmplaceFrontCall(const FunctionDecl *Func) {
 1778 bool isPopFrontCall(const FunctionDecl *Func) {
 1787 bool isInsertCall(const FunctionDecl *Func) {
 1798 bool isEmplaceCall(const FunctionDecl *Func) {
 1809 bool isEraseCall(const FunctionDecl *Func) {
 1823 bool isEraseAfterCall(const FunctionDecl *Func) {
tools/clang/lib/StaticAnalyzer/Checkers/LocalizationChecker.cpp
  885   const auto *FD = dyn_cast_or_null<FunctionDecl>(Call.getDecl());
  885   const auto *FD = dyn_cast_or_null<FunctionDecl>(Call.getDecl());
 1282     if (const FunctionDecl *FD = CE->getDirectCallee()) {
tools/clang/lib/StaticAnalyzer/Checkers/MacOSKeychainAPIChecker.cpp
  254   const FunctionDecl *FD = C.getCalleeDecl(CE);
  405   const FunctionDecl *FD = C.getCalleeDecl(CE);
  636   const FunctionDecl *funDecl = CE->getDirectCallee();
tools/clang/lib/StaticAnalyzer/Checkers/MallocChecker.cpp
  310   bool isMemFunction(const FunctionDecl *FD, ASTContext &C) const;
  311   bool isCMemFunction(const FunctionDecl *FD, ASTContext &C,
  317   bool isStandardNewDelete(const FunctionDecl *FD, ASTContext &C) const;
  858 bool MemFunctionInfoTy::isMemFunction(const FunctionDecl *FD,
  875 bool MemFunctionInfoTy::isCMemFunction(const FunctionDecl *FD, ASTContext &C,
  945 bool MemFunctionInfoTy::isStandardNewDelete(const FunctionDecl *FD,
 1059   const FunctionDecl *FD = C.getCalleeDecl(CE);
 1637     const FunctionDecl *FD = C.getCalleeDecl(CE);
 1640       FD = dyn_cast<FunctionDecl>(CE->getCalleeDecl());
 1683     const FunctionDecl *FD = CE->getDirectCallee();
 2689     const FunctionDecl *FD = FC->getDecl();
 2813   if (const auto *FD = dyn_cast<FunctionDecl>(C.getStackFrame()->getDecl()))
 2813   if (const auto *FD = dyn_cast<FunctionDecl>(C.getStackFrame()->getDecl()))
 2991   const FunctionDecl *FD = cast<SimpleFunctionCall>(Call)->getDecl();
tools/clang/lib/StaticAnalyzer/Checkers/MallocOverflowSecurityChecker.cpp
  313           const FunctionDecl *FD = TheCall->getDirectCallee();
tools/clang/lib/StaticAnalyzer/Checkers/MallocSizeofChecker.cpp
   92     const FunctionDecl *FD = E->getDirectCallee();
  222         const FunctionDecl *Callee = i->AllocCall->getDirectCallee();
tools/clang/lib/StaticAnalyzer/Checkers/NSErrorChecker.cpp
   87     : public Checker< check::ASTDecl<FunctionDecl> > {
   93   void checkASTDecl(const FunctionDecl *D,
   98 void CFErrorFunctionChecker::checkASTDecl(const FunctionDecl *D,
tools/clang/lib/StaticAnalyzer/Checkers/NoReturnFunctionChecker.cpp
   44   if (const FunctionDecl *FD = dyn_cast_or_null<FunctionDecl>(CE.getDecl()))
   44   if (const FunctionDecl *FD = dyn_cast_or_null<FunctionDecl>(CE.getDecl()))
tools/clang/lib/StaticAnalyzer/Checkers/NullabilityChecker.cpp
  417   else if (const auto *FD = dyn_cast<FunctionDecl>(D))
  417   else if (const auto *FD = dyn_cast<FunctionDecl>(D))
  555   } else if (auto *FD = dyn_cast<FunctionDecl>(D)) {
tools/clang/lib/StaticAnalyzer/Checkers/ObjCContainersASTChecker.cpp
   85   const FunctionDecl *FD = CE->getDirectCallee();
tools/clang/lib/StaticAnalyzer/Checkers/ObjCUnusedIVarsChecker.cpp
   99     if (const auto *FD = dyn_cast<FunctionDecl>(I)) {
   99     if (const auto *FD = dyn_cast<FunctionDecl>(I)) {
tools/clang/lib/StaticAnalyzer/Checkers/PointerArithChecker.cpp
   49   AllocKind getKindOfNewOp(const CXXNewExpr *NE, const FunctionDecl *FD) const;
   91                                               const FunctionDecl *FD) const {
  220   const FunctionDecl *FD = C.getCalleeDecl(CE);
  242   const FunctionDecl *FD = NE->getOperatorNew();
tools/clang/lib/StaticAnalyzer/Checkers/RetainCountChecker/RetainCountChecker.cpp
  892   const auto *FD = dyn_cast_or_null<FunctionDecl>(Call.getDecl());
  892   const auto *FD = dyn_cast_or_null<FunctionDecl>(Call.getDecl());
 1056   } else if (const FunctionDecl *FD = dyn_cast<FunctionDecl>(CD)) {
 1056   } else if (const FunctionDecl *FD = dyn_cast<FunctionDecl>(CD)) {
tools/clang/lib/StaticAnalyzer/Checkers/RetainCountChecker/RetainCountDiagnostics.cpp
  220     const FunctionDecl *FD = X.getAsFunctionDecl();
  224       FD = dyn_cast<FunctionDecl>(CE->getCalleeDecl());
  787         const FunctionDecl *FD = cast<FunctionDecl>(D);
  787         const FunctionDecl *FD = cast<FunctionDecl>(D);
tools/clang/lib/StaticAnalyzer/Checkers/StdLibraryFunctionsChecker.cpp
  230   Optional<FunctionSummaryTy> findFunctionSummary(const FunctionDecl *FD,
  341   const FunctionDecl *FD = dyn_cast_or_null<FunctionDecl>(Call.getDecl());
  341   const FunctionDecl *FD = dyn_cast_or_null<FunctionDecl>(Call.getDecl());
  372   const auto *FD = dyn_cast_or_null<FunctionDecl>(Call.getDecl());
  372   const auto *FD = dyn_cast_or_null<FunctionDecl>(Call.getDecl());
  432 StdLibraryFunctionsChecker::findFunctionSummary(const FunctionDecl *FD,
tools/clang/lib/StaticAnalyzer/Checkers/StreamChecker.cpp
  108   const auto *FD = dyn_cast_or_null<FunctionDecl>(Call.getDecl());
  108   const auto *FD = dyn_cast_or_null<FunctionDecl>(Call.getDecl());
tools/clang/lib/StaticAnalyzer/Checkers/UndefResultChecker.cpp
   82     if (const FunctionDecl *EnclosingFunctionDecl =
   83         dyn_cast<FunctionDecl>(C.getStackFrame()->getDecl()))
tools/clang/lib/StaticAnalyzer/Checkers/UndefinedAssignmentChecker.cpp
   43   if (const FunctionDecl *EnclosingFunctionDecl =
   44       dyn_cast<FunctionDecl>(C.getStackFrame()->getDecl()))
tools/clang/lib/StaticAnalyzer/Checkers/UnixAPIChecker.cpp
  105   const FunctionDecl *FD = C.getCalleeDecl(CE);
  461   const FunctionDecl *FD = C.getCalleeDecl(CE);
tools/clang/lib/StaticAnalyzer/Checkers/UnreachableCodeChecker.cpp
   90   if (const FunctionDecl *FD = dyn_cast<FunctionDecl>(D))
   90   if (const FunctionDecl *FD = dyn_cast<FunctionDecl>(D))
tools/clang/lib/StaticAnalyzer/Checkers/VforkChecker.cpp
   83   auto FD = dyn_cast_or_null<FunctionDecl>(D);
tools/clang/lib/StaticAnalyzer/Core/BugReporter.cpp
  601     else if (isa<FunctionDecl>(D))
 3048   if (const auto FD = dyn_cast<FunctionDecl>(Signature)) {
tools/clang/lib/StaticAnalyzer/Core/BugReporterVisitors.cpp
  472   if (const auto *FD = dyn_cast_or_null<FunctionDecl>(RD.getDecl()))
  472   if (const auto *FD = dyn_cast_or_null<FunctionDecl>(RD.getDecl()))
tools/clang/lib/StaticAnalyzer/Core/CallEvent.cpp
  162   const auto *FD = dyn_cast_or_null<FunctionDecl>(getDecl());
  162   const auto *FD = dyn_cast_or_null<FunctionDecl>(getDecl());
  239   if (const auto *FD = dyn_cast<FunctionDecl>(D))
  239   if (const auto *FD = dyn_cast<FunctionDecl>(D))
  365   const FunctionDecl *FD = dyn_cast_or_null<FunctionDecl>(getDecl());
  365   const FunctionDecl *FD = dyn_cast_or_null<FunctionDecl>(getDecl());
  464   if (const auto *FD = dyn_cast<FunctionDecl>(D))
  464   if (const auto *FD = dyn_cast<FunctionDecl>(D))
  494   if (const auto *FD = dyn_cast<FunctionDecl>(D))
  494   if (const auto *FD = dyn_cast<FunctionDecl>(D))
  539   const FunctionDecl *D = getDecl();
  546   const FunctionDecl *FD = getDecl();
  576   llvm::Expected<const FunctionDecl *> CTUDeclOrError =
  594   const auto *D = cast<FunctionDecl>(CalleeCtx->getDecl());
  594   const auto *D = cast<FunctionDecl>(CalleeCtx->getDecl());
  604   const FunctionDecl *D = getDecl();
  661 const FunctionDecl *SimpleFunctionCall::getDecl() const {
  662   const FunctionDecl *D = getOriginExpr()->getDirectCallee();
  669 const FunctionDecl *CXXInstanceCall::getDecl() const {
  674   const FunctionDecl *D = CE->getDirectCallee();
  772   const FunctionDecl *Definition;
 1365     const FunctionDecl *DirectCallee = OpCE->getDirectCallee();
tools/clang/lib/StaticAnalyzer/Core/CheckerContext.cpp
   21 const FunctionDecl *CheckerContext::getCalleeDecl(const CallExpr *CE) const {
   27 StringRef CheckerContext::getCalleeName(const FunctionDecl *FunDecl) const {
   44 bool CheckerContext::isCLibraryFunction(const FunctionDecl *FD,
tools/clang/lib/StaticAnalyzer/Core/ExprEngine.cpp
  240     if (const auto *FD = dyn_cast<FunctionDecl>(D)) {
  240     if (const auto *FD = dyn_cast<FunctionDecl>(D)) {
 2481   if (const auto *FD = dyn_cast<FunctionDecl>(D)) {
 2481   if (const auto *FD = dyn_cast<FunctionDecl>(D)) {
tools/clang/lib/StaticAnalyzer/Core/ExprEngineCXX.cpp
  716     if (const FunctionDecl *FD = CNE->getOperatorNew()) {
  747   FunctionDecl *FD = CNE->getOperatorNew();
tools/clang/lib/StaticAnalyzer/Core/ExprEngineCallAndReturn.cpp
  834                               const FunctionDecl *FD) {
  842 static bool isCXXSharedPtrDtor(const FunctionDecl *FD) {
  869     if (const FunctionDecl *FD = dyn_cast<FunctionDecl>(CalleeADC->getDecl())) {
  869     if (const FunctionDecl *FD = dyn_cast<FunctionDecl>(CalleeADC->getDecl())) {
  872         if (FD->getTemplatedKind() != FunctionDecl::TK_NonTemplate)
tools/clang/lib/StaticAnalyzer/Core/IssueHash.cpp
   30 static std::string GetSignature(const FunctionDecl *Target) {
   38   if (const FunctionDecl *InstantiatedFrom =
  106       DeclName = GetSignature(dyn_cast_or_null<FunctionDecl>(ND));
tools/clang/lib/StaticAnalyzer/Core/MemRegion.cpp
  899         if (isa<FunctionDecl>(STCD) || isa<ObjCMethodDecl>(STCD))
tools/clang/lib/StaticAnalyzer/Core/RegionStore.cpp
  408     if (const auto *FD = dyn_cast<FunctionDecl>(InitLoc->getDecl()))
  408     if (const auto *FD = dyn_cast<FunctionDecl>(InitLoc->getDecl()))
tools/clang/lib/StaticAnalyzer/Core/SValBuilder.cpp
  255 DefinedSVal SValBuilder::getFunctionPointer(const FunctionDecl *func) {
tools/clang/lib/StaticAnalyzer/Core/SVals.cpp
   63 const FunctionDecl *SVal::getAsFunctionDecl() const {
   67       if (const auto *FD = dyn_cast<FunctionDecl>(CTR->getDecl()))
   67       if (const auto *FD = dyn_cast<FunctionDecl>(CTR->getDecl()))
tools/clang/lib/StaticAnalyzer/Core/SimpleSValBuilder.cpp
  153           if (const FunctionDecl *FD = dyn_cast<FunctionDecl>(FTR->getDecl()))
  153           if (const FunctionDecl *FD = dyn_cast<FunctionDecl>(FTR->getDecl()))
tools/clang/lib/StaticAnalyzer/Frontend/AnalysisConsumer.cpp
  419   bool VisitFunctionDecl(FunctionDecl *FD) {
  684   if (const FunctionDecl *FD = dyn_cast<FunctionDecl>(D)) {
  684   if (const FunctionDecl *FD = dyn_cast<FunctionDecl>(D)) {
tools/clang/lib/StaticAnalyzer/Frontend/ModelConsumer.cpp
   35     const FunctionDecl *func = llvm::dyn_cast<FunctionDecl>(*I);
   35     const FunctionDecl *func = llvm::dyn_cast<FunctionDecl>(*I);
tools/clang/lib/StaticAnalyzer/Frontend/ModelInjector.cpp
   30 Stmt *ModelInjector::getBody(const FunctionDecl *D) {
tools/clang/lib/StaticAnalyzer/Frontend/ModelInjector.h
   41   Stmt *getBody(const FunctionDecl *D) override;
tools/clang/lib/Tooling/Refactoring/ASTSelection.cpp
  416   return isa<FunctionDecl>(D) || isa<ObjCMethodDecl>(D);
tools/clang/lib/Tooling/Refactoring/Rename/USRFindingAction.cpp
  155     if (const auto *FT = MethodDecl->getInstantiatedFromMemberFunction())
tools/clang/tools/clang-extdef-mapping/ClangExtDefMapGen.cpp
   62   if (const auto *FD = dyn_cast<FunctionDecl>(D)) {
   62   if (const auto *FD = dyn_cast<FunctionDecl>(D)) {
tools/clang/tools/extra/clang-change-namespace/ChangeNamespace.cpp
  624     const auto *Func = Result.Nodes.getNodeAs<FunctionDecl>("func_decl");
  624     const auto *Func = Result.Nodes.getNodeAs<FunctionDecl>("func_decl");
  636     const FunctionDecl *Func = Call->getDirectCallee();
tools/clang/tools/extra/clang-doc/Mapper.cpp
   26 template <typename T> bool MapASTVisitor::mapDecl(const T *D) {
   69 bool MapASTVisitor::VisitFunctionDecl(const FunctionDecl *D) {
tools/clang/tools/extra/clang-doc/Mapper.h
   41   bool VisitFunctionDecl(const FunctionDecl *D);
tools/clang/tools/extra/clang-doc/Serialize.cpp
  307 static void parseParameters(FunctionInfo &I, const FunctionDecl *D) {
  374     else if (const auto *N = dyn_cast<FunctionDecl>(DC))
  374     else if (const auto *N = dyn_cast<FunctionDecl>(DC))
  392 static void populateInfo(Info &I, const T *D, const FullComment *C,
  404 static void populateSymbolInfo(SymbolInfo &I, const T *D, const FullComment *C,
  415 static void populateFunctionInfo(FunctionInfo &I, const FunctionDecl *D,
  562 emitInfo(const FunctionDecl *D, const FullComment *FC, int LineNumber,
tools/clang/tools/extra/clang-doc/Serialize.h
   49 emitInfo(const FunctionDecl *D, const FullComment *FC, int LineNumber,
tools/clang/tools/extra/clang-include-fixer/find-all-symbols/FindAllSymbols.cpp
   78   } else if (llvm::isa<FunctionDecl>(ND)) {
tools/clang/tools/extra/clang-move/HelperDeclRefGraph.cpp
   96     else if (const auto *FD = dyn_cast<FunctionDecl>(DC))
   96     else if (const auto *FD = dyn_cast<FunctionDecl>(DC))
tools/clang/tools/extra/clang-move/Move.cpp
  162     const auto *FD = Result.Nodes.getNodeAs<FunctionDecl>("function");
  162     const auto *FD = Result.Nodes.getNodeAs<FunctionDecl>("function");
tools/clang/tools/extra/clang-tidy/abseil/DurationAdditionCheck.cpp
   42       Result.Nodes.getNodeAs<clang::FunctionDecl>("function_decl")->getName());
tools/clang/tools/extra/clang-tidy/abseil/DurationComparisonCheck.cpp
   34       Result.Nodes.getNodeAs<FunctionDecl>("function_decl")->getName());
tools/clang/tools/extra/clang-tidy/abseil/DurationConversionCastCheck.cpp
   43   const auto *FuncDecl = Result.Nodes.getNodeAs<FunctionDecl>("func_decl");
   43   const auto *FuncDecl = Result.Nodes.getNodeAs<FunctionDecl>("func_decl");
tools/clang/tools/extra/clang-tidy/abseil/DurationFactoryScaleCheck.cpp
  161   const auto *CallDecl = Result.Nodes.getNodeAs<FunctionDecl>("call_decl");
  161   const auto *CallDecl = Result.Nodes.getNodeAs<FunctionDecl>("call_decl");
tools/clang/tools/extra/clang-tidy/abseil/DurationSubtractionCheck.cpp
   34   const auto *FuncDecl = Result.Nodes.getNodeAs<FunctionDecl>("function_decl");
   34   const auto *FuncDecl = Result.Nodes.getNodeAs<FunctionDecl>("function_decl");
tools/clang/tools/extra/clang-tidy/abseil/TimeComparisonCheck.cpp
   35       Result.Nodes.getNodeAs<FunctionDecl>("function_decl")->getName());
tools/clang/tools/extra/clang-tidy/abseil/TimeSubtractionCheck.cpp
  132       Result.Nodes.getNodeAs<FunctionDecl>("func_decl")->getNameAsString();
tools/clang/tools/extra/clang-tidy/android/CloexecCheck.cpp
   44     MatchFinder *Finder, internal::Matcher<FunctionDecl> Function) {
   57   const auto *FD = Result.Nodes.getNodeAs<FunctionDecl>(FuncDeclBindingStr);
   57   const auto *FD = Result.Nodes.getNodeAs<FunctionDecl>(FuncDeclBindingStr);
   85   const auto *FD = Result.Nodes.getNodeAs<FunctionDecl>(FuncDeclBindingStr);
   85   const auto *FD = Result.Nodes.getNodeAs<FunctionDecl>(FuncDeclBindingStr);
tools/clang/tools/extra/clang-tidy/android/CloexecCheck.h
   36                        ast_matchers::internal::Matcher<FunctionDecl> Function);
tools/clang/tools/extra/clang-tidy/android/CloexecOpenCheck.cpp
   35   const auto *FD = Result.Nodes.getNodeAs<FunctionDecl>(FuncDeclBindingStr);
   35   const auto *FD = Result.Nodes.getNodeAs<FunctionDecl>(FuncDeclBindingStr);
tools/clang/tools/extra/clang-tidy/bugprone/ArgumentCommentCheck.cpp
  213 static const FunctionDecl *resolveMocks(const FunctionDecl *Func) {
  213 static const FunctionDecl *resolveMocks(const FunctionDecl *Func) {
  245                                          const FunctionDecl *OriginalCallee,
  248   const FunctionDecl *Callee = resolveMocks(OriginalCallee);
  332     const FunctionDecl *Callee = Call->getDirectCallee();
tools/clang/tools/extra/clang-tidy/bugprone/ArgumentCommentCheck.h
   54   void checkCallArgs(ASTContext *Ctx, const FunctionDecl *Callee,
tools/clang/tools/extra/clang-tidy/bugprone/AssertSideEffectCheck.cpp
   56     if (const auto *FuncDecl = CExpr->getDirectCallee()) {
tools/clang/tools/extra/clang-tidy/bugprone/ExceptionEscapeCheck.cpp
   69   const auto *MatchedDecl = Result.Nodes.getNodeAs<FunctionDecl>("thrower");
   69   const auto *MatchedDecl = Result.Nodes.getNodeAs<FunctionDecl>("thrower");
tools/clang/tools/extra/clang-tidy/bugprone/ForwardingReferenceOverloadCheck.cpp
   96   const auto *FuncForParam = dyn_cast<FunctionDecl>(ParmVar->getDeclContext());
   96   const auto *FuncForParam = dyn_cast<FunctionDecl>(ParmVar->getDeclContext());
tools/clang/tools/extra/clang-tidy/bugprone/InfiniteLoopCheck.cpp
   70 static bool hasPtrOrReferenceInFunc(const FunctionDecl *Func,
   92 static bool isVarThatIsPossiblyChanged(const FunctionDecl *Func,
  119 static bool isAtLeastOneCondVarChanged(const FunctionDecl *Func,
  171   const auto *Func = Result.Nodes.getNodeAs<FunctionDecl>("func");
  171   const auto *Func = Result.Nodes.getNodeAs<FunctionDecl>("func");
tools/clang/tools/extra/clang-tidy/bugprone/MoveForwardingReferenceCheck.cpp
  106   const auto *FuncForParam = dyn_cast<FunctionDecl>(ParmVar->getDeclContext());
  106   const auto *FuncForParam = dyn_cast<FunctionDecl>(ParmVar->getDeclContext());
tools/clang/tools/extra/clang-tidy/bugprone/NotNullTerminatedResultCheck.cpp
  107       if (const FunctionDecl *FD = D->getAsFunction())
tools/clang/tools/extra/clang-tidy/bugprone/SuspiciousStringCompareCheck.cpp
  170   const auto *Decl = Result.Nodes.getNodeAs<FunctionDecl>("decl");
  170   const auto *Decl = Result.Nodes.getNodeAs<FunctionDecl>("decl");
tools/clang/tools/extra/clang-tidy/bugprone/UnusedReturnValueCheck.cpp
   28   FunctionDecl *InstantiatedFrom = Node.getInstantiatedFromMemberFunction();
tools/clang/tools/extra/clang-tidy/bugprone/UseAfterMoveCheck.cpp
  408   const auto *ContainingFunc =
  409       Result.Nodes.getNodeAs<FunctionDecl>("containing-func");
tools/clang/tools/extra/clang-tidy/cert/CommandProcessorCheck.cpp
   36   const auto *Fn = Result.Nodes.getNodeAs<FunctionDecl>("func");
   36   const auto *Fn = Result.Nodes.getNodeAs<FunctionDecl>("func");
tools/clang/tools/extra/clang-tidy/cert/PostfixOperatorCheck.cpp
   32   const auto *FuncDecl = Result.Nodes.getNodeAs<FunctionDecl>("decl");
   32   const auto *FuncDecl = Result.Nodes.getNodeAs<FunctionDecl>("decl");
tools/clang/tools/extra/clang-tidy/cert/StaticObjectExceptionCheck.cpp
   42   const auto *Func = Result.Nodes.getNodeAs<FunctionDecl>("func");
   42   const auto *Func = Result.Nodes.getNodeAs<FunctionDecl>("func");
tools/clang/tools/extra/clang-tidy/cert/StrToNumCheck.cpp
   51 ConversionKind ClassifyConversionFunc(const FunctionDecl *FD) {
  182   const FunctionDecl *FuncDecl = nullptr;
  185   if (const auto *ConverterFunc =
  186           Result.Nodes.getNodeAs<FunctionDecl>("converter")) {
  190   } else if (const auto *FFD =
  191                  Result.Nodes.getNodeAs<FunctionDecl>("formatted")) {
tools/clang/tools/extra/clang-tidy/cert/VariadicFunctionDefCheck.cpp
   32   const auto *FD = Result.Nodes.getNodeAs<FunctionDecl>("func");
   32   const auto *FD = Result.Nodes.getNodeAs<FunctionDecl>("func");
tools/clang/tools/extra/clang-tidy/cppcoreguidelines/NoMallocCheck.cpp
   26 Matcher<FunctionDecl> hasAnyListedName(const std::string &FunctionNames) {
tools/clang/tools/extra/clang-tidy/cppcoreguidelines/OwningMemoryCheck.cpp
   27 Matcher<FunctionDecl> hasAnyListedName(const std::string &FunctionNames) {
  348   const auto *Function = Nodes.getNodeAs<FunctionDecl>("function_decl");
  348   const auto *Function = Nodes.getNodeAs<FunctionDecl>("function_decl");
tools/clang/tools/extra/clang-tidy/cppcoreguidelines/ProTypeVarargCheck.cpp
   32   const auto *FDecl = dyn_cast<FunctionDecl>(C->getCalleeDecl());
   32   const auto *FDecl = dyn_cast<FunctionDecl>(C->getCalleeDecl());
tools/clang/tools/extra/clang-tidy/fuchsia/OverloadedOperatorCheck.cpp
   36   const auto *D = Result.Nodes.getNodeAs<FunctionDecl>("decl");
   36   const auto *D = Result.Nodes.getNodeAs<FunctionDecl>("decl");
tools/clang/tools/extra/clang-tidy/google/FunctionNamingCheck.cpp
   50 FixItHint generateFixItHint(const FunctionDecl *Decl) {
  114   const auto *MatchedDecl = Result.Nodes.getNodeAs<FunctionDecl>("function");
  114   const auto *MatchedDecl = Result.Nodes.getNodeAs<FunctionDecl>("function");
tools/clang/tools/extra/clang-tidy/google/NonConstReferences.cpp
   49   const auto *Function =
   50       dyn_cast_or_null<FunctionDecl>(Parameter->getParentFunctionOrMethod());
tools/clang/tools/extra/clang-tidy/google/OverloadedUnaryAndCheck.cpp
   42   const auto *Decl = Result.Nodes.getNodeAs<FunctionDecl>("overload");
   42   const auto *Decl = Result.Nodes.getNodeAs<FunctionDecl>("overload");
tools/clang/tools/extra/clang-tidy/misc/DefinitionsInHeadersCheck.cpp
  102   if (const auto *FD = dyn_cast<FunctionDecl>(ND)) {
  102   if (const auto *FD = dyn_cast<FunctionDecl>(ND)) {
  107     if (FD->getTemplatedKind() == FunctionDecl::TK_FunctionTemplate)
tools/clang/tools/extra/clang-tidy/misc/NewDeleteOverloadsCheck.cpp
   64 OverloadedOperatorKind getCorrespondingOverload(const FunctionDecl *FD) {
   96 bool areCorrespondingOverloads(const FunctionDecl *LHS,
   97                                const FunctionDecl *RHS) {
  157   const auto *FD = Result.Nodes.getNodeAs<FunctionDecl>("func");
  157   const auto *FD = Result.Nodes.getNodeAs<FunctionDecl>("func");
  169   SmallVector<const FunctionDecl *, 4> Diagnose;
  174     for (const auto *Overload : RP.second) {
  204   for (const auto *FD : Diagnose)
tools/clang/tools/extra/clang-tidy/misc/NewDeleteOverloadsCheck.h
   22            llvm::SmallVector<const clang::FunctionDecl *, 4>>
tools/clang/tools/extra/clang-tidy/misc/RedundantExpressionCheck.cpp
  473 canOverloadedOperatorArgsBeModified(const FunctionDecl *OperatorDecl,
  516     const auto *OverloadedFunctionDecl = dyn_cast_or_null<FunctionDecl>(OverloadedOperatorExpr->getCalleeDecl());
  516     const auto *OverloadedFunctionDecl = dyn_cast_or_null<FunctionDecl>(OverloadedOperatorExpr->getCalleeDecl());
 1011     const auto *OverloadedFunctionDecl = dyn_cast_or_null<FunctionDecl>(Call->getCalleeDecl());
 1011     const auto *OverloadedFunctionDecl = dyn_cast_or_null<FunctionDecl>(Call->getCalleeDecl());
tools/clang/tools/extra/clang-tidy/misc/UnusedParametersCheck.cpp
   24 bool isOverrideMethod(const FunctionDecl *Function) {
   57                                  const FunctionDecl *Function, unsigned Index) {
   79   getFnCalls(const FunctionDecl *Fn) {
   84   getOtherRefs(const FunctionDecl *Fn) {
   91     if (const auto *Fn = dyn_cast<FunctionDecl>(DeclRef->getDecl())) {
   91     if (const auto *Fn = dyn_cast<FunctionDecl>(DeclRef->getDecl())) {
   99     if (const auto *Fn =
  100             dyn_cast_or_null<FunctionDecl>(Call->getCalleeDecl())) {
  117   std::unordered_map<const FunctionDecl *, IndexEntry> Index;
  132     const MatchFinder::MatchResult &Result, const FunctionDecl *Function,
  160   for (const FunctionDecl *FD : Function->redecls())
  171   const auto *Function = Result.Nodes.getNodeAs<FunctionDecl>("function");
  171   const auto *Function = Result.Nodes.getNodeAs<FunctionDecl>("function");
tools/clang/tools/extra/clang-tidy/misc/UnusedParametersCheck.h
   35                         const FunctionDecl *Function, unsigned ParamIndex);
tools/clang/tools/extra/clang-tidy/misc/UnusedUsingDeclsCheck.cpp
   48          isa<FunctionDecl>(TargetDecl) || isa<VarDecl>(TargetDecl) ||
   87     if (isa<FunctionDecl>(Using->getDeclContext()))
  110     if (const auto *FD = dyn_cast<FunctionDecl>(Used)) {
  110     if (const auto *FD = dyn_cast<FunctionDecl>(Used)) {
  115     } else if (const auto *FD = dyn_cast<FunctionDecl>(Used)) {
  115     } else if (const auto *FD = dyn_cast<FunctionDecl>(Used)) {
tools/clang/tools/extra/clang-tidy/modernize/AvoidBindCheck.cpp
  151   const auto *F = Result.Nodes.getNodeAs<FunctionDecl>("f");
  151   const auto *F = Result.Nodes.getNodeAs<FunctionDecl>("f");
tools/clang/tools/extra/clang-tidy/modernize/AvoidCArraysCheck.cpp
   35   const auto *FD = llvm::dyn_cast<clang::FunctionDecl>(DC);
   35   const auto *FD = llvm::dyn_cast<clang::FunctionDecl>(DC);
tools/clang/tools/extra/clang-tidy/modernize/PassByValueCheck.cpp
  115   for (const FunctionDecl *Redecl : Ctor->redecls())
tools/clang/tools/extra/clang-tidy/modernize/RedundantVoidArgCheck.cpp
   78   if (const auto *Function = Nodes.getNodeAs<FunctionDecl>(FunctionId)) {
   78   if (const auto *Function = Nodes.getNodeAs<FunctionDecl>(FunctionId)) {
  102     const MatchFinder::MatchResult &Result, const FunctionDecl *Function) {
tools/clang/tools/extra/clang-tidy/modernize/RedundantVoidArgCheck.h
   42                            const FunctionDecl *Function);
tools/clang/tools/extra/clang-tidy/modernize/ReturnBracedInitListCheck.cpp
   47   const auto *MatchedFunctionDecl = Result.Nodes.getNodeAs<FunctionDecl>("fn");
   47   const auto *MatchedFunctionDecl = Result.Nodes.getNodeAs<FunctionDecl>("fn");
tools/clang/tools/extra/clang-tidy/modernize/UseNoexceptCheck.cpp
   66   if (const auto *FuncDecl = Result.Nodes.getNodeAs<FunctionDecl>("funcDecl")) {
   66   if (const auto *FuncDecl = Result.Nodes.getNodeAs<FunctionDecl>("funcDecl")) {
   67     DtorOrOperatorDel = Result.Nodes.getNodeAs<FunctionDecl>("del-dtor");
tools/clang/tools/extra/clang-tidy/modernize/UseOverrideCheck.cpp
   86   const auto *Method = Result.Nodes.getNodeAs<FunctionDecl>("method");
   86   const auto *Method = Result.Nodes.getNodeAs<FunctionDecl>("method");
tools/clang/tools/extra/clang-tidy/modernize/UseTrailingReturnTypeCheck.cpp
   26   UnqualNameVisitor(const FunctionDecl &F) : F(F) {}
   97   const FunctionDecl &F;
  114     const FunctionDecl &F, const FunctionTypeLoc &FTL, const ASTContext &Ctx,
  166 classifyToken(const FunctionDecl &F, Preprocessor &PP, Token Tok) {
  261     const FunctionDecl &F, const ASTContext &Ctx, const SourceManager &SM,
  319     const FunctionDecl &F, const FriendDecl *Fr, const ASTContext &Ctx,
  393   const auto *F = Result.Nodes.getNodeAs<FunctionDecl>("Func");
  393   const auto *F = Result.Nodes.getNodeAs<FunctionDecl>("Func");
tools/clang/tools/extra/clang-tidy/modernize/UseTrailingReturnTypeCheck.h
   42       const FunctionDecl &F, const FunctionTypeLoc &FTL, const ASTContext &Ctx,
   45   classifyTokensBeforeFunctionName(const FunctionDecl &F, const ASTContext &Ctx,
   48   SourceRange findReturnTypeAndCVSourceRange(const FunctionDecl &F,
   53                       SourceRange ReturnTypeCVRange, const FunctionDecl &F,
tools/clang/tools/extra/clang-tidy/performance/FasterStringFindCheck.cpp
   86   const auto *FindFunc = Result.Nodes.getNodeAs<FunctionDecl>("func");
   86   const auto *FindFunc = Result.Nodes.getNodeAs<FunctionDecl>("func");
tools/clang/tools/extra/clang-tidy/performance/InefficientAlgorithmCheck.cpp
  107   const auto *AlgDecl = AlgCall->getDirectCallee();
tools/clang/tools/extra/clang-tidy/performance/UnnecessaryValueParamCheck.cpp
   34 bool isReferencedOutsideOfCallExpr(const FunctionDecl &Function,
   53 bool isExplicitTemplateSpecialization(const FunctionDecl &Function) {
   59     if (Method->getTemplatedKind() == FunctionDecl::TK_MemberSpecialization &&
   97   const auto *Function = Result.Nodes.getNodeAs<FunctionDecl>("functionDecl");
   97   const auto *Function = Result.Nodes.getNodeAs<FunctionDecl>("functionDecl");
  157   for (const auto *FunctionDecl = Function; FunctionDecl != nullptr;
tools/clang/tools/extra/clang-tidy/performance/UnnecessaryValueParamCheck.h
   39   llvm::DenseMap<const FunctionDecl *, FunctionParmMutationAnalyzer>
tools/clang/tools/extra/clang-tidy/portability/SIMDIntrinsicsCheck.cpp
  113   const FunctionDecl *Callee = Call->getDirectCallee();
tools/clang/tools/extra/clang-tidy/readability/AvoidConstParamsInDecls.cpp
   78   const auto *Func = Result.Nodes.getNodeAs<FunctionDecl>("func");
   78   const auto *Func = Result.Nodes.getNodeAs<FunctionDecl>("func");
tools/clang/tools/extra/clang-tidy/readability/ConstReturnTypeCheck.cpp
   28 findConstToRemove(const FunctionDecl *Def,
   70 static CheckResult checkDef(const clang::FunctionDecl *Def,
   84   for (const FunctionDecl *Decl = Def->getPreviousDecl(); Decl != nullptr;
  105   const auto *Def = Result.Nodes.getNodeAs<FunctionDecl>("func");
  105   const auto *Def = Result.Nodes.getNodeAs<FunctionDecl>("func");
tools/clang/tools/extra/clang-tidy/readability/ContainerSizeEmptyCheck.cpp
  223   const auto *Empty = Result.Nodes.getNodeAs<FunctionDecl>("empty");
  223   const auto *Empty = Result.Nodes.getNodeAs<FunctionDecl>("empty");
tools/clang/tools/extra/clang-tidy/readability/ConvertMemberFunctionsToStatic.cpp
   36   return Node.getTemplatedKind() != FunctionDecl::TK_NonTemplate;
tools/clang/tools/extra/clang-tidy/readability/FunctionSizeCheck.cpp
  156   const auto *Func = Result.Nodes.getNodeAs<FunctionDecl>("func");
  156   const auto *Func = Result.Nodes.getNodeAs<FunctionDecl>("func");
tools/clang/tools/extra/clang-tidy/readability/IdentifierNamingCheck.cpp
  624   if (const auto *Decl = dyn_cast<FunctionDecl>(D)) {
  624   if (const auto *Decl = dyn_cast<FunctionDecl>(D)) {
  824     if (const auto *Value = Result.Nodes.getNodeAs<FunctionDecl>("decl")) {
  824     if (const auto *Value = Result.Nodes.getNodeAs<FunctionDecl>("decl")) {
tools/clang/tools/extra/clang-tidy/readability/InconsistentDeclarationParameterNameCheck.cpp
   64     const FunctionDecl *ParameterSourceDeclaration,
   65     const ParmVarDecl *SourceParam, const FunctionDecl *OriginalDeclaration) {
   85       FunctionDecl::TK_FunctionTemplateSpecialization)
  146   for (const FunctionDecl *OtherDeclaration : OriginalDeclaration->redecls()) {
  171 const FunctionDecl *
  172 getParameterSourceDeclaration(const FunctionDecl *OriginalDeclaration) {
  186   for (const FunctionDecl *OtherDeclaration : OriginalDeclaration->redecls()) {
  243     const FunctionDecl *ParameterSourceDeclaration,
  244     const FunctionDecl *OriginalDeclaration,
  269     const FunctionDecl *ParameterSourceDeclaration,
  270     const FunctionDecl *OriginalDeclaration,
  307   const auto *OriginalDeclaration =
  308       Result.Nodes.getNodeAs<FunctionDecl>("functionDecl");
  313   const FunctionDecl *ParameterSourceDeclaration =
  333       FunctionDecl::TK_FunctionTemplateSpecialization) {
  351     const FunctionDecl *OriginalDeclaration) {
  352   for (const FunctionDecl *Redecl : OriginalDeclaration->redecls()) {
tools/clang/tools/extra/clang-tidy/readability/InconsistentDeclarationParameterNameCheck.h
   38   void markRedeclarationsAsVisited(const FunctionDecl *FunctionDeclaration);
   40   llvm::DenseSet<const FunctionDecl *> VisitedDeclarations;
tools/clang/tools/extra/clang-tidy/readability/NamedParameterCheck.cpp
   26   const auto *Function = Result.Nodes.getNodeAs<FunctionDecl>("decl");
   26   const auto *Function = Result.Nodes.getNodeAs<FunctionDecl>("decl");
   27   SmallVector<std::pair<const FunctionDecl *, unsigned>, 4> UnnamedParams;
   35   const FunctionDecl *Definition = nullptr;
tools/clang/tools/extra/clang-tidy/readability/NonConstParameterCheck.cpp
   70       if (const FunctionDecl *FD = CE->getDirectCallee()) {
  142         dyn_cast_or_null<const FunctionDecl>(Par->getParentFunctionOrMethod());
  146     for (FunctionDecl *FnDecl : Function->redecls())
tools/clang/tools/extra/clang-tidy/utils/ASTUtils.cpp
   20 const FunctionDecl *getSurroundingFunction(ASTContext &Context,
   22   return selectFirst<const FunctionDecl>(
tools/clang/tools/extra/clang-tidy/utils/ASTUtils.h
   18 const FunctionDecl *getSurroundingFunction(ASTContext &Context,
tools/clang/tools/extra/clang-tidy/utils/ExceptionAnalyzer.cpp
  113     const FunctionDecl *Func,
  114     llvm::SmallSet<const FunctionDecl *, 32> &CallStack) {
  138     llvm::SmallSet<const FunctionDecl *, 32> &CallStack) {
  194     if (const FunctionDecl *Func = Call->getDirectCallee()) {
  208 ExceptionAnalyzer::analyzeImpl(const FunctionDecl *Func) {
  213     llvm::SmallSet<const FunctionDecl *, 32> CallStack;
  229   llvm::SmallSet<const FunctionDecl *, 32> CallStack;
  235 ExceptionAnalyzer::analyzeDispatch(const T *Node) {
  250 ExceptionAnalyzer::analyze(const FunctionDecl *Func) {
tools/clang/tools/extra/clang-tidy/utils/ExceptionAnalyzer.h
  131   ExceptionInfo analyze(const FunctionDecl *Func);
  136   throwsException(const FunctionDecl *Func,
  137                   llvm::SmallSet<const FunctionDecl *, 32> &CallStack);
  140                   llvm::SmallSet<const FunctionDecl *, 32> &CallStack);
  142   ExceptionInfo analyzeImpl(const FunctionDecl *Func);
  149   std::map<const FunctionDecl *, ExceptionInfo> FunctionCache;
tools/clang/tools/extra/clang-tidy/utils/NamespaceAliaser.cpp
   33   const FunctionDecl *Function = getSurroundingFunction(Context, Statement);
   84   const auto *Function = getSurroundingFunction(Context, Statement);
tools/clang/tools/extra/clang-tidy/utils/NamespaceAliaser.h
   43   llvm::DenseMap<const FunctionDecl *, llvm::StringMap<std::string>>
tools/clang/tools/extra/clang-tidy/utils/UsingInserter.cpp
   35   const FunctionDecl *Function = getSurroundingFunction(Context, Statement);
   80   const FunctionDecl *Function = getSurroundingFunction(Context, Statement);
tools/clang/tools/extra/clang-tidy/utils/UsingInserter.h
   41   typedef std::pair<const FunctionDecl *, std::string> NameInFunction;
tools/clang/tools/extra/clangd/AST.cpp
   34   if (auto *Func = llvm::dyn_cast<FunctionDecl>(&ND)) {
   56   if (const auto *TD = dyn_cast<T>(D))
   56   if (const auto *TD = dyn_cast<T>(D))
   63   return isTemplateSpecializationKind<FunctionDecl>(D, Kind) ||
tools/clang/tools/extra/clangd/CodeComplete.cpp
  835       if (auto *Func = Candidate.getFunction()) {
  836         if (auto *Pattern = Func->getTemplateInstantiationPattern())
tools/clang/tools/extra/clangd/FindSymbols.cpp
  224     if (auto Func = llvm::dyn_cast<FunctionDecl>(D)) {
tools/clang/tools/extra/clangd/FindTarget.cpp
   94     } else if (const FunctionDecl *FD = dyn_cast<FunctionDecl>(D)) {
   94     } else if (const FunctionDecl *FD = dyn_cast<FunctionDecl>(D)) {
tools/clang/tools/extra/clangd/HeaderSourceSwitch.cpp
  135     if (!llvm::isa<FunctionDecl>(ND)) {
tools/clang/tools/extra/clangd/Quality.cpp
   63   if (const auto *FD = dyn_cast<FunctionDecl>(&ND)) {
   63   if (const auto *FD = dyn_cast<FunctionDecl>(&ND)) {
tools/clang/tools/extra/clangd/Selection.cpp
  372       if (auto *FD = llvm::dyn_cast<FunctionDecl>(D))
tools/clang/tools/extra/clangd/SemanticHighlighting.cpp
   81   if (isa<FunctionDecl>(D))
tools/clang/tools/extra/clangd/XRefs.cpp
   67   if (const auto *FD = dyn_cast<FunctionDecl>(D))
   67   if (const auto *FD = dyn_cast<FunctionDecl>(D))
  473     else if (const FunctionDecl *FD = dyn_cast<FunctionDecl>(DC))
  473     else if (const FunctionDecl *FD = dyn_cast<FunctionDecl>(DC))
  488   if (const FunctionDecl *FD = dyn_cast<FunctionDecl>(DC))
  488   if (const FunctionDecl *FD = dyn_cast<FunctionDecl>(DC))
  570 static const FunctionDecl *getUnderlyingFunction(const Decl *D) {
  636   } else if (const FunctionDecl *FD = D->getAsFunction()) {
  645   if (const FunctionDecl *FD = getUnderlyingFunction(D)) {
  798   bool VisitFunctionDecl(FunctionDecl *D) {
 1307                                                  const FunctionDecl *FD) {
tools/clang/tools/extra/clangd/XRefs.h
  163                                                  const FunctionDecl *FD);
tools/clang/tools/extra/clangd/refactor/Rename.cpp
   77   if (const auto *FD = llvm::dyn_cast<FunctionDecl>(&RenameDecl)) {
   77   if (const auto *FD = llvm::dyn_cast<FunctionDecl>(&RenameDecl)) {
tools/clang/tools/extra/clangd/refactor/tweaks/DefineInline.cpp
   71 llvm::Optional<SourceLocation> getSemicolonForDecl(const FunctionDecl *FD) {
   85 const FunctionDecl *getSelectedFunction(const SelectionTree::Node *SelNode) {
   87   if (const FunctionDecl *FD = AstNode.get<FunctionDecl>())
   87   if (const FunctionDecl *FD = AstNode.get<FunctionDecl>())
   92       return P->ASTNode.get<FunctionDecl>();
  101                           const FunctionDecl *Target, const SourceManager &SM) {
  139 llvm::Expected<std::string> qualifyAllDecls(const FunctionDecl *FD) {
  235 const FunctionDecl *findTarget(const FunctionDecl *FD) {
  235 const FunctionDecl *findTarget(const FunctionDecl *FD) {
  252 const SourceLocation getBeginLoc(const FunctionDecl *FD) {
  385   const FunctionDecl *Source = nullptr;
  386   const FunctionDecl *Target = nullptr;
tools/clang/tools/extra/clangd/refactor/tweaks/ExtractFunction.cpp
  152   const FunctionDecl *EnclosingFunction = nullptr;
  179 const FunctionDecl *findEnclosingFunction(const Node *CommonAnc) {
  185     if (const FunctionDecl *Func = CurNode->ASTNode.get<FunctionDecl>()) {
  185     if (const FunctionDecl *Func = CurNode->ASTNode.get<FunctionDecl>()) {
  222 computeEnclosingFuncRange(const FunctionDecl *EnclosingFunction,
  230 bool validSingleChild(const Node *Child, const FunctionDecl *EnclosingFunc) {
  548     if (!VD || isa<FunctionDecl>(DeclInfo.TheDecl))
tools/clang/tools/extra/clangd/unittests/FindTargetTests.cpp
  533     auto &Func = llvm::cast<FunctionDecl>(*TestDecl);
tools/clang/tools/extra/clangd/unittests/ParsedASTTests.cpp
   52   if (const FunctionDecl *FD = dyn_cast<FunctionDecl>(arg)) {
   52   if (const FunctionDecl *FD = dyn_cast<FunctionDecl>(arg)) {
tools/clang/tools/extra/clangd/unittests/QualityTests.cpp
  459     if (const auto *OD = dyn_cast<FunctionDecl>(&ND))
  459     if (const auto *OD = dyn_cast<FunctionDecl>(&ND))
tools/clang/tools/extra/clangd/unittests/SourceCodeTests.cpp
  588   const auto &Func = cast<FunctionDecl>(findDecl(AST, "test"));
  588   const auto &Func = cast<FunctionDecl>(findDecl(AST, "test"));
tools/clang/tools/extra/clangd/unittests/XRefsTests.cpp
 2275     const FunctionDecl *FD =
 2276         llvm::dyn_cast<FunctionDecl>(&findDecl(AST, [SL](const NamedDecl &ND) {
 2277           return ND.getLocation() == SL && llvm::isa<FunctionDecl>(ND);
tools/clang/tools/extra/modularize/Modularize.cpp
  623         isa<FunctionDecl>(ND) || isa<FunctionTemplateDecl>(ND) ||
tools/clang/tools/extra/unittests/clang-doc/SerializeTest.cpp
   38   template <typename T> bool mapDecl(const T *D) {
   50   bool VisitFunctionDecl(const FunctionDecl *D) {
tools/clang/tools/libclang/CIndex.cpp
  790 static bool HasTrailingReturnType(FunctionDecl *ND) {
  806 bool CursorVisitor::VisitFunctionDecl(FunctionDecl *ND) {
  933   auto* FD = D->getTemplatedDecl();
 3694   const FunctionDecl *FD = dyn_cast_or_null<FunctionDecl>(D);
 3694   const FunctionDecl *FD = dyn_cast_or_null<FunctionDecl>(D);
 4716     if (const FunctionDecl *FD =
 4717             dyn_cast_or_null<FunctionDecl>(getCursorDecl(C))) {
 4749   if (!D || !(isa<FunctionDecl>(D) || isa<VarDecl>(D)))
 4986   if (const FunctionDecl *Function = dyn_cast<FunctionDecl>(D)) {
 4986   if (const FunctionDecl *Function = dyn_cast<FunctionDecl>(D)) {
 6337     const FunctionDecl *Def = nullptr;
 6338     if (cast<FunctionDecl>(D)->getBody(Def))
 6354     const FunctionDecl *Def = nullptr;
 6541   const FunctionDecl *FD = dyn_cast<FunctionDecl>(getCursorDecl(C));
 6541   const FunctionDecl *FD = dyn_cast<FunctionDecl>(getCursorDecl(C));
 7784   if (isa<FunctionDecl>(D) && cast<FunctionDecl>(D)->isDeleted())
 7784   if (isa<FunctionDecl>(D) && cast<FunctionDecl>(D)->isDeleted())
 8005   if (const FunctionDecl *FD = dyn_cast<FunctionDecl>(D))
 8005   if (const FunctionDecl *FD = dyn_cast<FunctionDecl>(D))
 8021     if (const FunctionDecl *FD = dyn_cast<FunctionDecl>(D)) {
 8021     if (const FunctionDecl *FD = dyn_cast<FunctionDecl>(D)) {
 8189   if (const FunctionDecl *FD = dyn_cast<FunctionDecl>(D))
 8189   if (const FunctionDecl *FD = dyn_cast<FunctionDecl>(D))
tools/clang/tools/libclang/CIndexCXX.cpp
  107   } else if (const FunctionDecl *Function = dyn_cast<FunctionDecl>(D)) {
  107   } else if (const FunctionDecl *Function = dyn_cast<FunctionDecl>(D)) {
tools/clang/tools/libclang/CXCursor.cpp
 1178     if (const FunctionDecl *FD = dyn_cast_or_null<FunctionDecl>(D))
 1178     if (const FunctionDecl *FD = dyn_cast_or_null<FunctionDecl>(D))
 1202     } else if (const FunctionDecl *FD = dyn_cast_or_null<FunctionDecl>(D)) {
 1202     } else if (const FunctionDecl *FD = dyn_cast_or_null<FunctionDecl>(D)) {
 1235   const FunctionDecl *FD = llvm::dyn_cast_or_null<clang::FunctionDecl>(
 1235   const FunctionDecl *FD = llvm::dyn_cast_or_null<clang::FunctionDecl>(
 1273   const FunctionDecl *FD = llvm::dyn_cast_or_null<clang::FunctionDecl>(
 1273   const FunctionDecl *FD = llvm::dyn_cast_or_null<clang::FunctionDecl>(
tools/clang/tools/libclang/CXIndexDataConsumer.cpp
   34   bool VisitFunctionDecl(const FunctionDecl *D) {
  608 bool CXIndexDataConsumer::handleFunction(const FunctionDecl *D) {
 1042   } else if (const FunctionDecl *FD = dyn_cast<FunctionDecl>(D)) {
 1042   } else if (const FunctionDecl *FD = dyn_cast<FunctionDecl>(D)) {
 1235   if (const FunctionDecl *FD = dyn_cast<FunctionDecl>(D)) {
 1235   if (const FunctionDecl *FD = dyn_cast<FunctionDecl>(D)) {
tools/clang/tools/libclang/CXIndexDataConsumer.h
  379   bool handleFunction(const FunctionDecl *FD);
tools/clang/tools/libclang/CXType.cpp
 1109   else if (const FunctionDecl *FD = dyn_cast<FunctionDecl>(D))
 1109   else if (const FunctionDecl *FD = dyn_cast<FunctionDecl>(D))
tools/clang/tools/libclang/CursorVisitor.h
  213   bool VisitFunctionDecl(FunctionDecl *ND);
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
   21   using DeclTy = FunctionDecl;
   69   using DeclTy = FunctionDecl;
  135     if (auto *PrevF = dyn_cast<FunctionDecl>(Prev)) {
  135     if (auto *PrevF = dyn_cast<FunctionDecl>(Prev)) {
  137           FunctionDecl::TK_FunctionTemplateSpecialization) {
  147         auto *FirstSpecD = *(TemplateD->spec_begin());
  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
   32   using DeclTy = FunctionDecl;
  177   using DeclTy = FunctionDecl;
  253     auto *ToD = FirstDeclMatcher<DeclTy>().match(ToTU, getPattern());
  256     auto *FromD = FirstDeclMatcher<DeclTy>().match(FromTU, getPattern());
  274     if (auto *ImportedF = dyn_cast<FunctionDecl>(ImportedD))
  274     if (auto *ImportedF = dyn_cast<FunctionDecl>(ImportedD))
  276           FunctionDecl::TK_FunctionTemplateSpecialization)
tools/clang/unittests/AST/ASTImporterTest.cpp
  257   auto *D0 = FirstDeclMatcher<FunctionDecl>().match(FromTU, Pattern);
  267   auto *D0 = FirstDeclMatcher<FunctionDecl>().match(FromTU, Pattern);
  268   auto *D2 = LastDeclMatcher<FunctionDecl>().match(FromTU, Pattern);
  269   FunctionDecl *D1 = D2->getPreviousDecl();
  281   auto *D0 = FirstDeclMatcher<FunctionDecl>().match(FromTU, Pattern);
  282   auto *D2 = LastDeclMatcher<FunctionDecl>().match(FromTU, Pattern);
  283   FunctionDecl *D1 = D2->getPreviousDecl();
  364   FunctionDecl *D0, *D1, *D2;
  975   auto *From = FirstDeclMatcher<FunctionDecl>().match(
  978   auto *To = Import(From, Lang_C);
  987   auto *From = FirstDeclMatcher<FunctionDecl>().match(
  990   auto *To = Import(From, Lang_C);
 1004   auto *From = FirstDeclMatcher<FunctionDecl>().match(
 1007   auto *To = Import(From, Lang_C);
 1161   FunctionDecl *To = Import(From, Lang_CXX);
 1222       cast<FunctionDecl>(Import(FromFT->getTemplatedDecl(), Lang_CXX));
 1323       if (auto *FD = dyn_cast<FunctionDecl>(Child)) {
 1323       if (auto *FD = dyn_cast<FunctionDecl>(Child)) {
 1647     FunctionDecl *FromD = FirstDeclMatcher<FunctionDecl>().match(
 1933     auto *FromD = FirstDeclMatcher<FunctionDecl>().match(
 1951     auto *FromD = FirstDeclMatcher<FunctionDecl>().match(
 1980     auto *FromFunD = FirstDeclMatcher<FunctionDecl>().match(
 2011   auto *From =
 2018   auto *To0 = FirstDeclMatcher<FunctionDecl>().match(ToTU, Pattern);
 2019   auto *To1 = LastDeclMatcher<FunctionDecl>().match(ToTU, Pattern);
 2029   auto *From =
 2036   auto *To0 = FirstDeclMatcher<FunctionDecl>().match(ToTU, Pattern);
 2037   auto *To1 = LastDeclMatcher<FunctionDecl>().match(ToTU, Pattern);
 2095   auto *FromD = FirstDeclMatcher<FunctionDecl>().match(FromTU, functionDecl());
 2250     auto *Foo = FirstDeclMatcher<FunctionDecl>().match(FromTU1, FooDef);
 2315   auto *FromF0 = FirstDeclMatcher<FunctionDecl>().match(FromTu, Pattern);
 2316   auto *FromF1 = LastDeclMatcher<FunctionDecl>().match(FromTu, Pattern);
 2318   auto *ToF0 = Import(FromF0, Lang_CXX);
 2319   auto *ToF1 = Import(FromF1, Lang_CXX);
 2331     auto *FromD = FirstDeclMatcher<FunctionDecl>().match(
 2340     auto *FromD = FirstDeclMatcher<FunctionDecl>().match(
 2358   auto *FromD = FirstDeclMatcher<FunctionDecl>().match(
 2360   auto *ToD = Import(FromD, Lang_CXX);
 2384   auto *FromD = FirstDeclMatcher<FunctionDecl>().match(
 2386   auto *ToD = Import(FromD, Lang_CXX);
 2410   auto *FromD = FirstDeclMatcher<FunctionDecl>().match(
 2412   auto *ToD = Import(FromD, Lang_CXX);
 2473   auto *FromD = FirstDeclMatcher<FunctionDecl>().match(
 2475   auto *ImportedD = Import(FromD, Lang_CXX);
 2513   auto *FromD = LastDeclMatcher<FunctionDecl>().match(
 2515   auto *ImportedD = Import(FromD, Lang_CXX);
 2528   auto *FromD = FirstDeclMatcher<FunctionDecl>().match(FromTU, Pattern);
 2530   auto *ImportedD = cast<FunctionDecl>(Import(FromD, Lang_CXX));
 2530   auto *ImportedD = cast<FunctionDecl>(Import(FromD, Lang_CXX));
 2534   auto *ToFD = LastDeclMatcher<FunctionDecl>().match(ToTU, Pattern);
 2548   auto *ImportedD = cast<FunctionDecl>(Import(FromD, Lang_CXX));
 2548   auto *ImportedD = cast<FunctionDecl>(Import(FromD, Lang_CXX));
 2552   auto *ToFD = LastDeclMatcher<FunctionDecl>().match(ToTU, Pattern);
 2564   auto *FromD = FirstDeclMatcher<FunctionDecl>().match(FromTU, Pattern);
 2566   auto *ImportedD = cast<FunctionDecl>(Import(FromD, Lang_CXX));
 2566   auto *ImportedD = cast<FunctionDecl>(Import(FromD, Lang_CXX));
 2570   auto *ToFD = LastDeclMatcher<FunctionDecl>().match(ToTU, Pattern);
 2582   auto *FromD = FirstDeclMatcher<FunctionDecl>().match(FromTU, Pattern);
 2584   auto *ImportedD = cast<FunctionDecl>(Import(FromD, Lang_CXX));
 2584   auto *ImportedD = cast<FunctionDecl>(Import(FromD, Lang_CXX));
 2588   auto *ToFD = LastDeclMatcher<FunctionDecl>().match(ToTU, Pattern);
 2605   auto *FromD = FirstDeclMatcher<FunctionDecl>().match(FromTU, Pattern);
 2607   auto *ImportedD = cast<FunctionDecl>(Import(FromD, Lang_CXX));
 2607   auto *ImportedD = cast<FunctionDecl>(Import(FromD, Lang_CXX));
 2611   auto *InClassFD = cast<FunctionDecl>(FirstDeclMatcher<FriendDecl>()
 2611   auto *InClassFD = cast<FunctionDecl>(FirstDeclMatcher<FriendDecl>()
 2634   auto *FromD = LastDeclMatcher<FunctionDecl>().match(FromTU, Pattern);
 2636   auto *ImportedD = cast<FunctionDecl>(Import(FromD, Lang_CXX));
 2636   auto *ImportedD = cast<FunctionDecl>(Import(FromD, Lang_CXX));
 2640   auto *OutOfClassFD = FirstDeclMatcher<FunctionDecl>().match(
 2653   FunctionDecl *ImportedD;
 2657     auto *FromD = FirstDeclMatcher<FunctionDecl>().match(FromTU, Pattern);
 2658     ImportedD = cast<FunctionDecl>(Import(FromD, Lang_CXX));
 2660   FunctionDecl *ImportedD1;
 2663     auto *FromD = FirstDeclMatcher<FunctionDecl>().match(FromTU, Pattern);
 2664     ImportedD1 = cast<FunctionDecl>(Import(FromD, Lang_CXX));
 2680   auto *FromD = FirstDeclMatcher<FunctionDecl>().match(FromTU, FunctionPattern);
 2692   auto *ToD = cast<FunctionDecl>(Import(FromD, Lang_CXX));
 2692   auto *ToD = cast<FunctionDecl>(Import(FromD, Lang_CXX));
 2703   auto *To0 = FirstDeclMatcher<FunctionDecl>().match(ToTU, FunctionPattern);
 2721   auto *FromFriend =
 2723   auto *FromNormal =
 2738   auto *ToFriend = cast<FunctionDecl>(Import(FromFriend, Lang_CXX));
 2738   auto *ToFriend = cast<FunctionDecl>(Import(FromFriend, Lang_CXX));
 2751   auto *ToNormal = LastDeclMatcher<FunctionDecl>().match(ToTU, FunctionPattern);
 2766   auto *FromNormal =
 2768   auto *FromFriend =
 2783   auto *ToNormal = cast<FunctionDecl>(Import(FromNormal, Lang_CXX));
 2783   auto *ToNormal = cast<FunctionDecl>(Import(FromNormal, Lang_CXX));
 2795   auto *ToFriend = LastDeclMatcher<FunctionDecl>().match(ToTU, FunctionPattern);
 2807   auto *FromNormalF =
 2811   auto *FromFriendF =
 2825   auto *ToNormalF = cast<FunctionDecl>(Import(FromNormalF, Lang_CXX));
 2825   auto *ToNormalF = cast<FunctionDecl>(Import(FromNormalF, Lang_CXX));
 2834   auto *ToFriendF = cast<FunctionDecl>(Import(FromFriendF, Lang_CXX));
 2834   auto *ToFriendF = cast<FunctionDecl>(Import(FromFriendF, Lang_CXX));
 2851   auto *FromFriendF = FirstDeclMatcher<FunctionDecl>().match(
 3189     auto *FromM = FirstDeclMatcher<FunctionDecl>().match(
 3197     auto *FromM = FirstDeclMatcher<FunctionDecl>().match(
 3210     auto *FromM = FirstDeclMatcher<FunctionDecl>().match(
 3219     auto *FromM = FirstDeclMatcher<FunctionDecl>().match(
 3267   auto *FromF = FirstDeclMatcher<FunctionDecl>().match(
 3269   auto *ToF = cast_or_null<FunctionDecl>(Import(FromF, Lang_CXX11));
 3269   auto *ToF = cast_or_null<FunctionDecl>(Import(FromF, Lang_CXX11));
 3368   auto *FromFun =
 3370   auto *ToFun =
 3971   auto *ToFoo = FirstDeclMatcher<FunctionDecl>().match(
 3975   auto *FromFoo = FirstDeclMatcher<FunctionDecl>().match(
 3977   auto *ImportedFoo = Import(FromFoo, Lang_CXX);
 4063   auto *Foo = FirstDeclMatcher<FunctionDecl>().match(
 4137     auto *FirstSpecD = *(TemplateD->spec_begin());
 4151     auto *FirstSpecD = *(TemplateD->spec_begin());
 4172   auto *FromD = FirstDeclMatcher<FunctionDecl>().match(
 4207     FunctionDecl *FromD = FirstDeclMatcher<FunctionDecl>().match(
 4263   auto *FromD = FirstDeclMatcher<FunctionDecl>().match(FromTU,
 4267   auto *ToD = Import(FromD, Lang_CXX);
 4303   auto *Foo = FirstDeclMatcher<FunctionDecl>().match(
 4409   auto *F0 = FirstDeclMatcher<FunctionDecl>().match(ToTU, functionDecl());
 4410   auto *F2 = LastDeclMatcher<FunctionDecl>().match(ToTU, functionDecl());
 4429   auto *FPlus = FirstDeclMatcher<FunctionDecl>().match(
 4431   auto *FMinus = FirstDeclMatcher<FunctionDecl>().match(
 4453   auto *ToPlus = FirstDeclMatcher<FunctionDecl>().match(
 4462   auto *FromPlus = FirstDeclMatcher<FunctionDecl>().match(
 4625   auto *F =
 4916   auto *FromFoo = FirstDeclMatcher<FunctionDecl>().match(
 4919   FunctionDecl *ImportedFoo = Import(FromFoo, Lang_CXX);
 4944   auto *FromProto = FirstDeclMatcher<FunctionDecl>().match(
 4946   auto *FromDef =
 4948   FunctionDecl *ImportedProto = Import(FromProto, Lang_CXX);
 4957   auto *ToProto =
 5119   auto *FromF = FirstDeclMatcher<FunctionDecl>().match(
 5125   FunctionDecl *ImportedF = Import(FromF, Lang_CXX);
 5129   auto *FromOK = FirstDeclMatcher<FunctionDecl>().match(
 5134   FunctionDecl *ImportedOK = Import(FromOK, Lang_CXX);
 5237   auto *FromFooA = FirstDeclMatcher<FunctionDecl>().match(FromTU, MatchFooA);
 5238   auto *FromFooB = FirstDeclMatcher<FunctionDecl>().match(FromTU, MatchFooB);
 5239   auto *FromFooC = FirstDeclMatcher<FunctionDecl>().match(FromTU, MatchFooC);
 5304   FunctionDecl *FromF = FirstDeclMatcher<FunctionDecl>().match(
 5306   FunctionDecl *ToF = Import(FromF, Lang_CXX11);
 5570   FunctionDecl *ToF = Import(FromF, Lang_CXX2a);
 5594   FunctionDecl *ToF = Import(FromF, Lang_CXX2a);
tools/clang/unittests/AST/ASTImporterVisibilityTest.cpp
   27   using DeclTy = FunctionDecl;
  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/ASTTraverserTest.cpp
   88 const FunctionDecl *getFunctionNode(clang::ASTUnit *AST,
   93   return Result[0].getNodeAs<FunctionDecl>("fn");
  146   const FunctionDecl *Func = getFunctionNode(AST.get(), "func");
  175   const FunctionDecl *CTorFunc = getFunctionNode(AST.get(), "A");
tools/clang/unittests/AST/ASTTypeTraitsTest.cpp
   25   return ASTNodeKind::getFromNodeKind<T>();
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/MatchVerifier.h
   62                       const NodeType &Node) {}
  150   const NodeType *Node = Result.Nodes.getNodeAs<NodeType>("");
  150   const NodeType *Node = Result.Nodes.getNodeAs<NodeType>("");
  216 class RangeVerifier : public MatchVerifier<NodeType> {
  228               const NodeType &Node) override {
  250   virtual SourceRange getRange(const NodeType &Node) {
tools/clang/unittests/AST/RecursiveASTVisitorTest.cpp
   62   bool TraverseFunctionDecl(FunctionDecl *D) {
   64     bool Ret = RecursiveASTVisitor::TraverseFunctionDecl(D);
tools/clang/unittests/AST/SourceLocationTest.cpp
  635   RangeVerifier<FunctionDecl> Verifier;
  643   RangeVerifier<FunctionDecl> Verifier;
  652   RangeVerifier<FunctionDecl> Verifier;
  662   RangeVerifier<FunctionDecl> Verifier;
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>(
  234   auto t = makeDecls<FunctionDecl>(
  243   auto t = makeDecls<FunctionDecl>(
  252   auto t = makeDecls<FunctionDecl>(
  494   auto t = makeDecls<FunctionDecl>(
  532   auto t = makeDecls<FunctionDecl>(
  541   auto t = makeDecls<FunctionDecl>(
  550   auto t = makeDecls<FunctionDecl>(
 1280   std::pair<NodeType *, NodeType *>
 1280   std::pair<NodeType *, NodeType *>
 1283     NodeType *D0 = FirstDeclMatcher<NodeType>().match(get<0>(TU), M);
 1284     NodeType *D1 = FirstDeclMatcher<NodeType>().match(get<1>(TU), M);
 1289   bool isInNonEqCache(std::pair<NodeType *, NodeType *> D) {
 1289   bool isInNonEqCache(std::pair<NodeType *, NodeType *> D) {
 1312   auto X = findDeclPair<FunctionDecl>(TU, functionDecl(hasName("x")));
tools/clang/unittests/ASTMatchers/ASTMatchersTest.h
  421     if (Nodes->getNodeAs<T>(Id)) {
tools/clang/unittests/ASTMatchers/Dynamic/RegistryTest.cpp
  152                            .getTypedMatcher<FunctionDecl>());
  181                        .getTypedMatcher<FunctionDecl>());
tools/clang/unittests/Analysis/CFGBuildResult.h
   41     const auto *Func = Result.Nodes.getNodeAs<FunctionDecl>("func");
   41     const auto *Func = Result.Nodes.getNodeAs<FunctionDecl>("func");
tools/clang/unittests/Analysis/CloneDetectionTest.cpp
   26   bool VisitFunctionDecl(FunctionDecl *D) {
   43             if (const auto *D =
   44                     dyn_cast<const FunctionDecl>(Arg.getContainingDecl())) {
   80     const auto ND = dyn_cast<const FunctionDecl>(Clone.getContainingDecl());
   99     const auto ND = dyn_cast<const FunctionDecl>(Clone.getContainingDecl());
tools/clang/unittests/CodeGen/CodeGenExternalTest.cpp
   66   void HandleInlineFunctionDefinition(FunctionDecl *D) override;
   71   void HandleCXXImplicitFunctionInstantiation(FunctionDecl *D) override;
   96 void MyASTConsumer::HandleInlineFunctionDefinition(FunctionDecl *D) {
  118 void MyASTConsumer::HandleCXXImplicitFunctionInstantiation(FunctionDecl *D) {
  175     if (FunctionDecl *fd = dyn_cast<FunctionDecl>(decl)) {
  175     if (FunctionDecl *fd = dyn_cast<FunctionDecl>(decl)) {
tools/clang/unittests/CrossTU/CrossTranslationUnitTest.cpp
   32       const FunctionDecl *FD = nullptr;
   34         FD = dyn_cast<FunctionDecl>(D);
   42     const FunctionDecl *FD = FindFInTU(TU);
   79     llvm::Expected<const FunctionDecl *> NewFDorError = handleExpected(
   84       const FunctionDecl *NewFD = *NewFDorError;
   99           const FunctionDecl *FDWithDefinition = FindFInTU(OrigTU);
tools/clang/unittests/Sema/ExternalSemaSourceTest.cpp
  164       auto *NewFunction = FunctionDecl::Create(
  164       auto *NewFunction = FunctionDecl::Create(
tools/clang/unittests/Tooling/ASTSelectionTest.cpp
  118           typename std::enable_if<std::is_base_of<Decl, T>::value, T>::type
  118           typename std::enable_if<std::is_base_of<Decl, T>::value, T>::type
  120   checkNodeImpl(isa<T>(DeclNode.Node.get<Decl>()), DeclNode, SelectionKind,
  162         checkNode<FunctionDecl>(Node->Children[0],
  187                          checkNode<FunctionDecl>(
  203         const auto &Fn = checkNode<FunctionDecl>(
  227         const auto &Fn = checkNode<FunctionDecl>(
  243         const auto &Fn = checkNode<FunctionDecl>(
  259         const auto &Fn = checkNode<FunctionDecl>(
  283     checkNode<FunctionDecl>(Node->Children[0],
  286     checkNode<FunctionDecl>(Node->Children[1],
  313         const auto &Fn = checkNode<FunctionDecl>(
  334         const auto &Fn = checkNode<FunctionDecl>(
  356         const auto &Fn = checkNode<FunctionDecl>(
  407         const auto &Fn = checkNode<FunctionDecl>(
  423         const auto &Fn = checkNode<FunctionDecl>(
  439         const auto &Selected = checkNode<FunctionDecl>(
  447         const auto &CatF = checkNode<FunctionDecl>(
  459                          checkNode<FunctionDecl>(
  489         checkNode<FunctionDecl>(Impl.Children[0],
  543   const auto &Fn = checkNode<FunctionDecl>(
tools/clang/unittests/Tooling/ExecutionTest.cpp
   47   bool TraverseFunctionDecl(clang::FunctionDecl *Decl) {
   52     return ASTVisitor::TraverseFunctionDecl(Decl);
tools/lldb/include/lldb/Symbol/ClangASTContext.h
  286                              clang::FunctionDecl *func_decl, const char *name,
  290       clang::FunctionDecl *func_decl, clang::FunctionTemplateDecl *Template,
  354   clang::FunctionDecl *
  397   void SetFunctionParameters(clang::FunctionDecl *function_decl,
  497   static clang::FunctionDecl *
tools/lldb/source/Plugins/ExpressionParser/Clang/ASTResultSynthesizer.cpp
   89     } else if (FunctionDecl *function_decl = dyn_cast<FunctionDecl>(D)) {
   89     } else if (FunctionDecl *function_decl = dyn_cast<FunctionDecl>(D)) {
  114 bool ASTResultSynthesizer::SynthesizeFunctionResult(FunctionDecl *FunDecl) {
  120   FunctionDecl *function_decl = FunDecl;
tools/lldb/source/Plugins/ExpressionParser/Clang/ASTResultSynthesizer.h
  117   bool SynthesizeFunctionResult(clang::FunctionDecl *FunDecl);
tools/lldb/source/Plugins/ExpressionParser/Clang/ASTStructExtractor.cpp
   50 void ASTStructExtractor::ExtractFromFunctionDecl(FunctionDecl *F) {
  123   FunctionDecl *function_decl = dyn_cast<FunctionDecl>(D);
  123   FunctionDecl *function_decl = dyn_cast<FunctionDecl>(D);
tools/lldb/source/Plugins/ExpressionParser/Clang/ASTStructExtractor.h
  105   void ExtractFromFunctionDecl(clang::FunctionDecl *F);
tools/lldb/source/Plugins/ExpressionParser/Clang/ASTUtils.h
  154   void HandleInlineFunctionDefinition(clang::FunctionDecl *D) override {
  174   void HandleCXXImplicitFunctionInstantiation(clang::FunctionDecl *D) override {
  546       llvm::MapVector<const clang::FunctionDecl *,
tools/lldb/source/Plugins/ExpressionParser/Clang/ClangASTSource.cpp
 2151   clang::FunctionDecl *func_decl = FunctionDecl::Create(
 2151   clang::FunctionDecl *func_decl = FunctionDecl::Create(
tools/lldb/source/Plugins/ExpressionParser/Clang/ClangExpressionDeclMap.cpp
  779   std::function<void(clang::FunctionDecl *)> MaybeRegisterFunctionBody =
  839       if (clang::FunctionDecl *parser_function_decl =
  840               llvm::dyn_cast<clang::FunctionDecl>(parser_named_decl)) {
 1391           if (llvm::isa<clang::FunctionDecl>(decl)) {
 1393                 llvm::cast_or_null<FunctionDecl>(CopyDecl(decl));
 1428           if (llvm::isa<clang::FunctionDecl>(decl_from_modules)) {
 1437             clang::FunctionDecl *copied_function_decl =
 1438                 copied_decl ? dyn_cast<clang::FunctionDecl>(copied_decl)
 1920         clang::FunctionDecl *src_function_decl =
 1921             llvm::dyn_cast_or_null<clang::FunctionDecl>(src_decl_context);
 1947           if (clang::FunctionDecl *copied_function_decl =
 1948                   llvm::dyn_cast_or_null<clang::FunctionDecl>(
tools/lldb/source/Plugins/ExpressionParser/Clang/ClangExpressionParser.cpp
  785         if (const FunctionDecl *F = dyn_cast<FunctionDecl>(D)) {
  785         if (const FunctionDecl *F = dyn_cast<FunctionDecl>(D)) {
tools/lldb/source/Plugins/ExpressionParser/Clang/ClangUserExpression.cpp
  215   } else if (clang::FunctionDecl *function_decl =
tools/lldb/source/Plugins/SymbolFile/DWARF/DWARFASTParserClang.cpp
 1080         clang::FunctionDecl *function_decl = nullptr;
 1081         clang::FunctionDecl *template_function_decl = nullptr;
 1087             function_decl = llvm::dyn_cast_or_null<clang::FunctionDecl>(
tools/lldb/source/Plugins/SymbolFile/NativePDB/PdbAstBuilder.cpp
  982 clang::FunctionDecl *
  985     return llvm::dyn_cast<clang::FunctionDecl>(decl);
 1017   clang::FunctionDecl *function_decl = m_clang.CreateFunctionDeclaration(
 1033                                              clang::FunctionDecl &function_decl,
 1170   return !!llvm::dyn_cast<clang::FunctionDecl>(&context);
 1244   clang::FunctionDecl *func_decl = llvm::dyn_cast<clang::FunctionDecl>(&decl);
 1244   clang::FunctionDecl *func_decl = llvm::dyn_cast<clang::FunctionDecl>(&decl);
tools/lldb/source/Plugins/SymbolFile/NativePDB/PdbAstBuilder.h
   63   clang::FunctionDecl *GetOrCreateFunctionDecl(PdbCompilandSymId func_id);
  108                                 clang::FunctionDecl &function_decl,
tools/lldb/source/Plugins/SymbolFile/PDB/PDBASTParser.cpp
  978         llvm::dyn_cast_or_null<clang::FunctionDecl>(GetDeclForSymbol(symbol));
tools/lldb/source/Symbol/ClangASTContext.cpp
 1487     clang::DeclContext *decl_ctx, clang::FunctionDecl *func_decl,
 1510     FunctionDecl *func_decl, clang::FunctionTemplateDecl *func_tmpl_decl,
 2053 FunctionDecl *ClangASTContext::CreateFunctionDeclaration(
 2056   FunctionDecl *func_decl = nullptr;
 2066   func_decl = FunctionDecl::Create(
 2139 void ClangASTContext::SetFunctionParameters(FunctionDecl *function_decl,
 9929   if (clang::FunctionDecl *func_decl =
 9930           llvm::dyn_cast<clang::FunctionDecl>((clang::Decl *)opaque_decl))
 9940   if (clang::FunctionDecl *func_decl =
 9941           llvm::dyn_cast<clang::FunctionDecl>((clang::Decl *)opaque_decl))
 9952   if (clang::FunctionDecl *func_decl =
 9953           llvm::dyn_cast<clang::FunctionDecl>((clang::Decl *)opaque_decl)) {
10203     } else if (clang::FunctionDecl *function_decl =
10204                    llvm::dyn_cast<clang::FunctionDecl>(decl_ctx)) {
10261 clang::FunctionDecl *
10264     return llvm::dyn_cast<clang::FunctionDecl>(
tools/lldb/source/Symbol/ClangASTImporter.cpp
  236       if (llvm::isa<FunctionDecl>(redecl_context) &&
usr/include/c++/7.4.0/bits/move.h
   72     constexpr _Tp&&
   83     constexpr _Tp&&
usr/include/c++/7.4.0/type_traits
  215     : public __is_void_helper<typename remove_cv<_Tp>::type>::type
  381     : public __is_pointer_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>
 2157     { typedef _Tp type; };
utils/unittest/googletest/include/gtest/gtest-printers.h
  407                     T* p, ::std::ostream* os) {
  416     if (IsTrue(ImplicitlyConvertible<T*, const void*>::value)) {