diff --git a/include/llvm/Support/ScaledNumber.h b/include/llvm/Support/ScaledNumber.h index 6a93623a8e9..240d5b64aa8 100644 --- a/include/llvm/Support/ScaledNumber.h +++ b/include/llvm/Support/ScaledNumber.h @@ -242,6 +242,8 @@ int compareImpl(uint64_t L, uint64_t R, int ScaleDiff); /// for greater than. template int compare(DigitsT LDigits, int16_t LScale, DigitsT RDigits, int16_t RScale) { + static_assert(!std::numeric_limits::is_signed, "expected unsigned"); + // Check for zero. if (!LDigits) return RDigits ? -1 : 0; diff --git a/unittests/Support/ScaledNumberTest.cpp b/unittests/Support/ScaledNumberTest.cpp index f6d7a44754f..4a274d7e50e 100644 --- a/unittests/Support/ScaledNumberTest.cpp +++ b/unittests/Support/ScaledNumberTest.cpp @@ -285,7 +285,7 @@ TEST(ScaledNumberHelpersTest, getLgCeiling) { EXPECT_EQ(INT32_MIN, getLgCeiling(UINT64_C(0), 1)); } -TEST(ScaledNumberHelpersTest, Compare) { +TEST(ScaledNumberHelpersTest, compare) { EXPECT_EQ(0, compare(UINT32_C(0), 0, UINT32_C(0), 1)); EXPECT_EQ(0, compare(UINT32_C(0), 0, UINT32_C(0), -10)); EXPECT_EQ(0, compare(UINT32_C(0), 0, UINT32_C(0), 20));