summaryrefslogtreecommitdiffstats
path: root/clang/lib/Analysis/SVals.cpp
diff options
context:
space:
mode:
authorZhongxing Xu <xuzhongxing@gmail.com>2010-01-11 06:52:53 +0000
committerZhongxing Xu <xuzhongxing@gmail.com>2010-01-11 06:52:53 +0000
commitcbbf85543283e66935edaee86a7d9e929a8bd0b2 (patch)
tree513b7998672e28ba4eaa0a89a61ed557cf9962c7 /clang/lib/Analysis/SVals.cpp
parent0a85420409670db429b1d70a1801f0a543541b3a (diff)
downloadbcm5719-llvm-cbbf85543283e66935edaee86a7d9e929a8bd0b2.tar.gz
bcm5719-llvm-cbbf85543283e66935edaee86a7d9e929a8bd0b2.zip
Enhance SVals::getAsRegion: get the region that is converted to an integer.
This with previous patch fixes a OSAtomic test case. llvm-svn: 93146
Diffstat (limited to 'clang/lib/Analysis/SVals.cpp')
-rw-r--r--clang/lib/Analysis/SVals.cpp4
1 files changed, 4 insertions, 0 deletions
diff --git a/clang/lib/Analysis/SVals.cpp b/clang/lib/Analysis/SVals.cpp
index 9163b272527..fbdb73b0ef2 100644
--- a/clang/lib/Analysis/SVals.cpp
+++ b/clang/lib/Analysis/SVals.cpp
@@ -97,6 +97,10 @@ const MemRegion *SVal::getAsRegion() const {
if (const loc::MemRegionVal *X = dyn_cast<loc::MemRegionVal>(this))
return X->getRegion();
+ if (const nonloc::LocAsInteger *X = dyn_cast<nonloc::LocAsInteger>(this)) {
+ return X->getLoc().getAsRegion();
+ }
+
return 0;
}
OpenPOWER on IntegriCloud