libgomp: Silence false positive -Wmaybe-uninitialized warning [PR99984]
authorJakub Jelinek <jakub@redhat.com>
Fri, 9 Apr 2021 08:18:47 +0000 (10:18 +0200)
committerJakub Jelinek <jakub@redhat.com>
Fri, 9 Apr 2021 08:18:47 +0000 (10:18 +0200)
commit8cc863ca8f48662e9c9339710fa303587479bf71
treec757ad06ad7b39f149abde77a4b85920f085fa86
parent019a922063f26784d5a070d9198a1f937b8a8343
libgomp: Silence false positive -Wmaybe-uninitialized warning [PR99984]

pthread_setspecific second argument is const void *, so that one can
call it even with pointers to const, but the function only stores the
pointer and does nothing else, so the new assumption of -Wmaybe-uninitialized
that functions taking such pointers will read from what those pointers
will point to is wrong.  Maybe it would be useful to have some whitelist
of functions that surely don't do that.

Anyway, in this case it is easy to workaround the warning by moving the
pthread_setspecific call after the initialization without slowing anything
down.

2021-04-09  Jakub Jelinek  <jakub@redhat.com>

PR libgomp/99984
* team.c (gomp_thread_start): Call pthread_setspecific for
!(defined HAVE_TLS || defined USE_EMUTLS) only after local_thr
has been initialized to avoid false positive warning.
libgomp/team.c