/* PR c++/34513 */ | |
/* { dg-do run } */ | |
#include <omp.h> | |
extern void abort (); | |
static int errors = 0; | |
static int thrs = 4; | |
int | |
main () | |
{ | |
omp_set_dynamic (0); | |
#pragma omp parallel num_threads (thrs) | |
{ | |
static int shrd = 0; | |
#pragma omp atomic | |
shrd += 1; | |
#pragma omp barrier | |
if (shrd != thrs) | |
#pragma omp atomic | |
errors += 1; | |
} | |
if (errors) | |
abort (); | |
return 0; | |
} |