diff options
Diffstat (limited to 'include/clang/StaticAnalyzer/Core/CheckerManager.h')
-rw-r--r-- | include/clang/StaticAnalyzer/Core/CheckerManager.h | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/include/clang/StaticAnalyzer/Core/CheckerManager.h b/include/clang/StaticAnalyzer/Core/CheckerManager.h index fd12864e11..9345585b8e 100644 --- a/include/clang/StaticAnalyzer/Core/CheckerManager.h +++ b/include/clang/StaticAnalyzer/Core/CheckerManager.h @@ -36,6 +36,7 @@ namespace ento { class ExplodedNodeSet; class ExplodedGraph; class GRState; + class EndOfFunctionNodeBuilder; class GraphExpander { public: @@ -186,6 +187,9 @@ public: void runCheckersForEndAnalysis(ExplodedGraph &G, BugReporter &BR, ExprEngine &Eng); + /// \brief Run checkers for end of path. + void runCheckersForEndPath(EndOfFunctionNodeBuilder &B, ExprEngine &Eng); + /// \brief Run checkers for evaluating a call. void runCheckersForEvalCall(ExplodedNodeSet &Dst, const ExplodedNodeSet &Src, @@ -221,6 +225,7 @@ public: CheckLocationFunc; typedef CheckerFn<ExplodedGraph &, BugReporter &, ExprEngine &> CheckEndAnalysisFunc; + typedef CheckerFn<EndOfFunctionNodeBuilder &, ExprEngine &> CheckEndPathFunc; typedef bool (*HandlesStmtFunc)(const Stmt *D); void _registerForPreStmt(CheckStmtFunc checkfn, @@ -235,6 +240,8 @@ public: void _registerForEndAnalysis(CheckEndAnalysisFunc checkfn); + void _registerForEndPath(CheckEndPathFunc checkfn); + class EvalCallFunc { typedef bool (*Func)(void *, const CallExpr *, CheckerContext &); Func Fn; @@ -316,6 +323,8 @@ private: std::vector<CheckEndAnalysisFunc> EndAnalysisCheckers; + std::vector<CheckEndPathFunc> EndPathCheckers; + std::vector<EvalCallFunc> EvalCallCheckers; }; |