From 14cfe14626062ca36ecb62b1b1bf7e14228300b3 Mon Sep 17 00:00:00 2001 From: Gurchetan Singh Date: Mon, 1 Dec 2025 08:58:03 -0800 Subject: [PATCH] util: fix arithmetic on a pointer to void warning Otherwise, the following error is observed: src/util/cache_ops_x86_clflushopt.c:40:22: error: arithmetic on a pointer to void is a GNU extension [-Werror,-Wgnu-pointer-arith] 40 | void *end = start + size; | ~~~~~ ^ src/util/cache_ops_x86_clflushopt.c:44:9: error: arithmetic on a pointer to void is a GNU extension [-Werror,-Wgnu-pointer-arith] 44 | p += cpu_caps->cacheline; | ~ ^ This works with GNU extension enabled, but does lead to warnings with Clang. v2: Add to trial_c + trial_cpp checks (Erik) v3: use c_msvc_compat_args to avoid fixing other instances of this issue (Erik) Fixes: 555881e5749 ("util/cache_ops: Add some cache flush helpers") Reviewed-by: Yonggang Luo Reviewed-by: Erik Faye-Lund Acked-by: Faith Ekstrand Part-of: --- src/util/cache_ops_x86_clflushopt.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/util/cache_ops_x86_clflushopt.c b/src/util/cache_ops_x86_clflushopt.c index ca97b9000f6..1b02f6845d7 100644 --- a/src/util/cache_ops_x86_clflushopt.c +++ b/src/util/cache_ops_x86_clflushopt.c @@ -21,6 +21,7 @@ * IN THE SOFTWARE. */ +#include #include "util/u_cpu_detect.h" #ifndef HAVE___BUILTIN_IA32_CLFLUSHOPT @@ -35,9 +36,9 @@ util_clflushopt_range(void *start, size_t size) const struct util_cpu_caps_t *cpu_caps = util_get_cpu_caps(); assert(cpu_caps->has_clflushopt); assert(cpu_caps->cacheline > 0); - void *p = (void *) (((uintptr_t) start) & - ~((uintptr_t)cpu_caps->cacheline - 1)); - void *end = start + size; + uint8_t *p = (uint8_t *) (((uintptr_t) start) & + ~((uintptr_t)cpu_caps->cacheline - 1)); + uint8_t *end = (uint8_t *)start + size; while (p < end) { __builtin_ia32_clflushopt(p);