[PATCH 06/59] nptl: Fix Wincompatible-pointer-types on clang

Sam James sam@gentoo.org
Mon Oct 20 19:42:15 GMT 2025


Adhemerval Zanella <adhemerval.zanella@linaro.org> writes:

> clang 18 issues:
>
> pthread_join_common.c:32:3: error: incompatible pointer types passing 'struct pthread **' to parameter of type 'void **' [-Werror,-Wincompatible-pointer-types]
>    32 |   atomic_compare_exchange_weak_acquire (&arg, &self, NULL);
>       |   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> ../include/atomic.h:188:39: note: expanded from macro 'atomic_compare_exchange_weak_acquire'
>   188 |   __atomic_compare_exchange_n ((mem), (expected), (desired), 1,
>
> Use a void * type instead.
> ---

Reviewed-by: Sam James <sam@gentoo.org>

>  nptl/pthread_join_common.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/nptl/pthread_join_common.c b/nptl/pthread_join_common.c
> index ff389bf599..9109b62276 100644
> --- a/nptl/pthread_join_common.c
> +++ b/nptl/pthread_join_common.c
> @@ -28,7 +28,7 @@ cleanup (void *arg)
>    /* If we already changed the waiter ID, reset it.  The call cannot
>       fail for any reason but the thread not having done that yet so
>       there is no reason for a loop.  */
> -  struct pthread *self = THREAD_SELF;
> +  void *self = THREAD_SELF;
>    atomic_compare_exchange_weak_acquire (&arg, &self, NULL);
>  }


More information about the Libc-alpha mailing list