forked from OSchip/llvm-project
[libc][NFC] Add explicit casts to ctype functions
Reviewed By: sivachandra Differential Revision: https://reviews.llvm.org/D106902
This commit is contained in:
parent
e100a41bbe
commit
9cdd4ea06f
|
@ -18,19 +18,21 @@ namespace internal {
|
|||
// of a function call by inlining them.
|
||||
// ------------------------------------------------------
|
||||
|
||||
static constexpr int isalpha(unsigned ch) { return (ch | 32) - 'a' < 26; }
|
||||
static constexpr bool isalpha(unsigned ch) { return (ch | 32) - 'a' < 26; }
|
||||
|
||||
static constexpr int isdigit(unsigned ch) { return (ch - '0') < 10; }
|
||||
static constexpr bool isdigit(unsigned ch) { return (ch - '0') < 10; }
|
||||
|
||||
static constexpr int isalnum(unsigned ch) { return isalpha(ch) || isdigit(ch); }
|
||||
static constexpr bool isalnum(unsigned ch) {
|
||||
return isalpha(ch) || isdigit(ch);
|
||||
}
|
||||
|
||||
static constexpr int isgraph(unsigned ch) { return 0x20 < ch && ch < 0x7f; }
|
||||
static constexpr bool isgraph(unsigned ch) { return 0x20 < ch && ch < 0x7f; }
|
||||
|
||||
static constexpr int islower(unsigned ch) { return (ch - 'a') < 26; }
|
||||
static constexpr bool islower(unsigned ch) { return (ch - 'a') < 26; }
|
||||
|
||||
static constexpr int isupper(unsigned ch) { return (ch - 'A') < 26; }
|
||||
static constexpr bool isupper(unsigned ch) { return (ch - 'A') < 26; }
|
||||
|
||||
static constexpr int isspace(unsigned ch) {
|
||||
static constexpr bool isspace(unsigned ch) {
|
||||
return ch == ' ' || (ch - '\t') < 5;
|
||||
}
|
||||
|
||||
|
|
|
@ -15,6 +15,8 @@ namespace __llvm_libc {
|
|||
|
||||
// TODO: Currently restricted to default locale.
|
||||
// These should be extended using locale information.
|
||||
LLVM_LIBC_FUNCTION(int, isalnum, (int c)) { return internal::isalnum(c); }
|
||||
LLVM_LIBC_FUNCTION(int, isalnum, (int c)) {
|
||||
return static_cast<int>(internal::isalnum(static_cast<unsigned>(c)));
|
||||
}
|
||||
|
||||
} // namespace __llvm_libc
|
||||
|
|
|
@ -15,6 +15,8 @@ namespace __llvm_libc {
|
|||
|
||||
// TODO: Currently restricted to default locale.
|
||||
// These should be extended using locale information.
|
||||
LLVM_LIBC_FUNCTION(int, isalpha, (int c)) { return internal::isalpha(c); }
|
||||
LLVM_LIBC_FUNCTION(int, isalpha, (int c)) {
|
||||
return static_cast<int>(internal::isalpha(static_cast<unsigned>(c)));
|
||||
}
|
||||
|
||||
} // namespace __llvm_libc
|
||||
|
|
|
@ -12,6 +12,8 @@
|
|||
|
||||
namespace __llvm_libc {
|
||||
|
||||
LLVM_LIBC_FUNCTION(int, isascii, (int c)) { return (c & (~0x7f)) == 0; }
|
||||
LLVM_LIBC_FUNCTION(int, isascii, (int c)) {
|
||||
return static_cast<int>((c & (~0x7f)) == 0);
|
||||
}
|
||||
|
||||
} // namespace __llvm_libc
|
||||
|
|
|
@ -15,8 +15,8 @@ namespace __llvm_libc {
|
|||
// TODO: Currently restricted to default locale.
|
||||
// These should be extended using locale information.
|
||||
LLVM_LIBC_FUNCTION(int, isblank, (int c)) {
|
||||
const unsigned char ch = static_cast<char>(c);
|
||||
return ch == ' ' || ch == '\t';
|
||||
const unsigned char ch = static_cast<unsigned char>(c);
|
||||
return static_cast<int>(ch == ' ' || ch == '\t');
|
||||
}
|
||||
|
||||
} // namespace __llvm_libc
|
||||
|
|
|
@ -15,8 +15,8 @@ namespace __llvm_libc {
|
|||
// TODO: Currently restricted to default locale.
|
||||
// These should be extended using locale information.
|
||||
LLVM_LIBC_FUNCTION(int, iscntrl, (int c)) {
|
||||
const unsigned char ch = static_cast<char>(c);
|
||||
return ch < 0x20 || ch == 0x7f;
|
||||
const unsigned char ch = static_cast<unsigned char>(c);
|
||||
return static_cast<int>(ch < 0x20 || ch == 0x7f);
|
||||
}
|
||||
|
||||
} // namespace __llvm_libc
|
||||
|
|
|
@ -14,6 +14,8 @@ namespace __llvm_libc {
|
|||
|
||||
// TODO: Currently restricted to default locale.
|
||||
// These should be extended using locale information.
|
||||
LLVM_LIBC_FUNCTION(int, isdigit, (int c)) { return internal::isdigit(c); }
|
||||
LLVM_LIBC_FUNCTION(int, isdigit, (int c)) {
|
||||
return static_cast<int>(internal::isdigit(static_cast<unsigned>(c)));
|
||||
}
|
||||
|
||||
} // namespace __llvm_libc
|
||||
|
|
|
@ -15,6 +15,8 @@ namespace __llvm_libc {
|
|||
|
||||
// TODO: Currently restricted to default locale.
|
||||
// These should be extended using locale information.
|
||||
LLVM_LIBC_FUNCTION(int, isgraph, (int c)) { return internal::isgraph(c); }
|
||||
LLVM_LIBC_FUNCTION(int, isgraph, (int c)) {
|
||||
return static_cast<int>(internal::isgraph(static_cast<unsigned>(c)));
|
||||
}
|
||||
|
||||
} // namespace __llvm_libc
|
||||
|
|
|
@ -15,6 +15,8 @@ namespace __llvm_libc {
|
|||
|
||||
// TODO: Currently restricted to default locale.
|
||||
// These should be extended using locale information.
|
||||
LLVM_LIBC_FUNCTION(int, islower, (int c)) { return internal::islower(c); }
|
||||
LLVM_LIBC_FUNCTION(int, islower, (int c)) {
|
||||
return static_cast<int>(internal::islower(static_cast<unsigned>(c)));
|
||||
}
|
||||
|
||||
} // namespace __llvm_libc
|
||||
|
|
|
@ -15,8 +15,8 @@ namespace __llvm_libc {
|
|||
// TODO: Currently restricted to default locale.
|
||||
// These should be extended using locale information.
|
||||
LLVM_LIBC_FUNCTION(int, isprint, (int c)) {
|
||||
const unsigned ch = c;
|
||||
return (ch - ' ') < 95;
|
||||
const unsigned ch = static_cast<unsigned>(c);
|
||||
return static_cast<int>((ch - ' ') < 95);
|
||||
}
|
||||
|
||||
} // namespace __llvm_libc
|
||||
|
|
|
@ -16,7 +16,8 @@ namespace __llvm_libc {
|
|||
// TODO: Currently restricted to default locale.
|
||||
// These should be extended using locale information.
|
||||
LLVM_LIBC_FUNCTION(int, ispunct, (int c)) {
|
||||
return !internal::isalnum(c) && internal::isgraph(c);
|
||||
const unsigned ch = static_cast<unsigned>(c);
|
||||
return static_cast<int>(!internal::isalnum(ch) && internal::isgraph(ch));
|
||||
}
|
||||
|
||||
} // namespace __llvm_libc
|
||||
|
|
|
@ -15,6 +15,8 @@ namespace __llvm_libc {
|
|||
|
||||
// TODO: Currently restricted to default locale.
|
||||
// These should be extended using locale information.
|
||||
LLVM_LIBC_FUNCTION(int, isspace, (int c)) { return internal::isspace(c); }
|
||||
LLVM_LIBC_FUNCTION(int, isspace, (int c)) {
|
||||
return static_cast<int>(internal::isspace(static_cast<unsigned>(c)));
|
||||
}
|
||||
|
||||
} // namespace __llvm_libc
|
||||
|
|
|
@ -15,6 +15,8 @@ namespace __llvm_libc {
|
|||
|
||||
// TODO: Currently restricted to default locale.
|
||||
// These should be extended using locale information.
|
||||
LLVM_LIBC_FUNCTION(int, isupper, (int c)) { return internal::isupper(c); }
|
||||
LLVM_LIBC_FUNCTION(int, isupper, (int c)) {
|
||||
return static_cast<int>(internal::isupper(static_cast<unsigned>(c)));
|
||||
}
|
||||
|
||||
} // namespace __llvm_libc
|
||||
|
|
|
@ -16,8 +16,8 @@ namespace __llvm_libc {
|
|||
// TODO: Currently restricted to default locale.
|
||||
// These should be extended using locale information.
|
||||
LLVM_LIBC_FUNCTION(int, isxdigit, (int c)) {
|
||||
const unsigned ch = c;
|
||||
return internal::isdigit(ch) || (ch | 32) - 'a' < 6;
|
||||
const unsigned ch = static_cast<unsigned>(c);
|
||||
return static_cast<int>(internal::isdigit(ch) || (ch | 32) - 'a' < 6);
|
||||
}
|
||||
|
||||
} // namespace __llvm_libc
|
||||
|
|
|
@ -17,7 +17,7 @@ namespace __llvm_libc {
|
|||
// These should be extended using locale information.
|
||||
LLVM_LIBC_FUNCTION(int, tolower, (int c)) {
|
||||
if (internal::isupper(c))
|
||||
return c + 'a' - 'A';
|
||||
return c + ('a' - 'A');
|
||||
return c;
|
||||
}
|
||||
|
||||
|
|
|
@ -17,7 +17,7 @@ namespace __llvm_libc {
|
|||
// These should be extended using locale information.
|
||||
LLVM_LIBC_FUNCTION(int, toupper, (int c)) {
|
||||
if (internal::islower(c))
|
||||
return c + 'A' - 'a';
|
||||
return c - ('a' - 'A');
|
||||
return c;
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue