diff options
author | Anna Zaks <ganna@apple.com> | 2016-10-04 20:49:31 +0000 |
---|---|---|
committer | Anna Zaks <ganna@apple.com> | 2016-10-04 20:49:31 +0000 |
commit | fb859a934a3604a234b1c796beba77b6e8dcd83e (patch) | |
tree | 1ee8fe2a2ba94662da4739e0de96b621b5613fb8 /clang/lib/StaticAnalyzer/Checkers/AnalysisOrderChecker.cpp | |
parent | bfdbea6481a2247fcc63c27e3acd393000fd8d41 (diff) | |
download | bcm5719-llvm-fb859a934a3604a234b1c796beba77b6e8dcd83e.tar.gz bcm5719-llvm-fb859a934a3604a234b1c796beba77b6e8dcd83e.zip |
[analyzer] Add PostStmt callback for ArraySubscriptExpr
A patch by Jan Smets!
Differential Revision: https://reviews.llvm.org/D25009
llvm-svn: 283253
Diffstat (limited to 'clang/lib/StaticAnalyzer/Checkers/AnalysisOrderChecker.cpp')
-rw-r--r-- | clang/lib/StaticAnalyzer/Checkers/AnalysisOrderChecker.cpp | 14 |
1 files changed, 13 insertions, 1 deletions
diff --git a/clang/lib/StaticAnalyzer/Checkers/AnalysisOrderChecker.cpp b/clang/lib/StaticAnalyzer/Checkers/AnalysisOrderChecker.cpp index 0bb0e3306f6..e6592a285e4 100644 --- a/clang/lib/StaticAnalyzer/Checkers/AnalysisOrderChecker.cpp +++ b/clang/lib/StaticAnalyzer/Checkers/AnalysisOrderChecker.cpp @@ -25,7 +25,9 @@ using namespace ento; namespace { class AnalysisOrderChecker : public Checker< check::PreStmt<CastExpr>, - check::PostStmt<CastExpr>> { + check::PostStmt<CastExpr>, + check::PreStmt<ArraySubscriptExpr>, + check::PostStmt<ArraySubscriptExpr>> { bool isCallbackEnabled(CheckerContext &C, StringRef CallbackName) const { AnalyzerOptions &Opts = C.getAnalysisManager().getAnalyzerOptions(); return Opts.getBooleanOption("*", false, this) || @@ -44,6 +46,16 @@ public: llvm::errs() << "PostStmt<CastExpr> (Kind : " << CE->getCastKindName() << ")\n"; } + + void checkPreStmt(const ArraySubscriptExpr *SubExpr, CheckerContext &C) const { + if (isCallbackEnabled(C, "PreStmtArraySubscriptExpr")) + llvm::errs() << "PreStmt<ArraySubscriptExpr>\n"; + } + + void checkPostStmt(const ArraySubscriptExpr *SubExpr, CheckerContext &C) const { + if (isCallbackEnabled(C, "PostStmtArraySubscriptExpr")) + llvm::errs() << "PostStmt<ArraySubscriptExpr>\n"; + } }; } |