1/* { dg-do compile } */ 2 3void 4a31_2 (float *x, int *y, int n) 5{ 6 int i, b, b_p; 7 float a, a_p; 8 a = 0.0; 9 b = 0; 10#pragma omp parallel shared(a, b, x, y, n) \ 11 private(a_p, b_p) 12 { 13 a_p = 0.0; 14 b_p = 0; 15#pragma omp for private(i) 16 for (i = 0; i < n; i++) 17 { 18 a_p += x[i]; 19 b_p ^= y[i]; 20 } 21#pragma omp critical 22 { 23 a += a_p; 24 b ^= b_p; 25 } 26 } 27} 28