/* PR middle-end/35549 */ | |
/* { dg-do run } */ | |
#include <omp.h> | |
#include <stdlib.h> | |
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; | |
} |