Do unsigned char comparisons in StringRef::compare_lower to be more consistent with compare in corner cases.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112185 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Benjamin Kramer
2010-08-26 14:21:08 +00:00
parent 01b1e1c958
commit 0043e35b82
2 changed files with 12 additions and 4 deletions

View File

@ -31,14 +31,14 @@ static bool ascii_isdigit(char x) {
/// compare_lower - Compare strings, ignoring case.
int StringRef::compare_lower(StringRef RHS) const {
for (size_t I = 0, E = min(Length, RHS.Length); I != E; ++I) {
char LHC = ascii_tolower(Data[I]);
char RHC = ascii_tolower(RHS.Data[I]);
unsigned char LHC = ascii_tolower(Data[I]);
unsigned char RHC = ascii_tolower(RHS.Data[I]);
if (LHC != RHC)
return LHC < RHC ? -1 : 1;
}
if (Length == RHS.Length)
return 0;
return 0;
return Length < RHS.Length ? -1 : 1;
}
@ -62,7 +62,7 @@ int StringRef::compare_numeric(StringRef RHS) const {
return Data[I] < RHS.Data[I] ? -1 : 1;
}
if (Length == RHS.Length)
return 0;
return 0;
return Length < RHS.Length ? -1 : 1;
}