Fix an off-by-one error by switching < to <= in -Wtautological-constant-out-of-range-compare and added test case.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@168023 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/lib/Sema/SemaChecking.cpp b/lib/Sema/SemaChecking.cpp
index 7fd28b6..05fa2a0 100644
--- a/lib/Sema/SemaChecking.cpp
+++ b/lib/Sema/SemaChecking.cpp
@@ -4385,7 +4385,7 @@
       // Check to see if the constant is equivalent to a negative value
       // cast to CommonT.
       if (S.Context.getIntWidth(ConstantT) == S.Context.getIntWidth(CommonT) &&
-          Value.isNegative() && Value.getMinSignedBits() < OtherWidth)
+          Value.isNegative() && Value.getMinSignedBits() <= OtherWidth)
         return;
       // The constant value rests between values that OtherT can represent after
       // conversion.  Relational comparison still works, but equality