1 // PR middle-end/18683 2 // { dg-do compile } 3 // { dg-options "-O0" } 4 5 template<typename _CharT> 6 struct basic_ostream 7 { 8 basic_ostream& operator<<(int __n); 9 }; 10 11 extern basic_ostream<char> cout; 12 13 template<int> struct linear_congruential 14 { 15 template<class CharT> 16 friend basic_ostream<CharT>& 17 operator<<(basic_ostream<CharT>& os, 18 const linear_congruential& lcg) 19 { 20 return os << 1; 21 } 22 }; 23 instantiate_all()24void instantiate_all() 25 { 26 linear_congruential<0> lcf; 27 cout << lcf; 28 } 29 30