| // PR middle-end/35185 | |
| // { dg-do run } | |
| extern "C" void abort (); | |
| struct S | |
| { | |
| S () : s (6) {} | |
| ~S () {} | |
| int s; | |
| }; | |
| __attribute__((noinline)) | |
| bool | |
| bar (S s) | |
| { | |
| return s.s != 6; | |
| } | |
| int | |
| main () | |
| { | |
| S s; | |
| int err = 0; | |
| #pragma omp parallel shared (s) | |
| { | |
| if (bar (s)) | |
| #pragma omp atomic | |
| err++; | |
| } | |
| if (err) | |
| abort (); | |
| } |