// RUN: %libomp-compile-and-run #include #include int a; void run(int nteams, int nth) { a = 0; #pragma omp teams num_teams(nteams) { #pragma omp parallel num_threads(nth) { #pragma omp task { #pragma omp atomic a++; } } } if (a == 0) exit(EXIT_FAILURE); } int main() { int i, nteams, nth; for (nteams = 1; nteams <= 2; ++nteams) for (nth = 1; nth <= 3; ++nth) for (i = 0; i < 10; ++i) { printf("run(%d, %d)\n", nteams, nth); run(nteams, nth); } return EXIT_SUCCESS; }