- Use intptr_t in place of long as the word type in the core copying loop where aligned words a copied. This preserved the provenance of any copied pointers.
- When working with the address of src or dst use ptraddr_t rather than uintptr_t. This avoid ambigious provenance in expressions involving multiple addresses.
As a minor tweak, rename the function to memmove since that's the
interface it implements (overlapping src and dst are permitted) and make
memcpy the alias rather than the other way around.
Effort: CHERI upstreaming
Sponsored by: Innovate UK