summaryrefslogtreecommitdiffstats
path: root/llvm
diff options
context:
space:
mode:
authorBenjamin Kramer <benny.kra@googlemail.com>2010-08-26 15:25:35 +0000
committerBenjamin Kramer <benny.kra@googlemail.com>2010-08-26 15:25:35 +0000
commit9bf0380a54f221de9c598c54d9a0554b893de64c (patch)
treea72e6cc81a49a1434e747cd70856fa5be2cabba3 /llvm
parent7648fb464b339b4055e1fd3323716246eb135c67 (diff)
downloadbcm5719-llvm-9bf0380a54f221de9c598c54d9a0554b893de64c.tar.gz
bcm5719-llvm-9bf0380a54f221de9c598c54d9a0554b893de64c.zip
StringRef::compare_numeric also differed from StringRef::compare for characters > 127.
llvm-svn: 112189
Diffstat (limited to 'llvm')
-rw-r--r--llvm/lib/Support/StringRef.cpp2
-rw-r--r--llvm/unittests/ADT/StringRefTest.cpp1
2 files changed, 2 insertions, 1 deletions
diff --git a/llvm/lib/Support/StringRef.cpp b/llvm/lib/Support/StringRef.cpp
index c33ca6a2ebf..46f26b242aa 100644
--- a/llvm/lib/Support/StringRef.cpp
+++ b/llvm/lib/Support/StringRef.cpp
@@ -59,7 +59,7 @@ int StringRef::compare_numeric(StringRef RHS) const {
break;
}
}
- return Data[I] < RHS.Data[I] ? -1 : 1;
+ return (unsigned char)Data[I] < (unsigned char)RHS.Data[I] ? -1 : 1;
}
if (Length == RHS.Length)
return 0;
diff --git a/llvm/unittests/ADT/StringRefTest.cpp b/llvm/unittests/ADT/StringRefTest.cpp
index de5c349cd60..7e4d0dcd413 100644
--- a/llvm/unittests/ADT/StringRefTest.cpp
+++ b/llvm/unittests/ADT/StringRefTest.cpp
@@ -72,6 +72,7 @@ TEST(StringRefTest, StringOps) {
EXPECT_EQ( 0, StringRef("10a").compare_numeric("10a"));
EXPECT_EQ( 1, StringRef("2").compare_numeric("1"));
EXPECT_EQ( 0, StringRef("llvm_v1i64_ty").compare_numeric("llvm_v1i64_ty"));
+ EXPECT_EQ( 1, StringRef("\xFF").compare_numeric("\1"));
}
TEST(StringRefTest, Operators) {
OpenPOWER on IntegriCloud