// { 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 struct A { typedef int T; void foo(); }; template void A::T::foo() {} // { dg-error "" }