1 // PR middle-end/35185 2 // { dg-do run } 3 4 extern "C" void abort (); 5 6 struct S 7 { SS8 S () : s (6) {} ~SS9 ~S () {} 10 int s; 11 }; 12 13 __attribute__((noinline)) 14 bool bar(S s)15bar (S s) 16 { 17 return s.s != 6; 18 } 19 20 int main()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