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()36 void fn1() { o(); }
37