aboutsummaryrefslogtreecommitdiff
path: root/lib/Analysis/CFRefCount.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'lib/Analysis/CFRefCount.cpp')
-rw-r--r--lib/Analysis/CFRefCount.cpp7
1 files changed, 5 insertions, 2 deletions
diff --git a/lib/Analysis/CFRefCount.cpp b/lib/Analysis/CFRefCount.cpp
index 2d5cb5f5b8..6f1b1036b3 100644
--- a/lib/Analysis/CFRefCount.cpp
+++ b/lib/Analysis/CFRefCount.cpp
@@ -1678,8 +1678,11 @@ void CFRefCount::EvalSummary(ExplodedNodeSet<GRState>& Dst,
#endif
// FIXME: Add a flag to the checker where allocations are allowed to fail.
- if (RE.getKind() == RetEffect::OwnedAllocatedSymbol)
- state = state.AddNE(Sym, Eng.getBasicVals().getZeroWithPtrWidth());
+ if (RE.getKind() == RetEffect::OwnedAllocatedSymbol) {
+ bool isFeasible;
+ state = state.Assume(loc::SymbolVal(Sym), true, isFeasible);
+ assert(isFeasible && "Cannot assume fresh symbol is non-null.");
+ }
break;
}