[libc][NFC] Make strchr and strrchr more consistent
Reviewed By: sivachandra
Differential Revision: https://reviews.llvm.org/D110581
GitOrigin-RevId: 43c543aab7e3e6d5727097600ef13a352d1fb4e9
diff --git a/src/string/strchr.cpp b/src/string/strchr.cpp
index 6288b64..ab663ea 100644
--- a/src/string/strchr.cpp
+++ b/src/string/strchr.cpp
@@ -14,12 +14,10 @@
// TODO: Look at performance benefits of comparing words.
LLVM_LIBC_FUNCTION(char *, strchr, (const char *src, int c)) {
- unsigned char *str =
- const_cast<unsigned char *>(reinterpret_cast<const unsigned char *>(src));
- const unsigned char ch = c;
- for (; *str && *str != ch; ++str)
+ const char ch = c;
+ for (; *src && *src != ch; ++src)
;
- return *str == ch ? reinterpret_cast<char *>(str) : nullptr;
+ return *src == ch ? const_cast<char *>(src) : nullptr;
}
} // namespace __llvm_libc
diff --git a/src/string/strrchr.cpp b/src/string/strrchr.cpp
index 33a638b..b5852ad 100644
--- a/src/string/strrchr.cpp
+++ b/src/string/strrchr.cpp
@@ -15,10 +15,10 @@
LLVM_LIBC_FUNCTION(char *, strrchr, (const char *src, int c)) {
const char ch = c;
char *last_occurrence = nullptr;
- do {
+ for (; *src; ++src) {
if (*src == ch)
last_occurrence = const_cast<char *>(src);
- } while (*src++);
+ }
return last_occurrence;
}