// { dg-do compile }
// PR C++/29388
// We used to ICE in is_ancestor because we would use int as the context of foo
// but that is invalid.
template<int> struct A
{
	  typedef int T;
	    void foo();
};
template<int N> void A<N>::T::foo() {} // { dg-error "" }