123456789101112131415161718192021222324252627282930313233343536373839404142434445 |
- extern void abort (void);
- void
- foo (int n)
- {
- int a[n], i, err;
- for (i = 0; i < n; i++)
- a[i] = 7 * i;
- #pragma omp target firstprivate (a) map(from:err) private (i)
- {
- err = 0;
- for (i = 0; i < n; i++)
- if (a[i] != 7 * i)
- err = 1;
- }
- if (err)
- abort ();
- }
- void
- bar (int n)
- {
- int a[n], i, err;
- #pragma omp target private (a) map(from:err)
- {
- #pragma omp parallel for
- for (i = 0; i < n; i++)
- a[i] = 7 * i;
- err = 0;
- #pragma omp parallel for reduction(|:err)
- for (i = 0; i < n; i++)
- if (a[i] != 7 * i)
- err |= 1;
- }
- if (err)
- abort ();
- }
- int
- main ()
- {
- foo (7);
- bar (7);
- return 0;
- }
|