From 3a8e9f6ffb9d83306763b917a48ed5cf91be93f4 Mon Sep 17 00:00:00 2001 From: Thurston Dang Date: Thu, 23 Oct 2025 22:06:02 +0000 Subject: [PATCH 1/2] [asan] Avoid -Wpointer-bool-conversion warning by explicitly casting The current code may trigger a compiler warning: ``` address of function 'wcsnlen' will always evaluate to 'true' [-Wpointer-bool-conversion] ``` Fix this by casting. The same fix is applied to strnlen for future-proofing. --- compiler-rt/lib/asan/asan_interceptors.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/compiler-rt/lib/asan/asan_interceptors.cpp b/compiler-rt/lib/asan/asan_interceptors.cpp index 0f613f0fdc30b..8643271e89d70 100644 --- a/compiler-rt/lib/asan/asan_interceptors.cpp +++ b/compiler-rt/lib/asan/asan_interceptors.cpp @@ -58,7 +58,7 @@ namespace __asan { static inline uptr MaybeRealStrnlen(const char *s, uptr maxlen) { #if SANITIZER_INTERCEPT_STRNLEN - if (REAL(strnlen)) + if (static_cast(REAL(strnlen))) return REAL(strnlen)(s, maxlen); # endif return internal_strnlen(s, maxlen); @@ -66,7 +66,7 @@ static inline uptr MaybeRealStrnlen(const char *s, uptr maxlen) { static inline uptr MaybeRealWcsnlen(const wchar_t* s, uptr maxlen) { # if SANITIZER_INTERCEPT_WCSNLEN - if (REAL(wcsnlen)) + if (static_cast(REAL(wcsnlen))) return REAL(wcsnlen)(s, maxlen); # endif return internal_wcsnlen(s, maxlen); From 220c33c3441e79e74ed1b29056cdf75b22d933ef Mon Sep 17 00:00:00 2001 From: Thurston Dang Date: Thu, 23 Oct 2025 23:13:11 +0000 Subject: [PATCH 2/2] Compare to nullptr --- compiler-rt/lib/asan/asan_interceptors.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/compiler-rt/lib/asan/asan_interceptors.cpp b/compiler-rt/lib/asan/asan_interceptors.cpp index 8643271e89d70..c43332cbc276d 100644 --- a/compiler-rt/lib/asan/asan_interceptors.cpp +++ b/compiler-rt/lib/asan/asan_interceptors.cpp @@ -58,7 +58,7 @@ namespace __asan { static inline uptr MaybeRealStrnlen(const char *s, uptr maxlen) { #if SANITIZER_INTERCEPT_STRNLEN - if (static_cast(REAL(strnlen))) + if (REAL(strnlen) != nullptr) return REAL(strnlen)(s, maxlen); # endif return internal_strnlen(s, maxlen); @@ -66,7 +66,7 @@ static inline uptr MaybeRealStrnlen(const char *s, uptr maxlen) { static inline uptr MaybeRealWcsnlen(const wchar_t* s, uptr maxlen) { # if SANITIZER_INTERCEPT_WCSNLEN - if (static_cast(REAL(wcsnlen))) + if (REAL(wcsnlen) != nullptr) return REAL(wcsnlen)(s, maxlen); # endif return internal_wcsnlen(s, maxlen);