From: Jonas Hahnfeld Date: Mon, 8 Aug 2016 13:23:08 +0000 (+0000) Subject: kmp_gsupport: Fix library initialization with taskgroup X-Git-Tag: llvmorg-4.0.0-rc1~13066 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=ad0c42e3a9a185bc904aba3407f9dd5c9b08f67c;p=platform%2Fupstream%2Fllvm.git kmp_gsupport: Fix library initialization with taskgroup Differential Revision: https://reviews.llvm.org/D23259 llvm-svn: 278003 --- diff --git a/openmp/runtime/src/kmp_gsupport.c b/openmp/runtime/src/kmp_gsupport.c index 23c97d1..62baa2b 100644 --- a/openmp/runtime/src/kmp_gsupport.c +++ b/openmp/runtime/src/kmp_gsupport.c @@ -1259,7 +1259,7 @@ PARALLEL_LOOP(xexpand(KMP_API_NAME_GOMP_PARALLEL_LOOP_RUNTIME), kmp_sch_runtime) void xexpand(KMP_API_NAME_GOMP_TASKGROUP_START)(void) { - int gtid = __kmp_get_gtid(); + int gtid = __kmp_entry_gtid(); MKLOC(loc, "GOMP_taskgroup_start"); KA_TRACE(20, ("GOMP_taskgroup_start: T#%d\n", gtid)); diff --git a/openmp/runtime/test/tasking/bug_serial_taskgroup.c b/openmp/runtime/test/tasking/bug_serial_taskgroup.c new file mode 100644 index 0000000..850bc90 --- /dev/null +++ b/openmp/runtime/test/tasking/bug_serial_taskgroup.c @@ -0,0 +1,16 @@ +// RUN: %libomp-compile-and-run + +/* + GCC failed this test because __kmp_get_gtid() instead of __kmp_entry_gtid() + was called in xexpand(KMP_API_NAME_GOMP_TASKGROUP_START)(void). + __kmp_entry_gtid() will initialize the runtime if not yet done which does not + happen with __kmp_get_gtid(). + */ + +int main() +{ + #pragma omp taskgroup + { } + + return 0; +}