/* { dg-do compile { target c++11 } } */ /* { dg-options "-g -O2" } */ template struct b { a c; }; template struct e { d *operator->(); }; template class h { public: typedef e ag; }; class i { protected: i(int); }; class j { virtual void k(int) = 0; public: int f; void l() { k(f); } }; struct m : i { int cn; m() : i(cn) { struct n : j { n() {} void k(int) {} }; } }; struct o { o() { for (h>>::ag g;;) g->c.c->l(); } }; void fn1() { o(); }