123456789101112131415161718192021222324252627282930313233343536373839 |
- /* PR other/39591 */
- /* { dg-do run } */
- extern void abort (void);
- int e, a[40];
- void __attribute__((noinline))
- foo (int *array)
- {
- #pragma omp task
- {
- int j;
- for (j = 0; j < 40; j++)
- if (array[j] != 0x55555555)
- #pragma omp atomic
- e++;
- }
- }
- int
- main (void)
- {
- int k;
- for (k = 0; k < sizeof a / sizeof a[0]; k++)
- a[k] = 0x55555555;
- #pragma omp parallel
- {
- int i;
- #pragma omp for schedule (dynamic)
- for (i = 0; i < 50; i++)
- foo (a);
- }
- if (e)
- abort ();
- return 0;
- }
|