]> granicus.if.org Git - clang/commitdiff
Fix the build
authorDavid Majnemer <david.majnemer@gmail.com>
Mon, 13 Oct 2014 22:18:22 +0000 (22:18 +0000)
committerDavid Majnemer <david.majnemer@gmail.com>
Mon, 13 Oct 2014 22:18:22 +0000 (22:18 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@219637 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Lex/PPExpressions.cpp

index a96fb4edc3ed616815f27421a27fef36e49daae8..8408aa2314d07a1124d00614c323dc1b9b78ea42 100644 (file)
@@ -599,15 +599,10 @@ static bool EvaluateDirectiveSubExpr(PPValue &LHS, unsigned MinPrec,
       break;
     case tok::lessless: {
       // Determine whether overflow is about to happen.
-      unsigned ShAmt = static_cast<unsigned>(RHS.Val.getLimitedValue());
-      if (LHS.isUnsigned()) {
-        Overflow = ShAmt >= LHS.Val.getBitWidth();
-        if (Overflow)
-          ShAmt = LHS.Val.getBitWidth()-1;
-        Res = LHS.Val << ShAmt;
-      } else {
-        Res = llvm::APSInt(LHS.Val.sshl_ov(ShAmt, Overflow), false);
-      }
+      if (LHS.isUnsigned())
+        Res = LHS.Val.ushl_ov(RHS.Val, Overflow);
+      else
+        Res = llvm::APSInt(LHS.Val.sshl_ov(RHS.Val, Overflow), false);
       break;
     }
     case tok::greatergreater: {