// { 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); }