1// PR middle-end/35185
2// { dg-do run }
3
4extern "C" void abort ();
5
6struct S
7{
8  S () : s (6) {}
9  ~S () {}
10  int s;
11};
12
13__attribute__((noinline))
14bool
15bar (S s)
16{
17  return s.s != 6;
18}
19
20int
21main ()
22{
23  S s;
24  int err = 0;
25#pragma omp parallel shared (s)
26  {
27    if (bar (s))
28      #pragma omp atomic
29	err++;
30  }
31  if (err)
32    abort ();
33}
34