// { dg-do assemble }
template <class X> class B;
template <class X> int f (B<X> b) { return 37; }
template <class Y> class B { public: Y y; B() { y = 1; } };
int foo () {
B<double> bd;
return f(bd);
}
// { dg-do assemble }
template <class X> class B;
template <class X> int f (B<X> b) { return 37; }
template <class Y> class B { public: Y y; B() { y = 1; } };
int foo () {
B<double> bd;
return f(bd);
}