From: Ted Kremenek Date: Fri, 6 Aug 2010 21:12:49 +0000 (+0000) Subject: Use 'GenerateNode()' instead of 'GenerateSink()' when reporting a leak. A leak is... X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=cea68654a4e7c44e12364ed3c98b8340f682b599;p=clang Use 'GenerateNode()' instead of 'GenerateSink()' when reporting a leak. A leak is not a hard enough bug to stop analyzing a path. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@110471 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/lib/Checker/MallocChecker.cpp b/lib/Checker/MallocChecker.cpp index f6125636f2..5ad1706e05 100644 --- a/lib/Checker/MallocChecker.cpp +++ b/lib/Checker/MallocChecker.cpp @@ -650,9 +650,8 @@ void MallocChecker::VisitLocation(CheckerContext &C, const Stmt *S, SVal l) { SymbolRef Sym = l.getLocSymbolInBase(); if (Sym) { const RefState *RS = C.getState()->get(Sym); - if (RS) - if (RS->isReleased()) { - ExplodedNode *N = C.GenerateSink(); + if (RS && RS->isReleased()) { + if (ExplodedNode *N = C.GenerateNode()) { if (!BT_UseFree) BT_UseFree = new BuiltinBug("Use dynamically allocated memory after" " it is freed."); @@ -661,6 +660,7 @@ void MallocChecker::VisitLocation(CheckerContext &C, const Stmt *S, SVal l) { N); C.EmitReport(R); } + } } }