xref: /llvm-project/openmp/runtime/test/tasking/issue-69368.c (revision 41ca9104ac1e0bf248d4082f45c5ad03ddd55727)
1*41ca9104SJonathan Peyton // RUN: %libomp-compile-and-run
2*41ca9104SJonathan Peyton // RUN: env OMP_NUM_THREADS=1 %libomp-run
3*41ca9104SJonathan Peyton 
main()4*41ca9104SJonathan Peyton int main() {
5*41ca9104SJonathan Peyton   int i;
6*41ca9104SJonathan Peyton   int a[2];
7*41ca9104SJonathan Peyton   volatile int attempt = 0;
8*41ca9104SJonathan Peyton 
9*41ca9104SJonathan Peyton   for (i = 0; i < 10; ++i) {
10*41ca9104SJonathan Peyton     a[0] = a[1] = 0;
11*41ca9104SJonathan Peyton #pragma omp parallel for
12*41ca9104SJonathan Peyton     for (int i = 0; i < 2; i++) {
13*41ca9104SJonathan Peyton       a[i] = 2;
14*41ca9104SJonathan Peyton     }
15*41ca9104SJonathan Peyton     if (a[0] != 2 || a[1] != 2)
16*41ca9104SJonathan Peyton       return 1;
17*41ca9104SJonathan Peyton 
18*41ca9104SJonathan Peyton #pragma omp teams distribute parallel for if (attempt >= 2)
19*41ca9104SJonathan Peyton     for (int i = 0; i < 2; i++) {
20*41ca9104SJonathan Peyton       a[i] = 1;
21*41ca9104SJonathan Peyton     }
22*41ca9104SJonathan Peyton     if (a[0] != 1 || a[1] != 1)
23*41ca9104SJonathan Peyton       return 1;
24*41ca9104SJonathan Peyton   }
25*41ca9104SJonathan Peyton 
26*41ca9104SJonathan Peyton   return 0;
27*41ca9104SJonathan Peyton }
28