1 // Reduced from the testcase for c++/29433
2 
3 template <class T>
4 struct A: T
5 {
6   void f(typename T::type);
7   using T::f;
gA8   void g() { f(1); }
9 };
10 
11 template <class T>
12 struct B: T
13 { typedef int type; };
14 
15 struct C
16 {
17   typedef double type;
18   void f();
19 };
20 
main()21 int main()
22 {
23   A<B<A<C> > > a;
24   a.g();
25 }
26