diff options
author | Zhongxing Xu <xuzhongxing@gmail.com> | 2010-01-11 07:40:00 +0000 |
---|---|---|
committer | Zhongxing Xu <xuzhongxing@gmail.com> | 2010-01-11 07:40:00 +0000 |
commit | e47550e45270480a164e8f47cc6c09aee4e0cb51 (patch) | |
tree | 043a3dd0734d07099c70916ad42078973f34403f /clang/lib | |
parent | 9518869423bcb97673d8f34ab818d3d441c55951 (diff) | |
download | bcm5719-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.cpp | 3 |
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); |