// { dg-do link }
// GROUPS passed templates
class ostream {};
template <class T>
class S;
template <class T>
void operator<<(ostream&, S<T>) {}
template <class T>
class S
{
friend void operator<<<>(ostream&, const S<T>);
};
int main()
{
ostream o;
o << S<int>();
}