mirror of
https://sourceware.org/git/glibc.git
synced 2026-10-24 01:33:52 +03:00
linux: Fix function point cast on vDSO handling
There is no need to cast to avoid, both pointer already have the
expected type.
It fixes the clang -Wpointer-type-mismatch error:
../sysdeps/unix/sysv/linux/gettimeofday.c:43:6: error: pointer type mismatch ('int (*)(struct timeval *, void *)' and 'void *') [-Werror,-Wpointer-type-mismatch]
41 | libc_ifunc (__gettimeofday,
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~
42 | GLRO(dl_vdso_gettimeofday) != NULL
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
43 | ? VDSO_IFUNC_RET (GLRO(dl_vdso_gettimeofday))
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
44 | : (void*) __gettimeofday_syscall)
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
./../include/libc-symbols.h:789:53: note: expanded from macro 'libc_ifunc'
789 | #define libc_ifunc(name, expr) __ifunc (name, name, expr, void, INIT_ARCH)
| ~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~
./../include/libc-symbols.h:705:34: note: expanded from macro '__ifunc'
705 | __ifunc_args (type_name, name, expr, init, arg)
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~
./../include/libc-symbols.h:677:38: note: expanded from macro '__ifunc_args'
677 | __ifunc_resolver (type_name, name, expr, init, static, __VA_ARGS__); \
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
./../include/libc-symbols.h:667:33: note: expanded from macro '__ifunc_resolver'
667 | __typeof (type_name) *res = expr; \
| ^~~~
Reviewed-by: Sam James <sam@gentoo.org>
This commit is contained in:
@@ -41,7 +41,7 @@ __gettimeofday_syscall (struct timeval *restrict tv, void *restrict tz)
|
||||
libc_ifunc (__gettimeofday,
|
||||
GLRO(dl_vdso_gettimeofday) != NULL
|
||||
? VDSO_IFUNC_RET (GLRO(dl_vdso_gettimeofday))
|
||||
: (void *) __gettimeofday_syscall)
|
||||
: __gettimeofday_syscall)
|
||||
|
||||
# else
|
||||
int
|
||||
|
||||
@@ -47,7 +47,7 @@
|
||||
({ \
|
||||
static Elf64_FuncDesc vdso_opd = { .fd_toc = ~0x0 }; \
|
||||
vdso_opd.fd_func = (Elf64_Addr)value; \
|
||||
&vdso_opd; \
|
||||
(void *) &vdso_opd; \
|
||||
})
|
||||
|
||||
#else
|
||||
|
||||
@@ -36,7 +36,7 @@ time_syscall (time_t *t)
|
||||
# define INIT_ARCH()
|
||||
libc_ifunc (time,
|
||||
GLRO(dl_vdso_time) != NULL ? VDSO_IFUNC_RET (GLRO(dl_vdso_time))
|
||||
: (void *) time_syscall);
|
||||
: time_syscall);
|
||||
|
||||
# else
|
||||
time_t
|
||||
|
||||
Reference in New Issue
Block a user