diff --git a/Lex/PPExpressions.cpp b/Lex/PPExpressions.cpp
index bd7dda4..427d95b 100644
--- a/Lex/PPExpressions.cpp
+++ b/Lex/PPExpressions.cpp
@@ -277,7 +277,7 @@
     
     bool Overflow = false;
     if (Result.isUnsigned())
-      Overflow = !Result.isPositive();
+      Overflow = Result.isNegative();
     else if (Result.isMinSignedValue())
       Overflow = true;   // -MININT is the only thing that overflows.
       
@@ -484,7 +484,7 @@
         Overflow = true, ShAmt = LHS.getBitWidth()-1;
       else if (LHS.isUnsigned())
         Overflow = ShAmt > LHS.countLeadingZeros();
-      else if (LHS.isPositive())
+      else if (LHS.isNonNegative())
         Overflow = ShAmt >= LHS.countLeadingZeros(); // Don't allow sign change.
       else
         Overflow = ShAmt >= LHS.countLeadingOnes();
@@ -504,16 +504,16 @@
       Res = LHS + RHS;
       if (LHS.isUnsigned())
         Overflow = Res.ult(LHS);
-      else if (LHS.isPositive() == RHS.isPositive() &&
-               Res.isPositive() != LHS.isPositive())
+      else if (LHS.isNonNegative() == RHS.isNonNegative() &&
+               Res.isNonNegative() != LHS.isNonNegative())
         Overflow = true;  // Overflow for signed addition.
       break;
     case tok::minus:
       Res = LHS - RHS;
       if (LHS.isUnsigned())
         Overflow = Res.ugt(LHS);
-      else if (LHS.isPositive() != RHS.isPositive() &&
-               Res.isPositive() != LHS.isPositive())
+      else if (LHS.isNonNegative() != RHS.isNonNegative() &&
+               Res.isNonNegative() != LHS.isNonNegative())
         Overflow = true;  // Overflow for signed subtraction.
       break;
     case tok::lessequal:
