summaryrefslogtreecommitdiffstats
path: root/clang/lib/Analysis/GRExprEngine.cpp
diff options
context:
space:
mode:
authorTed Kremenek <kremenek@apple.com>2008-04-10 23:44:06 +0000
committerTed Kremenek <kremenek@apple.com>2008-04-10 23:44:06 +0000
commit4b772096947829ee129ebfe53e8955751f843f61 (patch)
treedbdf42f76b8aae62b3ad68fab78a7bb3936bc64d /clang/lib/Analysis/GRExprEngine.cpp
parentde615836f31d032025a98008082652e83c74da01 (diff)
downloadbcm5719-llvm-4b772096947829ee129ebfe53e8955751f843f61.tar.gz
bcm5719-llvm-4b772096947829ee129ebfe53e8955751f843f61.zip
Fixed some logic errors in the CF ref count checker; we now can detect simple
use-after-release errors. Added test case. llvm-svn: 49509
Diffstat (limited to 'clang/lib/Analysis/GRExprEngine.cpp')
-rw-r--r--clang/lib/Analysis/GRExprEngine.cpp2
1 files changed, 2 insertions, 0 deletions
diff --git a/clang/lib/Analysis/GRExprEngine.cpp b/clang/lib/Analysis/GRExprEngine.cpp
index 6d4217774d3..3211da29189 100644
--- a/clang/lib/Analysis/GRExprEngine.cpp
+++ b/clang/lib/Analysis/GRExprEngine.cpp
@@ -678,6 +678,8 @@ void GRExprEngine::VisitCall(CallExpr* CE, NodeTy* Pred,
unsigned size = Dst.size();
+ SaveAndRestore<bool> OldSink(Builder->BuildSinks);
+
EvalCall(Dst, CE, cast<LVal>(L), *DI);
if (!Builder->BuildSinks && Dst.size() == size)
OpenPOWER on IntegriCloud