|
From: Bart V. A. <bva...@ac...> - 2020-01-28 03:16:16
|
On 2020-01-27 17:23, Khem Raj wrote: > pthread_t is opaque type therefore we can not apply simple arithmetic to variables of pthread_t type > this test needs to pass a invalid pthread_t handle, typcasting (long)thread works too and is portable > across glibc and musl > > Fixes > | pth_detached3.c:24:25: error: invalid use of undefined type 'struct __pthread' > | 24 | pthread_detach(thread + 8); > | | ^ > > Signed-off-by: Khem Raj <raj...@gm...> > --- > drd/tests/pth_detached3.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/drd/tests/pth_detached3.c b/drd/tests/pth_detached3.c > index c02eef11a..341193ba1 100644 > --- a/drd/tests/pth_detached3.c > +++ b/drd/tests/pth_detached3.c > @@ -21,7 +21,7 @@ int main(int argc, char** argv) > pthread_detach(thread); > > /* Invoke pthread_detach() with an invalid thread ID. */ > - pthread_detach(thread + 8); > + pthread_detach((pthread_t)((long)thread + 8)); > > fprintf(stderr, "Finished.\n"); Is sizeof(long) always identical to sizeof(pthread_t)? How about casting to uintptr_t instead of to long? Thanks, Bart. |