extern void abort (void); int buf[256]; void __attribute__((noinline)) foo (void) { int i; #pragma omp for schedule (auto) for (i = 0; i < 256; i++) buf[i] += i; } int main (void) { int i; #pragma omp parallel for schedule (auto) for (i = 0; i < 256; i++) buf[i] = i; #pragma omp parallel num_threads (4) foo (); for (i = 0; i < 256; i++) if (buf[i] != 2 * i) abort (); return 0; }