mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2025-12-30 14:20:11 +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>
(cherry picked from commit 14cfe14626)
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38803>
This commit is contained in:
parent
3e8ecfedd4
commit
27a88241ba
2 changed files with 5 additions and 4 deletions
|
|
@ -184,7 +184,7 @@
|
|||
"description": "util: fix arithmetic on a pointer to void warning",
|
||||
"nominated": true,
|
||||
"nomination_type": 2,
|
||||
"resolution": 0,
|
||||
"resolution": 1,
|
||||
"main_sha": null,
|
||||
"because_sha": "555881e57499bc38f098dd5859edecdf6bdad2a2",
|
||||
"notes": null
|
||||
|
|
|
|||
|
|
@ -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