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