34 lines · c
1// RUN: %libomp-compile-and-run2#include <stdio.h>3#include <stdlib.h>4 5int a;6 7void run(int nteams, int nth) {8 a = 0;9#pragma omp teams num_teams(nteams)10 {11#pragma omp parallel num_threads(nth)12 {13#pragma omp task14 {15#pragma omp atomic16 a++;17 }18 }19 }20 if (a == 0)21 exit(EXIT_FAILURE);22}23 24int main() {25 int i, nteams, nth;26 for (nteams = 1; nteams <= 2; ++nteams)27 for (nth = 1; nth <= 3; ++nth)28 for (i = 0; i < 10; ++i) {29 printf("run(%d, %d)\n", nteams, nth);30 run(nteams, nth);31 }32 return EXIT_SUCCESS;33}34