https://gcc.gnu.org/bugzilla/show_bug.cgi?id=32667
--- Comment #22 from Patrick J. LoPresti <lopresti at gmail dot com> --- I disagree that bug 108296 is a duplicate. That bug requires code that, at least arguably, invokes undefined behavior. See e.g. https://stackoverflow.com/q/7292862/ and https://stackoverflow.com/q/61070828/. This bug is about clearly valid C++ code (object self-assignment) for which GCC emits clearly invalid calls to memcpy() (with dest == src). Now, I suspect what Andrew is thinking is that both of these bugs could be resolved by invoking memmove() instead of memcpy(). That seems like a reasonable idea to me, since small assignments get inlined and large assignments can amortize the overhead. But this bug could also be resolved in other ways, a few of which have been suggested in these comments.