From: Ted Kremenek Date: Wed, 10 Mar 2010 19:09:34 +0000 (+0000) Subject: Remove '#if 0' code. Lazy compound values have proven their worth. X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=a03430edf6627f4d499e974ddeafc536cc5b70d7;p=clang Remove '#if 0' code. Lazy compound values have proven their worth. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@98175 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/lib/Checker/RegionStore.cpp b/lib/Checker/RegionStore.cpp index 91c3a15f44..b320170325 100644 --- a/lib/Checker/RegionStore.cpp +++ b/lib/Checker/RegionStore.cpp @@ -29,8 +29,6 @@ using namespace clang; -#define USE_EXPLICIT_COMPOUND 0 - //===----------------------------------------------------------------------===// // Representation of binding keys. //===----------------------------------------------------------------------===// @@ -1341,49 +1339,12 @@ SVal RegionStoreManager::RetrieveStruct(Store store, const TypedRegion* R) { RecordDecl* RD = RT->getDecl(); assert(RD->isDefinition()); (void)RD; -#if USE_EXPLICIT_COMPOUND - llvm::ImmutableList StructVal = getBasicVals().getEmptySValList(); - - // FIXME: We shouldn't use a std::vector. If RecordDecl doesn't have a - // reverse iterator, we should implement one. - std::vector Fields(RD->field_begin(), RD->field_end()); - - for (std::vector::reverse_iterator Field = Fields.rbegin(), - FieldEnd = Fields.rend(); - Field != FieldEnd; ++Field) { - FieldRegion* FR = MRMgr.getFieldRegion(*Field, R); - QualType FTy = (*Field)->getType(); - SVal FieldValue = Retrieve(store, loc::MemRegionVal(FR), FTy).getSVal(); - StructVal = getBasicVals().consVals(FieldValue, StructVal); - } - - return ValMgr.makeCompoundVal(T, StructVal); -#else return ValMgr.makeLazyCompoundVal(store, R); -#endif } SVal RegionStoreManager::RetrieveArray(Store store, const TypedRegion * R) { -#if USE_EXPLICIT_COMPOUND - QualType T = R->getValueType(getContext()); - ConstantArrayType* CAT = cast(T.getTypePtr()); - - llvm::ImmutableList ArrayVal = getBasicVals().getEmptySValList(); - uint64_t size = CAT->getSize().getZExtValue(); - for (uint64_t i = 0; i < size; ++i) { - SVal Idx = ValMgr.makeArrayIndex(i); - ElementRegion* ER = MRMgr.getElementRegion(CAT->getElementType(), Idx, R, - getContext()); - QualType ETy = ER->getElementType(); - SVal ElementVal = Retrieve(store, loc::MemRegionVal(ER), ETy).getSVal(); - ArrayVal = getBasicVals().consVals(ElementVal, ArrayVal); - } - - return ValMgr.makeCompoundVal(T, ArrayVal); -#else assert(isa(R->getValueType(getContext()))); return ValMgr.makeLazyCompoundVal(store, R); -#endif } //===----------------------------------------------------------------------===//