https://gcc.gnu.org/bugzilla/show_bug.cgi?id=107085
--- Comment #1 from Jonathan Wakely <redi at gcc dot gnu.org> --- You can't bind a non-const Base& to a Derived prvalue, so this seems correct. The reference doesn't bind to it at all, so it doesn't bind to a temporary.