summaryrefslogtreecommitdiffstats
path: root/clang/lib
diff options
context:
space:
mode:
authorZhongxing Xu <xuzhongxing@gmail.com>2010-01-11 07:40:00 +0000
committerZhongxing Xu <xuzhongxing@gmail.com>2010-01-11 07:40:00 +0000
commite47550e45270480a164e8f47cc6c09aee4e0cb51 (patch)
tree043a3dd0734d07099c70916ad42078973f34403f /clang/lib
parent9518869423bcb97673d8f34ab818d3d441c55951 (diff)
downloadbcm5719-llvm-e47550e45270480a164e8f47cc6c09aee4e0cb51.tar.gz
bcm5719-llvm-e47550e45270480a164e8f47cc6c09aee4e0cb51.zip
Enhance ScanReachableSymbols::scan(). Now another OSAtomic test case passes.
The old test case has a little mistake. llvm-svn: 93148
Diffstat (limited to 'clang/lib')
-rw-r--r--clang/lib/Analysis/GRState.cpp3
1 files changed, 3 insertions, 0 deletions
diff --git a/clang/lib/Analysis/GRState.cpp b/clang/lib/Analysis/GRState.cpp
index 7415fa5f67e..051d465f41b 100644
--- a/clang/lib/Analysis/GRState.cpp
+++ b/clang/lib/Analysis/GRState.cpp
@@ -267,6 +267,9 @@ bool ScanReachableSymbols::scan(SVal val) {
if (loc::MemRegionVal *X = dyn_cast<loc::MemRegionVal>(&val))
return scan(X->getRegion());
+ if (nonloc::LocAsInteger *X = dyn_cast<nonloc::LocAsInteger>(&val))
+ return scan(X->getLoc());
+
if (SymbolRef Sym = val.getAsSymbol())
return visitor.VisitSymbol(Sym);
OpenPOWER on IntegriCloud