For debugging purposes, I need to be able to find the master thread in the thread pool.
Without this patch, I see over 20 failures in the tests that I've written for GDB. I've also tested this in the gcc tree - no regressions. libgomp/ChangeLog: * team.c (gomp_team_start): Initialize pool->threads[0]. --- libgomp/team.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/libgomp/team.c b/libgomp/team.c index 2b2e9750da5..e331c9b72c0 100644 --- a/libgomp/team.c +++ b/libgomp/team.c @@ -477,11 +477,17 @@ gomp_team_start (void (*fn) (void *), void *data, unsigned nthreads, make no effort to expand gomp_threads_size geometrically. */ if (nthreads >= pool->threads_size) { + bool need_init = (pool->threads == NULL); pool->threads_size = nthreads + 1; pool->threads = gomp_realloc (pool->threads, pool->threads_size * sizeof (struct gomp_thread *)); + if (need_init) + { + /* Add current (master) thread to threads[]. */ + pool->threads[0] = thr; + } } /* Release existing idle threads. */