summaryrefslogtreecommitdiffstats
path: root/clang/lib/StaticAnalyzer/Checkers/StackAddrEscapeChecker.cpp
diff options
context:
space:
mode:
authorKristof Umann <dkszelethus@gmail.com>2019-01-26 21:41:50 +0000
committerKristof Umann <dkszelethus@gmail.com>2019-01-26 21:41:50 +0000
commit204bf2bbb265b5158783bacf9a67b0bc4cc57747 (patch)
tree15fd00c3646787c7b471644e014b5f1c4b9228f2 /clang/lib/StaticAnalyzer/Checkers/StackAddrEscapeChecker.cpp
parenta914fa4dd881af669dba66e68677116f0436d1ed (diff)
downloadbcm5719-llvm-204bf2bbb265b5158783bacf9a67b0bc4cc57747.tar.gz
bcm5719-llvm-204bf2bbb265b5158783bacf9a67b0bc4cc57747.zip
[analyzer] Add CheckerManager::getChecker, make sure that a registry function registers no more than 1 checker
This patch effectively fixes the almost decade old checker naming issue. The solution is to assert when CheckerManager::getChecker is called on an unregistered checker, and assert when CheckerManager::registerChecker is called on a checker that is already registered. Differential Revision: https://reviews.llvm.org/D55429 llvm-svn: 352292
Diffstat (limited to 'clang/lib/StaticAnalyzer/Checkers/StackAddrEscapeChecker.cpp')
-rw-r--r--clang/lib/StaticAnalyzer/Checkers/StackAddrEscapeChecker.cpp10
1 files changed, 5 insertions, 5 deletions
diff --git a/clang/lib/StaticAnalyzer/Checkers/StackAddrEscapeChecker.cpp b/clang/lib/StaticAnalyzer/Checkers/StackAddrEscapeChecker.cpp
index f6bb7375d17..b93bed5c309 100644
--- a/clang/lib/StaticAnalyzer/Checkers/StackAddrEscapeChecker.cpp
+++ b/clang/lib/StaticAnalyzer/Checkers/StackAddrEscapeChecker.cpp
@@ -367,11 +367,11 @@ bool ento::shouldRegisterStackAddrEscapeBase(const LangOptions &LO) {
return true;
}
-#define REGISTER_CHECKER(name) \
- void ento::register##name(CheckerManager &Mgr) { \
- StackAddrEscapeChecker *Chk = \
- Mgr.registerChecker<StackAddrEscapeChecker>(); \
- Chk->ChecksEnabled[StackAddrEscapeChecker::CK_##name] = true; \
+#define REGISTER_CHECKER(name) \
+ void ento::register##name(CheckerManager &Mgr) { \
+ StackAddrEscapeChecker *Chk = \
+ Mgr.getChecker<StackAddrEscapeChecker>(); \
+ Chk->ChecksEnabled[StackAddrEscapeChecker::CK_##name] = true; \
} \
\
bool ento::shouldRegister##name(const LangOptions &LO) { \
OpenPOWER on IntegriCloud