Fix undefined behavior.
authorAhmed Charles <ace2001ac@gmail.com>
Fri, 24 Feb 2012 19:06:15 +0000 (19:06 +0000)
committerAhmed Charles <ace2001ac@gmail.com>
Fri, 24 Feb 2012 19:06:15 +0000 (19:06 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@151385 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Support/APInt.cpp

index c580dd3ba3e40352a557b13eb243e0156a847639..0d4e0f9f752aff20b341283196aacadcb2e871b8 100644 (file)
@@ -1234,7 +1234,7 @@ APInt APInt::lshr(const APInt &shiftAmt) const {
 /// @brief Logical right-shift function.
 APInt APInt::lshr(unsigned shiftAmt) const {
   if (isSingleWord()) {
 /// @brief Logical right-shift function.
 APInt APInt::lshr(unsigned shiftAmt) const {
   if (isSingleWord()) {
-    if (shiftAmt == BitWidth)
+    if (shiftAmt >= BitWidth)
       return APInt(BitWidth, 0);
     else
       return APInt(BitWidth, this->VAL >> shiftAmt);
       return APInt(BitWidth, 0);
     else
       return APInt(BitWidth, this->VAL >> shiftAmt);