1// { dg-do link  }
2// { dg-options "-g" }
3// Bug: g++ fails to instantiate operator<<.
4
5struct ostream {
6  ostream& operator<< (const char *) { return *this; };
7};
8
9template <class T> class foo;
10
11template <class T> ostream& operator<< (ostream& ios, foo<T>&obj) {return ios;}
12
13template <class T> class foo {
14  friend ostream& operator<<<>(ostream&, foo<T>&);
15};
16
17int main()
18{
19  ostream cout;
20  foo<int> foo_obj;
21  cout << foo_obj; // causes linker error
22  return 0;
23}
24