diff options
author | Zhongxing Xu <xuzhongxing@gmail.com> | 2010-01-11 06:52:53 +0000 |
---|---|---|
committer | Zhongxing Xu <xuzhongxing@gmail.com> | 2010-01-11 06:52:53 +0000 |
commit | cbbf85543283e66935edaee86a7d9e929a8bd0b2 (patch) | |
tree | 513b7998672e28ba4eaa0a89a61ed557cf9962c7 /clang/lib/Analysis/SVals.cpp | |
parent | 0a85420409670db429b1d70a1801f0a543541b3a (diff) | |
download | bcm5719-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.cpp | 4 |
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; } |