// PR c++/56438 struct A { }; A& operator<<(A&, const char*); struct B { int size(); }; struct C { }; template S bar(const S& s, const T& t) { return s; } template void foo() { A a; B b; a << bar(b.size(), C()); // { dg-error "no match" } }