This is due to a bug in the memmove() implementation for overlapping memory on this particular device, which returns dest + n instead of dest. The compiler in turn recognizes memmove() and uses the return value as an optimization instead of saving the dest pointer on the stack.
This is due to a bug in the memmove() implementation for overlapping memory on this particular device, which returns dest + n instead of dest. The compiler in turn recognizes memmove() and uses the return value as an optimization instead of saving the dest pointer on the stack.