llvm-svn: 336755
This commit is contained in:
George Karpenkov 2018-07-11 01:58:08 +00:00
parent b9d01aa29e
commit 0052744cc7
1 changed files with 7 additions and 8 deletions

View File

@ -56,12 +56,6 @@ class DynamicTypePropagation:
check::PostStmt<CXXNewExpr>,
check::PreObjCMessage,
check::PostObjCMessage > {
private:
/// This value is set to true, when the Generics checker is turned on.
bool CheckGenerics;
public:
DynamicTypePropagation(bool CheckGenerics)
: CheckGenerics(CheckGenerics) {}
const ObjCObjectType *getObjectTypeForAllocAndNew(const ObjCMessageExpr *MsgE,
CheckerContext &C) const;
@ -113,6 +107,9 @@ public:
void checkDeadSymbols(SymbolReaper &SR, CheckerContext &C) const;
void checkPreObjCMessage(const ObjCMethodCall &M, CheckerContext &C) const;
void checkPostObjCMessage(const ObjCMethodCall &M, CheckerContext &C) const;
/// This value is set to true, when the Generics checker is turned on.
DefaultBool CheckGenerics;
};
} // end anonymous namespace
@ -998,9 +995,11 @@ DynamicTypePropagation::GenericsBugVisitor::VisitNode(const ExplodedNode *N,
/// Register checkers.
void ento::registerObjCGenericsChecker(CheckerManager &mgr) {
mgr.registerChecker<DynamicTypePropagation>(/*CheckGenerics=*/true);
DynamicTypePropagation *checker =
mgr.registerChecker<DynamicTypePropagation>();
checker->CheckGenerics = true;
}
void ento::registerDynamicTypePropagation(CheckerManager &mgr) {
mgr.registerChecker<DynamicTypePropagation>(/*CheckGenerics=*/false);
mgr.registerChecker<DynamicTypePropagation>();
}