1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-11-23 11:13:28 +01:00

Speculative fix for build failures due to consumeInteger.

A recent patch added support for consumeInteger() and made
getAsInteger delegate to this function.  A few buildbots are
failing as a result with an assertion failure.  On a hunch,
I tested what happens if I call getAsInteger() on an empty
string, and sure enough it crashes the same way that the
buildbots are crashing.

I confirmed that getAsInteger() on an empty string did not
crash before my patch, so I suspect this to be the cause.

I also added a unit test for the empty string.

llvm-svn: 282170
This commit is contained in:
Zachary Turner 2016-09-22 15:55:05 +00:00
parent 0a87104c7e
commit 986cc88263
2 changed files with 5 additions and 1 deletions

View File

@ -351,6 +351,9 @@ size_t StringRef::count(StringRef Str) const {
} }
static unsigned GetAutoSenseRadix(StringRef &Str) { static unsigned GetAutoSenseRadix(StringRef &Str) {
if (Str.empty())
return 10;
if (Str.startswith("0x") || Str.startswith("0X")) { if (Str.startswith("0x") || Str.startswith("0X")) {
Str = Str.substr(2); Str = Str.substr(2);
return 16; return 16;

View File

@ -571,7 +571,8 @@ TEST(StringRefTest, getAsInteger) {
static const char* BadStrings[] = { static const char* BadStrings[] = {
"18446744073709551617" // value just over max "" // empty string
, "18446744073709551617" // value just over max
, "123456789012345678901" // value way too large , "123456789012345678901" // value way too large
, "4t23v" // illegal decimal characters , "4t23v" // illegal decimal characters
, "0x123W56" // illegal hex characters , "0x123W56" // illegal hex characters