// RUN: clang -fsyntax-only -verify %s struct X { operator bool(); }; int& f(bool); float& f(int); void f_test(X x) { int& i1 = f(x); } struct Y { operator short(); operator float(); }; void g(int); void g_test(Y y) { g(y); short s; s = y; } struct A { }; struct B : A { }; struct C { operator B&(); }; // Test reference binding via an lvalue conversion function. void h(volatile A&); void h_test(C c) { h(c); }