diff options
-rw-r--r-- | clang/include/clang/StaticAnalyzer/Core/PathSensitive/CheckerContext.h | 3 | ||||
-rw-r--r-- | clang/lib/StaticAnalyzer/Checkers/RetainCountChecker.cpp | 8 |
2 files changed, 4 insertions, 7 deletions
diff --git a/clang/include/clang/StaticAnalyzer/Core/PathSensitive/CheckerContext.h b/clang/include/clang/StaticAnalyzer/Core/PathSensitive/CheckerContext.h index 35c17906f68..417bea997e2 100644 --- a/clang/include/clang/StaticAnalyzer/Core/PathSensitive/CheckerContext.h +++ b/clang/include/clang/StaticAnalyzer/Core/PathSensitive/CheckerContext.h @@ -121,8 +121,9 @@ public: /// Allows checkers to generate a chain of nodes. ExplodedNode *generateNode(const ProgramState *state, ExplodedNode *pred, + const ProgramPointTag *tag = 0, bool autoTransition = true) { - ExplodedNode *N = generateNodeImpl(state, false, pred); + ExplodedNode *N = generateNodeImpl(state, false, pred, tag); if (N && autoTransition) addTransition(N); return N; diff --git a/clang/lib/StaticAnalyzer/Checkers/RetainCountChecker.cpp b/clang/lib/StaticAnalyzer/Checkers/RetainCountChecker.cpp index 2ff82912588..b31c4a732dc 100644 --- a/clang/lib/StaticAnalyzer/Checkers/RetainCountChecker.cpp +++ b/clang/lib/StaticAnalyzer/Checkers/RetainCountChecker.cpp @@ -3173,12 +3173,10 @@ void RetainCountChecker::checkReturnWithRetEffect(const ReturnStmt *S, if (hasError) { // Generate an error node. state = state->set<RefBindings>(Sym, X); - StmtNodeBuilder &Builder = C.getNodeBuilder(); static SimpleProgramPointTag ReturnOwnLeakTag("RetainCountChecker : ReturnsOwnLeak"); - ExplodedNode *N = Builder.generateNode(S, state, Pred, - &ReturnOwnLeakTag); + ExplodedNode *N = C.generateNode(state, Pred, &ReturnOwnLeakTag); if (N) { const LangOptions &LOpts = C.getASTContext().getLangOptions(); bool GCEnabled = C.isObjCGCEnabled(); @@ -3195,12 +3193,10 @@ void RetainCountChecker::checkReturnWithRetEffect(const ReturnStmt *S, // Trying to return a not owned object to a caller expecting an // owned object. state = state->set<RefBindings>(Sym, X ^ RefVal::ErrorReturnedNotOwned); - StmtNodeBuilder &Builder = C.getNodeBuilder(); static SimpleProgramPointTag ReturnNotOwnedTag("RetainCountChecker : ReturnNotOwnedForOwned"); - ExplodedNode *N = Builder.generateNode(S, state, Pred, - &ReturnNotOwnedTag); + ExplodedNode *N = C.generateNode(state, Pred, &ReturnNotOwnedTag); if (N) { if (!returnNotOwnedForOwned) returnNotOwnedForOwned.reset(new ReturnedNotOwnedForOwned()); |