]> granicus.if.org Git - clang/commitdiff
Only track integer and pointer values.
authorZhongxing Xu <xuzhongxing@gmail.com>
Mon, 9 Mar 2009 09:31:22 +0000 (09:31 +0000)
committerZhongxing Xu <xuzhongxing@gmail.com>
Mon, 9 Mar 2009 09:31:22 +0000 (09:31 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@66419 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Analysis/RegionStore.cpp

index 433b05d996f3f90347feb31dd821e8dd29b13afc..4c54721e3495bce82c6774219f4f1491c0dd790c 100644 (file)
@@ -751,8 +751,11 @@ SVal RegionStoreManager::Retrieve(const GRState* St, Loc L, QualType T) {
     return UndefinedVal();
   }
 
-  // All other values are symbolic.
-  return SVal::GetRValueSymbolVal(getSymbolManager(), R);
+  // All other integer values are symbolic.
+  if (Loc::IsLocType(RTy) || RTy->isIntegerType())
+    return SVal::GetRValueSymbolVal(getSymbolManager(), R);
+  else
+    return UnknownVal();
 }
 
 SVal RegionStoreManager::RetrieveStruct(const GRState* St,const TypedRegion* R){