From ddee68bf6b79c58ac0ca7ee6ded6692f8de14b05 Mon Sep 17 00:00:00 2001 From: Sebastian Redl Date: Mon, 24 Nov 2008 19:39:40 +0000 Subject: [PATCH] Fix the fix of revision 59974. Now array-struct.c passes too. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@59975 91177308-0d34-0410-b5e6-96231b3b80d8 --- lib/Analysis/RegionStore.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/lib/Analysis/RegionStore.cpp b/lib/Analysis/RegionStore.cpp index 747b16d7b6..e2dd176139 100644 --- a/lib/Analysis/RegionStore.cpp +++ b/lib/Analysis/RegionStore.cpp @@ -262,7 +262,8 @@ SVal RegionStoreManager::getLValueElement(const GRState* St, if (CI2->getValue().isUnsigned() || CI2->getValue().getBitWidth() < CI1->getValue().getBitWidth()) { llvm::APSInt SI = CI2->getValue(); - SI.extend(CI1->getValue().getBitWidth()); + if (CI2->getValue().getBitWidth() < CI1->getValue().getBitWidth()) + SI.extend(CI1->getValue().getBitWidth()); SI.setIsSigned(true); SignedInt = nonloc::ConcreteInt(getBasicVals().getValue(SI)); CI2 = cast(&SignedInt); -- 2.40.0