From: Sebastian Redl Date: Tue, 2 Dec 2008 16:47:35 +0000 (+0000) Subject: Make RegionStoreManager::InitializeArray safe against array sizes that don't have... X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=500386194c73b7976894278a7da08ad9b59ec81e;p=clang Make RegionStoreManager::InitializeArray safe against array sizes that don't have pointer width. This may be the case on 64-bit systems. Whether that fact is a bug is a different question, but it's easy to cure the symptom. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@60422 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/lib/Analysis/RegionStore.cpp b/lib/Analysis/RegionStore.cpp index 92f4a6e714..9753b914f2 100644 --- a/lib/Analysis/RegionStore.cpp +++ b/lib/Analysis/RegionStore.cpp @@ -639,7 +639,8 @@ Store RegionStoreManager::InitializeArray(Store store, const TypedRegion* R, llvm::APSInt Size(CAT->getSize(), false); - llvm::APSInt i = getBasicVals().getZeroWithPtrWidth(false); + llvm::APSInt i = getBasicVals().getValue(0, Size.getBitWidth(), + Size.isUnsigned()); // Check if the init expr is a StringLiteral. if (isa(Init)) {