diff options
author | Zhongxing Xu <xuzhongxing@gmail.com> | 2008-10-27 09:00:08 +0000 |
---|---|---|
committer | Zhongxing Xu <xuzhongxing@gmail.com> | 2008-10-27 09:00:08 +0000 |
commit | d03eea038271ab3a3be73e11c8fd7852effcf7f7 (patch) | |
tree | 7e2a42c12c0457af41cbab0c470f4b07199def75 /lib/Analysis/GRSimpleVals.cpp | |
parent | 9d72851fec9e9c62570a027d42701562bbf29751 (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.cpp | 2 |
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(), |