/* PR middle-end/35549 */ /* { dg-do run } */ #include #include int main (void) { int i = 6, n = 0; omp_set_dynamic (0); omp_set_nested (1); #pragma omp parallel shared (i) num_threads (3) { if (omp_get_num_threads () != 3) #pragma omp atomic n += 1; #pragma omp parallel shared (i) num_threads (4) { if (omp_get_num_threads () != 4) #pragma omp atomic n += 1; #pragma omp critical i += 1; } } if (n == 0 && i != 6 + 3 * 4) abort (); return 0; }