https://gcc.gnu.org/bugzilla/show_bug.cgi?id=90546
--- Comment #11 from CVS Commits <cvs-commit at gcc dot gnu.org> --- The releases/gcc-8 branch has been updated by Jason Merrill <ja...@gcc.gnu.org>: https://gcc.gnu.org/g:c93117eea148326a718ae1e413bc85f4fa257d8f commit r8-10079-gc93117eea148326a718ae1e413bc85f4fa257d8f Author: Jason Merrill <ja...@redhat.com> Date: Wed Feb 26 00:33:52 2020 -0500 c++: Allow template rvalue-ref conv to bind to lvalue ref. When I implemented the [over.match.ref] rule that a reference conversion function needs to match l/rvalue of the target reference type it changed our handling of this testcase. It seems to me that our current behavior is what the standard says, but it doesn't seem desirable, and all the other compilers have our old behavior. So let's limit the change to non-templates until there's some clarification from the committee. gcc/cp/ChangeLog 2020-02-26 Jason Merrill <ja...@redhat.com> PR c++/90546 * call.c (build_user_type_conversion_1): Allow a template conversion returning an rvalue reference to bind directly to an lvalue.