diff --git a/lib/Support/APInt.cpp b/lib/Support/APInt.cpp index 506225f0640..143ded920e2 100644 --- a/lib/Support/APInt.cpp +++ b/lib/Support/APInt.cpp @@ -2189,7 +2189,7 @@ void APInt::toString(SmallVectorImpl &Str, unsigned Radix, bool Signed, bool formatAsCLiteral) const { assert((Radix == 10 || Radix == 8 || Radix == 16 || Radix == 2 || Radix == 36) && - "Radix should be 2, 8, 10, or 16!"); + "Radix should be 2, 8, 10, 16, or 36!"); const char *Prefix = ""; if (formatAsCLiteral) { @@ -2202,9 +2202,13 @@ void APInt::toString(SmallVectorImpl &Str, unsigned Radix, case 8: Prefix = "0"; break; + case 10: + break; // No prefix case 16: Prefix = "0x"; break; + default: + llvm_unreachable("Invalid radix!"); } } diff --git a/unittests/ADT/APIntTest.cpp b/unittests/ADT/APIntTest.cpp index 490811deb8f..2195007f255 100644 --- a/unittests/ADT/APIntTest.cpp +++ b/unittests/ADT/APIntTest.cpp @@ -354,7 +354,7 @@ TEST(APIntTest, toString) { APInt(8, 0).toString(S, 16, true, true); EXPECT_EQ(S.str().str(), "0x0"); S.clear(); - APInt(8, 0).toString(S, 36, true, true); + APInt(8, 0).toString(S, 36, true, false); EXPECT_EQ(S.str().str(), "0"); S.clear(); @@ -371,7 +371,7 @@ TEST(APIntTest, toString) { APInt(8, 255, isSigned).toString(S, 16, isSigned, true); EXPECT_EQ(S.str().str(), "0xFF"); S.clear(); - APInt(8, 255, isSigned).toString(S, 36, isSigned, true); + APInt(8, 255, isSigned).toString(S, 36, isSigned, false); EXPECT_EQ(S.str().str(), "73"); S.clear(); @@ -388,7 +388,7 @@ TEST(APIntTest, toString) { APInt(8, 255, isSigned).toString(S, 16, isSigned, true); EXPECT_EQ(S.str().str(), "-0x1"); S.clear(); - APInt(8, 255, isSigned).toString(S, 36, isSigned, true); + APInt(8, 255, isSigned).toString(S, 36, isSigned, false); EXPECT_EQ(S.str().str(), "-1"); S.clear(); }