Add missing function in 20_util/exchange/1.cc.
[official-gcc.git] / libgomp / testsuite / libgomp.c / pr36802-2.c
blob06e792f0f14da3ec63ba37d91338f9cc8bc80d62
1 /* PR middle-end/36802 */
3 extern void abort (void);
5 int q;
7 int
8 foo (int k)
10 int i = 6, n = 0;
11 omp_set_dynamic (0);
12 omp_set_nested (1);
13 #pragma omp parallel shared (i) num_threads (3)
15 int l;
17 if (omp_get_num_threads () != 3)
18 #pragma omp atomic
19 n += 1;
20 else
21 #pragma omp for
22 for (l = 0; l < 3; l++)
23 if (k)
24 #pragma omp atomic
25 q += i;
26 else
27 #pragma omp parallel shared (i) num_threads (4)
29 if (omp_get_num_threads () != 4)
30 #pragma omp atomic
31 n += 1;
32 #pragma omp critical
33 i += 1;
36 if (n == 0 && i != 6 + 3 * 4)
37 abort ();
38 return 0;
41 int
42 main (void)
44 foo (0);
45 return 0;