aboutsummaryrefslogtreecommitdiff
path: root/lib/Analysis/GRSimpleVals.cpp
diff options
context:
space:
mode:
authorZhongxing Xu <xuzhongxing@gmail.com>2008-10-27 09:00:08 +0000
committerZhongxing Xu <xuzhongxing@gmail.com>2008-10-27 09:00:08 +0000
commitd03eea038271ab3a3be73e11c8fd7852effcf7f7 (patch)
tree7e2a42c12c0457af41cbab0c470f4b07199def75 /lib/Analysis/GRSimpleVals.cpp
parent9d72851fec9e9c62570a027d42701562bbf29751 (diff)
Only loc::MemRegionVal can be modified. This avoids crashing in RegionStore when a function pointer is used as an argument.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@58233 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Analysis/GRSimpleVals.cpp')
-rw-r--r--lib/Analysis/GRSimpleVals.cpp2
1 files changed, 1 insertions, 1 deletions
diff --git a/lib/Analysis/GRSimpleVals.cpp b/lib/Analysis/GRSimpleVals.cpp
index a2a59f3e92..48b25a71f9 100644
--- a/lib/Analysis/GRSimpleVals.cpp
+++ b/lib/Analysis/GRSimpleVals.cpp
@@ -369,7 +369,7 @@ void GRSimpleVals::EvalCall(ExplodedNodeSet<GRState>& Dst,
SVal V = StateMgr.GetSVal(St, *I);
- if (isa<Loc>(V))
+ if (isa<loc::MemRegionVal>(V))
St = StateMgr.SetSVal(St, cast<Loc>(V), UnknownVal());
else if (isa<nonloc::LocAsInteger>(V))
St = StateMgr.SetSVal(St, cast<nonloc::LocAsInteger>(V).getLoc(),