rt_gccstream/libgomp/testsuite/libgomp.c/pr35549.c

31 lines
527 B
C

/* 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;
}