1/* { dg-do run } */
2/* { dg-options "-O2" } */
3
4extern void abort (void);
5
6void
7foo (int *j)
8{
9  int i = 5;
10  int bar (void) { return i + 1; }
11#pragma omp sections
12  {
13    #pragma omp section
14      {
15	if (bar () != 6)
16	#pragma omp atomic
17	  ++*j;
18      }
19    #pragma omp section
20      {
21	if (bar () != 6)
22	#pragma omp atomic
23	  ++*j;
24      }
25  }
26}
27
28int
29main (void)
30{
31  int j = 0;
32#pragma omp parallel num_threads (2)
33  foo (&j);
34  if (j)
35    abort ();
36  return 0;
37}
38
39