123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960 |
- extern void abort (void);
- int
- foo (void)
- {
- int i = -1, j = -1, k;
- void nested (void) { i++; j++; }
- nested ();
- #pragma omp taskgroup task_reduction (+: i)
- {
- #pragma omp task in_reduction (+: i)
- i++;
- #pragma omp task in_reduction (+: i)
- i += 6;
- }
- #pragma omp taskloop reduction (+: j)
- for (k = 0; k < 2; k++)
- {
- j += 5;
- #pragma omp task in_reduction (+: j)
- j += 31;
- }
- return i + j;
- }
- int
- bar (void)
- {
- int i = 0, j = 0;
- void nested (void)
- {
- int k;
- #pragma omp taskgroup task_reduction (+: i)
- {
- #pragma omp task in_reduction (+: i)
- i++;
- #pragma omp task in_reduction (+: i)
- i += 7;
- }
- #pragma omp taskloop reduction (+: j)
- for (k = 0; k < 2; k++)
- {
- j += 21;
- #pragma omp task in_reduction (+: j)
- j += 8;
- }
- }
- nested ();
- return i + j;
- }
- int
- main ()
- {
- if (foo () != (1 + 6 + (5 + 31) * 2))
- abort ();
- if (bar () != (1 + 7 + (21 + 8) * 2))
- abort ();
- return 0;
- }
|