1 /* { dg-do compile { target c++11 } } */ 2 /* { dg-options "-g -O2" } */ 3 4 template <typename a> struct b { a c; }; 5 template <typename d> struct e { d *operator->(); }; 6 template <typename d> class h { 7 public: 8 typedef e<d> ag; 9 }; 10 class i { 11 protected: 12 i(int); 13 }; 14 class j { 15 virtual void k(int) = 0; 16 17 public: 18 int f; l()19 void l() { k(f); } 20 }; 21 struct m : i { 22 int cn; mm23 m() : i(cn) { 24 struct n : j { 25 n() {} 26 void k(int) {} 27 }; 28 } 29 }; 30 struct o { oo31 o() { 32 for (h<b<b<j *>>>::ag g;;) 33 g->c.c->l(); 34 } 35 }; fn1()36void fn1() { o(); } 37