// { dg-do assemble } // GROUPS passed visibility template class B; template class A {int n; friend class B;}; template class B {public: void method(A) const;}; template void B::method(A X) const {X.n=0;} typedef B<2> B2;