1// { dg-do assemble  }
2
3template <class T>
4struct S1 {};
5
6template <class T>
7void f(T);
8
9template <class C>
10struct S2
11{
12  template <class T>
13  void f<S1<T> >(T) {}  // { dg-error "" } bad specialization.
14};
15
16
17template <class T>
18struct S3
19{
20  friend class S2<T>;
21};
22