blob: eccb60b852aed2ca8c8c60957aaeaa8bb0b932f4 [file] [log] [blame]
// Contribued by Gabriel Dos Reis <gdr@codesourcery.com>
// Origin: iskey@i100.ryd.student.liu.se
class ostream;
extern ostream& cout;
template <class T> struct s;
template <class T>
ostream& operator<<(ostream &o, const typename s<T>::t &x) // { dg-message "note" }
{
return o;
}
template <class T>
struct s {
struct t
{
friend ostream&
operator<<<T>(ostream&, const typename s<T>::t &);
};
t x;
};
int main()
{
s<int>::t y;
cout << y; // { dg-error "" }
// { dg-message "(candidate|deduce template parameter)" "candidate note" { target *-*-* } .-1 }
}