xref: /llvm-project/openmp/runtime/test/parallel/omp_parallel_default.c (revision 373107699709f6fb06992bf6b76274091570aaf2)
1 // RUN: %libomp-compile-and-run
2 #include <stdio.h>
3 #include "omp_testsuite.h"
4 
test_omp_parallel_default()5 int test_omp_parallel_default()
6 {
7   int i;
8   int sum;
9   int mysum;
10   int known_sum;
11   sum =0;
12   known_sum = (LOOPCOUNT * (LOOPCOUNT + 1)) / 2 ;
13 
14   #pragma omp parallel default(shared) private(i) private(mysum)
15   {
16     mysum = 0;
17     #pragma omp for
18     for (i = 1; i <= LOOPCOUNT; i++) {
19       mysum = mysum + i;
20     }
21     #pragma omp critical
22     {
23       sum = sum + mysum;
24     }   /* end of critical */
25   }   /* end of parallel */
26   if (known_sum != sum) {
27     fprintf(stderr, "KNOWN_SUM = %d; SUM = %d\n", known_sum, sum);
28   }
29   return (known_sum == sum);
30 }
31 
main()32 int main()
33 {
34   int i;
35   int num_failed=0;
36 
37   for(i = 0; i < REPETITIONS; i++) {
38     if(!test_omp_parallel_default()) {
39       num_failed++;
40     }
41   }
42   return num_failed;
43 }
44