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

llvm-svn: 168023
This commit is contained in:
Richard Trieu
2012-11-15 03:43:50 +00:00
parent 0f9f019ff8
commit 03c3a2f5bb
2 changed files with 2 additions and 1 deletions

View File

@@ -4385,7 +4385,7 @@ static void DiagnoseOutOfRangeComparison(Sema &S, BinaryOperator *E,
// 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