[llvm-commits] [llvm] r75448 - in /llvm/trunk: lib/Support/ConstantRange.cpp unittests/Support/ConstantRangeTest.cpp

Nick Lewycky nicholas at mxc.ca
Sun Jul 12 21:17:24 PDT 2009


Author: nicholas
Date: Sun Jul 12 23:17:23 2009
New Revision: 75448

URL: http://llvm.org/viewvc/llvm-project?rev=75448&view=rev
Log:
'i8 full-range' sign extended to i16 should equal [-128, 128) not [-128, 127).
Found by Daniel Dunbar and KLEE.

Modified:
    llvm/trunk/lib/Support/ConstantRange.cpp
    llvm/trunk/unittests/Support/ConstantRangeTest.cpp

Modified: llvm/trunk/lib/Support/ConstantRange.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Support/ConstantRange.cpp?rev=75448&r1=75447&r2=75448&view=diff

==============================================================================
--- llvm/trunk/lib/Support/ConstantRange.cpp (original)
+++ llvm/trunk/lib/Support/ConstantRange.cpp Sun Jul 12 23:17:23 2009
@@ -505,7 +505,7 @@
   assert(SrcTySize < DstTySize && "Not a value extension");
   if (isFullSet()) {
     return ConstantRange(APInt::getHighBitsSet(DstTySize,DstTySize-SrcTySize+1),
-                         APInt::getLowBitsSet(DstTySize, SrcTySize-1));
+                         APInt::getLowBitsSet(DstTySize, SrcTySize-1) + 1);
   }
 
   APInt L = Lower; L.sext(DstTySize);

Modified: llvm/trunk/unittests/Support/ConstantRangeTest.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/unittests/Support/ConstantRangeTest.cpp?rev=75448&r1=75447&r2=75448&view=diff

==============================================================================
--- llvm/trunk/unittests/Support/ConstantRangeTest.cpp (original)
+++ llvm/trunk/unittests/Support/ConstantRangeTest.cpp Sun Jul 12 23:17:23 2009
@@ -175,7 +175,7 @@
   ConstantRange SSome = Some.signExtend(20);
   ConstantRange SWrap = Wrap.signExtend(20);
   EXPECT_EQ(SFull, ConstantRange(APInt(20, INT16_MIN, true),
-                                 APInt(20, INT16_MAX, true)));
+                                 APInt(20, INT16_MAX + 1, true)));
   EXPECT_TRUE(SEmpty.isEmptySet());
   EXPECT_EQ(SOne, ConstantRange(APInt(One.getLower()).sext(20),
                                 APInt(One.getUpper()).sext(20)));





More information about the llvm-commits mailing list