// { dg-do run }
// Bug: g++ generates an error trying to generate the first foo<int>, when
// it should silently fail and go on to the next one.
template<class T, typename U> class A { };
template<class T> void
foo(const A<T,typename T::N>&);
template<typename T>
class B { };
template<typename T> void
foo(B<T> const &) { }
int
main(void)
{
B<int> sa;
foo<int> (sa);
}