1// { dg-do compile } 2 3struct Layer; 4template <typename> struct A 5{ 6 Layer *m_fn1 (); 7 Layer &operator[](int p1) { return m_fn1 ()[p1]; } 8}; 9struct Layer 10{ 11}; 12void fn1 (A<int> &p1, int Layer::*p2, int p3) 13{ 14 for (int a = 0;; ++a, ++p3) 15 p1[p3].*p2 = p1[a].*p2; 16} 17