/* PR middle-end/35196 */ /* { dg-do run } */ extern void abort (void); extern void omp_set_dynamic (int); int main (void) { int i, j; omp_set_dynamic (0); #pragma omp parallel for lastprivate (i, j) num_threads (8) schedule (static) for (i = 0; i < 5; i++) j = i; if (i != 5 || j != 4) abort (); #pragma omp parallel for lastprivate (i, j) num_threads (8) schedule (static, 2) for (i = 0; i < 5; i++) j = i; if (i != 5 || j != 4) abort (); #pragma omp parallel for lastprivate (i, j) num_threads (8) schedule (dynamic) for (i = 0; i < 5; i++) j = i; if (i != 5 || j != 4) abort (); #pragma omp parallel for lastprivate (i, j) num_threads (8) schedule (static) for (i = -12; i < 21; i += 3) j = i; if (i != 21 || j != 18) abort (); #pragma omp parallel for lastprivate (i, j) num_threads (8) schedule (static, 2) for (i = -12; i < 21; i += 3) j = i; if (i != 21 || j != 18) abort (); #pragma omp parallel for lastprivate (i, j) num_threads (8) schedule (dynamic, 3) for (i = -12; i < 21; i += 3) j = i; if (i != 21 || j != 18) abort (); return 0; }