From 43c543aab7e3e6d5727097600ef13a352d1fb4e9 Mon Sep 17 00:00:00 2001 From: Michael Jones Date: Mon, 27 Sep 2021 20:23:53 +0000 Subject: [PATCH] [libc][NFC] Make strchr and strrchr more consistent Reviewed By: sivachandra Differential Revision: https://reviews.llvm.org/D110581 --- libc/src/string/strchr.cpp | 8 +++----- libc/src/string/strrchr.cpp | 4 ++-- 2 files changed, 5 insertions(+), 7 deletions(-) diff --git a/libc/src/string/strchr.cpp b/libc/src/string/strchr.cpp index 6288b64..ab663ea 100644 --- a/libc/src/string/strchr.cpp +++ b/libc/src/string/strchr.cpp @@ -14,12 +14,10 @@ namespace __llvm_libc { // TODO: Look at performance benefits of comparing words. LLVM_LIBC_FUNCTION(char *, strchr, (const char *src, int c)) { - unsigned char *str = - const_cast(reinterpret_cast(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(str) : nullptr; + return *src == ch ? const_cast(src) : nullptr; } } // namespace __llvm_libc diff --git a/libc/src/string/strrchr.cpp b/libc/src/string/strrchr.cpp index 33a638ba..b5852ad 100644 --- a/libc/src/string/strrchr.cpp +++ b/libc/src/string/strrchr.cpp @@ -15,10 +15,10 @@ namespace __llvm_libc { 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(src); - } while (*src++); + } return last_occurrence; } -- 2.7.4