kmp_gsupport: Fix library initialization with taskgroup

Differential Revision: https://reviews.llvm.org/D23259

llvm-svn: 278003
This commit is contained in:
Jonas Hahnfeld 2016-08-08 13:23:08 +00:00
parent fa00ba3c1a
commit ad0c42e3a9
2 changed files with 17 additions and 1 deletions

View File

@ -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));

View File

@ -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;
}