From: Alex Brachet Date: Mon, 13 Jun 2022 21:06:27 +0000 (+0000) Subject: [libc] Add explicit casts for string functions X-Git-Tag: upstream/15.0.7~4894 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=6d1543a16797fa07eecea7e542df5b42422fc721;p=platform%2Fupstream%2Fllvm.git [libc] Add explicit casts for string functions This fixes warnings from `-Wimplicit-int-conversion` Differential revision: https://reviews.llvm.org/D127694 --- diff --git a/libc/src/string/memchr.cpp b/libc/src/string/memchr.cpp index 02b401639841..a2a537680920 100644 --- a/libc/src/string/memchr.cpp +++ b/libc/src/string/memchr.cpp @@ -17,7 +17,8 @@ namespace __llvm_libc { // TODO: Look at performance benefits of comparing words. LLVM_LIBC_FUNCTION(void *, memchr, (const void *src, int c, size_t n)) { return internal::find_first_character( - reinterpret_cast(src), c, n); + reinterpret_cast(src), + static_cast(c), n); } } // namespace __llvm_libc diff --git a/libc/src/string/memory_utils/elements_x86.h b/libc/src/string/memory_utils/elements_x86.h index 89a88c6703d5..f25c66be74ca 100644 --- a/libc/src/string/memory_utils/elements_x86.h +++ b/libc/src/string/memory_utils/elements_x86.h @@ -67,7 +67,8 @@ struct M128 { using T = char __attribute__((__vector_size__(SIZE))); static uint16_t mask(T value) { // NOLINTNEXTLINE(llvmlibc-callee-namespace) - return _mm_movemask_epi8(__llvm_libc::bit_cast<__m128i>(value)); + return static_cast( + _mm_movemask_epi8(__llvm_libc::bit_cast<__m128i>(value))); } static uint16_t not_equal_mask(T a, T b) { return mask(a != b); } static T load(const char *ptr) { diff --git a/libc/src/string/memrchr.cpp b/libc/src/string/memrchr.cpp index b010b8ad87c5..7efac04a6324 100644 --- a/libc/src/string/memrchr.cpp +++ b/libc/src/string/memrchr.cpp @@ -14,7 +14,7 @@ namespace __llvm_libc { LLVM_LIBC_FUNCTION(void *, memrchr, (const void *src, int c, size_t n)) { const unsigned char *str = reinterpret_cast(src); - const unsigned char ch = c; + const unsigned char ch = static_cast(c); for (; n != 0; --n) { const unsigned char *s = str + n - 1; if (*s == ch) diff --git a/libc/src/string/strchr.cpp b/libc/src/string/strchr.cpp index ab663eac500e..724c2a2d1649 100644 --- a/libc/src/string/strchr.cpp +++ b/libc/src/string/strchr.cpp @@ -14,7 +14,7 @@ namespace __llvm_libc { // TODO: Look at performance benefits of comparing words. LLVM_LIBC_FUNCTION(char *, strchr, (const char *src, int c)) { - const char ch = c; + const char ch = static_cast(c); for (; *src && *src != ch; ++src) ; return *src == ch ? const_cast(src) : nullptr; diff --git a/libc/src/string/strrchr.cpp b/libc/src/string/strrchr.cpp index b5852add7fe9..2e987fa2b860 100644 --- a/libc/src/string/strrchr.cpp +++ b/libc/src/string/strrchr.cpp @@ -13,7 +13,7 @@ namespace __llvm_libc { LLVM_LIBC_FUNCTION(char *, strrchr, (const char *src, int c)) { - const char ch = c; + const char ch = static_cast(c); char *last_occurrence = nullptr; for (; *src; ++src) { if (*src == ch)