https://gcc.gnu.org/bugzilla/show_bug.cgi?id=108846
--- Comment #13 from Jonathan Wakely <redi at gcc dot gnu.org> --- That specialization is only used for trivial types, so moving is equivalent to copying (otherwise we couldn't use memmove anyway). So it doesn't make any difference whether you move an lvalue or rvalue, it's just a bitwise copy anyway.