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. Initialize it to -1 to make
GOMP_SPINCOUNT behavior consistent with its description.
libgomp/ChangeLog:
PR libgomp/109062
* env.c (wait_policy): Initialize to -1.
(initialize_icvs): Initialize icvs->wait_policy to -1.
* testsuite/libgomp.c-c++-common/pr109062.c: New test.
#ifndef LIBGOMP_OFFLOADED_ONLY
-static int wait_policy;
+static int wait_policy = -1;
static unsigned long stacksize = GOMP_DEFAULT_STACKSIZE;
static void
icvs->bind_var = gomp_default_icv_values.bind_var;
icvs->nteams_var = gomp_default_icv_values.nteams_var;
icvs->teams_thread_limit_var = gomp_default_icv_values.teams_thread_limit_var;
- icvs->wait_policy = 0;
+ icvs->wait_policy = -1;
}
/* Helper function for initialize_env to add a device specific ICV value
--- /dev/null
+/* { 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 } } */