On April 12, 2015 10:56:40 AM CEST, non...@inventati.org wrote: >On Sun, Apr 12, 2015 at 10:41:36AM +0200, Silvan Jegen wrote: >> I was thinking about this option too but in that case you would be >> calling memmove with an identical src and dst when i == 0. The man >page >> for glibc memmove(3) does not mention anything about this being a >noop >> so I am not sure that is a good thing to do. > >"The memory areas may overlap: copying takes place as though the bytes >in >src are first copied into a temporary array that does not overlap src >or dest, and the bytes are then copied from the temporary array to >dest." > >src == dest is just a case of overlapping areas, it must work.
It is not a nop though, but two copy operations. Even with i=0 the function call might be more costly than a simple je.