00001 // PR middle-end/35185 00002 // { dg-do run } 00003 00004 extern "C" void abort (); 00005 00006 struct S 00007 { 00008 S () : s (6) {} 00009 ~S () {} 00010 int s; 00011 }; 00012 00013 __attribute__((noinline)) 00014 bool 00015 bar (S s) 00016 { 00017 return s.s != 6; 00018 } 00019 00020 int 00021 main () 00022 { 00023 S s; 00024 int err = 0; 00025 #pragma omp parallel shared (s) 00026 { 00027 if (bar (s)) 00028 #pragma omp atomic 00029 err++; 00030 } 00031 if (err) 00032 abort (); 00033 }