// PR c++/87989 // { dg-do link } // Resolved to template instantiation rather than non-template fn. struct X { template operator T() const; // no definition operator float() const {return 0.f;} }; template T f(const X &x) { // Resoved in error to X::operator float() const` // instead of correct `X::operator float() const return x.operator T(); } int main () { return f(X ()); }