// { dg-do assemble } template class a; template void foo( a& thea ); template class a { public: friend void foo<>( a& thea ); private: T amember; }; template void foo( a& thea ) { thea.amember = 0; } template class a;