128226e7dSJonathan Peyton // RUN: %libomp-compile-and-run 228226e7dSJonathan Peyton 328226e7dSJonathan Peyton /* 428226e7dSJonathan Peyton Bugzilla: https://bugs.llvm.org/show_bug.cgi?id=36720 528226e7dSJonathan Peyton 628226e7dSJonathan Peyton Assertion failure at kmp_runtime.cpp(1715): nthreads > 0. 728226e7dSJonathan Peyton OMP: Error #13: Assertion failure at kmp_runtime.cpp(1715). 828226e7dSJonathan Peyton 928226e7dSJonathan Peyton The assertion fails even with OMP_NUM_THREADS=1. If the second task is removed, 1028226e7dSJonathan Peyton everything runs to completion. If the "omp parallel for" directives are removed 1128226e7dSJonathan Peyton from inside the tasks, once again everything runs fine. 1228226e7dSJonathan Peyton */ 1328226e7dSJonathan Peyton 1428226e7dSJonathan Peyton #define N 1024 1528226e7dSJonathan Peyton main()1628226e7dSJonathan Peytonint main() { 1728226e7dSJonathan Peyton #pragma omp task 1828226e7dSJonathan Peyton { 19*51fc3cc6SJonas Hahnfeld int i; 2028226e7dSJonathan Peyton #pragma omp parallel for 21*51fc3cc6SJonas Hahnfeld for (i = 0; i < N; i++) 2228226e7dSJonathan Peyton (void)0; 2328226e7dSJonathan Peyton } 2428226e7dSJonathan Peyton 2528226e7dSJonathan Peyton #pragma omp task 2628226e7dSJonathan Peyton { 27*51fc3cc6SJonas Hahnfeld int i; 2828226e7dSJonathan Peyton #pragma omp parallel for 29*51fc3cc6SJonas Hahnfeld for (i = 0; i < N; ++i) 3028226e7dSJonathan Peyton (void)0; 3128226e7dSJonathan Peyton } 3228226e7dSJonathan Peyton 3328226e7dSJonathan Peyton #pragma omp taskwait 3428226e7dSJonathan Peyton 3528226e7dSJonathan Peyton return 0; 3628226e7dSJonathan Peyton } 37