I think any software that ignores the ISO
warning
"If copying takes place between objects that overlap, the
behavior is
undefined" needs fixing.
Absolutely, it is incorrect and should be fixed.
Having just replaced the memcpy with Linus safe forward-copy version
from https://bugzilla.redhat.com/show_bug.cgi?id=638477#c38 I can
report no more problems with my Open MPI program which was
previously behaving unpredictably after calls to memcpy with
overlapping ranges.
*** Fedora 14 x86_64 and other 64-bit glibc 2.12 distros break Open
MPI ***
As for a fix, I suspect glibc developers will dig their heels in, so
how do we fix Open MPI? We could just replace memcpy call with
memmove. This has to be better than rolling an MPI-specific memory
copy function for every architecture.