1// { dg-do compile } 2 3class A 4{ 5}; 6template <class type> struct D:A 7{ 8 type & operator[](int); 9}; 10struct B 11{ 12 typedef D <int *>Row; 13 struct C 14 { 15 Row *row; 16 }; 17}; 18B::C a; 19B::Row & b = *a.row; 20void 21fn1 () 22{ 23 while (1) 24 b[0] = b[0] ? (int *) -1 : 0; 25} 26