aboutsummaryrefslogtreecommitdiff
path: root/lib/StaticAnalyzer/Core/RegionStore.cpp
diff options
context:
space:
mode:
authorTed Kremenek <kremenek@apple.com>2012-11-28 05:36:28 +0000
committerTed Kremenek <kremenek@apple.com>2012-11-28 05:36:28 +0000
commit3881866dc782c5e13b21031bd363e93fbf367167 (patch)
tree39a76d03eb8d97f913ee761f6ce212d7429f8785 /lib/StaticAnalyzer/Core/RegionStore.cpp
parent2a82ca255b0f99f6201a75ed52b91fc024f6e9cf (diff)
Remove workaround in RegionStore in r168741 since it is handled more generally by r168757.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@168774 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/StaticAnalyzer/Core/RegionStore.cpp')
-rw-r--r--lib/StaticAnalyzer/Core/RegionStore.cpp18
1 files changed, 8 insertions, 10 deletions
diff --git a/lib/StaticAnalyzer/Core/RegionStore.cpp b/lib/StaticAnalyzer/Core/RegionStore.cpp
index 875a7ce4d4..aed994df41 100644
--- a/lib/StaticAnalyzer/Core/RegionStore.cpp
+++ b/lib/StaticAnalyzer/Core/RegionStore.cpp
@@ -1581,16 +1581,14 @@ StoreRef RegionStoreManager::BindArray(Store store, const TypedValueRegion* R,
Size = CAT->getSize().getZExtValue();
// Check if the init expr is a string literal.
- if (const MemRegion *Reg = Init.getAsRegion()) {
- if (const StringRegion *S = dyn_cast<StringRegion>(Reg)) {
- // Treat the string as a lazy compound value.
- NonLoc V = svalBuilder.makeLazyCompoundVal(StoreRef(store, *this), S);
- return BindAggregate(store, R, V);
- }
- // FIXME: Handle CXXTempObjectRegion, which can occur in cases
- // where a struct contains an array of structs in C++.
- assert(isa<CXXTempObjectRegion>(Reg));
- return BindAggregate(store, R, UnknownVal());
+ if (loc::MemRegionVal *MRV = dyn_cast<loc::MemRegionVal>(&Init)) {
+ const StringRegion *S = cast<StringRegion>(MRV->getRegion());
+
+ // Treat the string as a lazy compound value.
+ nonloc::LazyCompoundVal LCV =
+ cast<nonloc::LazyCompoundVal>(svalBuilder.
+ makeLazyCompoundVal(StoreRef(store, *this), S));
+ return BindAggregate(store, R, LCV);
}
// Handle lazy compound values.