| // PR c++/59297 | |
| // { dg-do compile } | |
| // { dg-options "-fopenmp" } | |
| template <typename T> | |
| struct A | |
| { | |
| ~A (); | |
| const T &operator[] (int) const; | |
| }; | |
| struct B | |
| { | |
| int &operator () (A <int>); | |
| }; | |
| void | |
| foo (B &x, int &z) | |
| { | |
| A<A<int> > y; | |
| #pragma omp atomic | |
| x (y[0]) += 1; | |
| #pragma omp atomic | |
| z += x(y[1]); | |
| } |