Implement FIXME: GRStateManager::scanReachableSymbols now supports scanning MemRegions.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@65919 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/lib/Analysis/RegionStore.cpp b/lib/Analysis/RegionStore.cpp
index 0671a80..6238ff2 100644
--- a/lib/Analysis/RegionStore.cpp
+++ b/lib/Analysis/RegionStore.cpp
@@ -121,18 +121,20 @@
~RegionStoreSubRegionMap() {}
- void iterSubRegions(const MemRegion* Parent, Visitor& V) const {
+ bool iterSubRegions(const MemRegion* Parent, Visitor& V) const {
Map::iterator I = M.find(Parent);
if (I == M.end())
- return;
+ return true;
llvm::ImmutableSet<const MemRegion*> S = I->second;
for (llvm::ImmutableSet<const MemRegion*>::iterator SI=S.begin(),SE=S.end();
SI != SE; ++SI) {
if (!V.Visit(Parent, *SI))
- return;
+ return false;
}
+
+ return true;
}
};
@@ -600,10 +602,8 @@
SVal RegionStoreManager::EvalBinOp(BinaryOperator::Opcode Op, Loc L, NonLoc R) {
// Assume the base location is MemRegionVal(ElementRegion).
-
- if (!isa<loc::MemRegionVal>(L)) {
+ if (!isa<loc::MemRegionVal>(L))
return UnknownVal();
- }
const MemRegion* MR = cast<loc::MemRegionVal>(L).getRegion();
@@ -621,8 +621,9 @@
ER->getArrayRegion());
return Loc::MakeVal(NewER);
- } else
- return UnknownVal();
+ }
+
+ return UnknownVal();
}
SVal RegionStoreManager::Retrieve(const GRState* St, Loc L, QualType T) {