| // { dg-do compile } | |
| struct Layer; | |
| template <typename> struct A | |
| { | |
| Layer *m_fn1 (); | |
| Layer &operator[](int p1) { return m_fn1 ()[p1]; } | |
| }; | |
| struct Layer | |
| { | |
| }; | |
| void fn1 (A<int> &p1, int Layer::*p2, int p3) | |
| { | |
| for (int a = 0;; ++a, ++p3) | |
| p1[p3].*p2 = p1[a].*p2; | |
| } |