1 //==- LocalCheckers.h - Intra-Procedural+Flow-Sensitive Checkers -*- C++ -*-==//
3 // The LLVM Compiler Infrastructure
5 // This file is distributed under the University of Illinois Open Source
6 // License. See LICENSE.TXT for details.
8 //===----------------------------------------------------------------------===//
10 // This file defines the interface to call a set of intra-procedural (local)
11 // checkers that use flow/path-sensitive analyses to find bugs.
13 //===----------------------------------------------------------------------===//
15 #ifndef LLVM_CLANG_ANALYSIS_LOCALCHECKERS_H
16 #define LLVM_CLANG_ANALYSIS_LOCALCHECKERS_H
24 class PathDiagnosticClient
;
25 class GRTransferFuncs
;
31 class ObjCImplementationDecl
;
34 class TranslationUnitDecl
;
36 void CheckDeadStores(CFG
&cfg
, LiveVariables
&L
, ParentMap
&map
,
39 GRTransferFuncs
* MakeCFRefCountTF(ASTContext
& Ctx
, bool GCEnabled
,
40 const LangOptions
& lopts
);
42 void CheckObjCDealloc(const ObjCImplementationDecl
* D
, const LangOptions
& L
,
45 void CheckObjCInstMethSignature(const ObjCImplementationDecl
*ID
,
48 void CheckObjCUnusedIvar(const ObjCImplementationDecl
*D
, BugReporter
& BR
);
50 void RegisterAppleChecks(GRExprEngine
& Eng
, const Decl
&D
);
51 void RegisterExperimentalChecks(GRExprEngine
&Eng
);
52 void RegisterExperimentalInternalChecks(GRExprEngine
&Eng
);
54 void CheckLLVMConventions(TranslationUnitDecl
&TU
, BugReporter
&BR
);
55 void CheckSecuritySyntaxOnly(const Decl
*D
, BugReporter
&BR
);
56 void CheckSizeofPointer(const Decl
*D
, BugReporter
&BR
);
58 void RegisterCallInliner(GRExprEngine
&Eng
);
59 } // end namespace clang