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