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