1// { dg-do run  }
2template <class T>
3class C;
4
5template <class U>
6struct S
7{
8  template <class V>
9  void f(V v)
10    {
11      C<V> cv;
12      cv.i = 3;
13    }
14};
15
16
17template <class T>
18class C
19{
20  template <class U>
21  template <class V>
22  friend void S<U>::f(V);
23
24  int i;
25};
26
27
28int main()
29{
30  S<int> si;
31  si.f(3.0);
32  S<long> sl;
33  sl.f('c');
34}
35