// RUN: %libomp-compile-and-run | |
#include <stdio.h> | |
#include <stdlib.h> | |
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; | |
} |