mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-01-03 20:10:17 +01:00
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: 555881e574 ("util/cache_ops: Add some cache flush helpers")
Reviewed-by: Yonggang Luo <luoyonggang@gmail.com>
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com>
Acked-by: Faith Ekstrand <faith.ekstrand@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38752>
This commit is contained in:
parent
3ad592ee4f
commit
14cfe14626
1 changed files with 4 additions and 3 deletions
|
|
@ -21,6 +21,7 @@
|
|||
* IN THE SOFTWARE.
|
||||
*/
|
||||
|
||||
#include <stdint.h>
|
||||
#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);
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue