// Contributed by Dodji Seketeli <dodji@redhat.com>
// Origin PR c++/35405
// { dg-do compile }
template<typename T> struct a
{
    template <template <typename> class C, typename X, C<X>* =0>
    struct b
    {
    };
};
void
foo ()
{
  a<int> a1; // OK
  a<int>::b<a,int> b1; // { dg-error "template argument|convert" }
}
// { dg-prune-output "invalid type in declaration" }