1// { dg-do assemble } 2 3template <class T> 4class S2 5{ 6public: 7 static void f(); 8}; 9 10 11template <class U> 12class S1 13{ 14 template <class T> 15 friend class S2; 16 17 static int i; 18}; 19 20 21template <class T> 22void S2<T>::f() 23{ 24 S1<T>::i = 3; 25} 26 27void g() 28{ 29 S2<double>::f(); 30 S2<char>::f(); 31} 32