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