1// PR c++/34513 2// { dg-do run } 3 4#include <omp.h> 5 6extern "C" void abort (); 7 8static int errors = 0; 9static int thrs = 4; 10 11int 12main () 13{ 14 omp_set_dynamic (0); 15 16 #pragma omp parallel num_threads (thrs) 17 { 18 static int shrd = 0; 19 20 #pragma omp atomic 21 shrd += 1; 22 23 #pragma omp barrier 24 25 if (shrd != thrs) 26 #pragma omp atomic 27 errors += 1; 28 } 29 30 if (errors) 31 abort (); 32} 33