summaryrefslogtreecommitdiffstats
path: root/openmp/runtime/src/kmp_threadprivate.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'openmp/runtime/src/kmp_threadprivate.cpp')
-rw-r--r--openmp/runtime/src/kmp_threadprivate.cpp7
1 files changed, 7 insertions, 0 deletions
diff --git a/openmp/runtime/src/kmp_threadprivate.cpp b/openmp/runtime/src/kmp_threadprivate.cpp
index bbcfadd7961..362c0757f98 100644
--- a/openmp/runtime/src/kmp_threadprivate.cpp
+++ b/openmp/runtime/src/kmp_threadprivate.cpp
@@ -226,6 +226,13 @@ void __kmp_common_destroy_gtid(int gtid) {
struct private_common *tn;
struct shared_common *d_tn;
+ if (!TCR_4(__kmp_init_gtid)) {
+ // This is possible when one of multiple roots initiates early library
+ // termination in a sequential region while other teams are active, and its
+ // child threads are about to end.
+ return;
+ }
+
KC_TRACE(10, ("__kmp_common_destroy_gtid: T#%d called\n", gtid));
if ((__kmp_foreign_tp) ? (!KMP_INITIAL_GTID(gtid)) : (!KMP_UBER_GTID(gtid))) {
OpenPOWER on IntegriCloud