1 /* PR other/39591 */ 2 /* { dg-do run } */ 3 4 extern void abort (void); 5 6 int e, a[40]; 7 8 void __attribute__((noinline)) foo(int * array)9foo (int *array) 10 { 11 #pragma omp task 12 { 13 int j; 14 for (j = 0; j < 40; j++) 15 if (array[j] != 0x55555555) 16 #pragma omp atomic 17 e++; 18 } 19 } 20 21 int main(void)22main (void) 23 { 24 int k; 25 for (k = 0; k < sizeof a / sizeof a[0]; k++) 26 a[k] = 0x55555555; 27 28 #pragma omp parallel 29 { 30 int i; 31 32 #pragma omp for schedule (dynamic) 33 for (i = 0; i < 50; i++) 34 foo (a); 35 } 36 if (e) 37 abort (); 38 return 0; 39 } 40