Hi, When OMP_WAIT_POLICY is not specified, current implementation will cause icv flag GOMP_ICV_WAIT_POLICY unset, so global variable wait_policy will remain its uninitialized value. Set it to -1 when the flag is not specified to keep GOMP_SPINCOUNT behavior consistent with its description.
Bootstrapped/regtested on x86_64-pc-linux-gnu, ok for trunk? libgomp/ChangeLog: PR libgomp/109062 * env.c (initialize_env): Set wait_policy to -1 if OMP_WAIT_POLICY is not specified. * testsuite/libgomp.c-c++-common/pr109062.c: New test. --- libgomp/env.c | 2 ++ libgomp/testsuite/libgomp.c-c++-common/pr109062.c | 14 ++++++++++++++ 2 files changed, 16 insertions(+) create mode 100644 libgomp/testsuite/libgomp.c-c++-common/pr109062.c diff --git a/libgomp/env.c b/libgomp/env.c index c41c1f852cc..fa36a8697d6 100644 --- a/libgomp/env.c +++ b/libgomp/env.c @@ -2249,6 +2249,8 @@ initialize_env (void) wait_policy = none->icvs.wait_policy; else if (all != NULL && gomp_get_icv_flag (all->flags, GOMP_ICV_WAIT_POLICY)) wait_policy = all->icvs.wait_policy; + else + wait_policy = -1; if (!parse_spincount ("GOMP_SPINCOUNT", &gomp_spin_count_var)) { diff --git a/libgomp/testsuite/libgomp.c-c++-common/pr109062.c b/libgomp/testsuite/libgomp.c-c++-common/pr109062.c new file mode 100644 index 00000000000..5c7c287dafd --- /dev/null +++ b/libgomp/testsuite/libgomp.c-c++-common/pr109062.c @@ -0,0 +1,14 @@ +/* { dg-do run } */ + +#include <omp.h> +#include <stdlib.h> + +int +main () +{ + omp_display_env (1); + + return 0; +} + +/* { dg-output ".*\\\[host] GOMP_SPINCOUNT = '300000'.*" { target native } } */ -- 2.31.1