diff options
author | Benjamin Kramer <benny.kra@googlemail.com> | 2010-08-26 15:25:35 +0000 |
---|---|---|
committer | Benjamin Kramer <benny.kra@googlemail.com> | 2010-08-26 15:25:35 +0000 |
commit | a4f776592fc7dc9d63a5ced381966e308933732b (patch) | |
tree | 787398874fb5bf8de47a416ef043948322b5e5bc | |
parent | 30568b08030703702a38652c171cbf9f4b420710 (diff) | |
download | external_llvm-a4f776592fc7dc9d63a5ced381966e308933732b.zip external_llvm-a4f776592fc7dc9d63a5ced381966e308933732b.tar.gz external_llvm-a4f776592fc7dc9d63a5ced381966e308933732b.tar.bz2 |
StringRef::compare_numeric also differed from StringRef::compare for characters > 127.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112189 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r-- | lib/Support/StringRef.cpp | 2 | ||||
-rw-r--r-- | unittests/ADT/StringRefTest.cpp | 1 |
2 files changed, 2 insertions, 1 deletions
diff --git a/lib/Support/StringRef.cpp b/lib/Support/StringRef.cpp index c33ca6a..46f26b2 100644 --- a/lib/Support/StringRef.cpp +++ b/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/unittests/ADT/StringRefTest.cpp b/unittests/ADT/StringRefTest.cpp index de5c349..7e4d0dc 100644 --- a/unittests/ADT/StringRefTest.cpp +++ b/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) { |