I guess @noalias and @nonnull LLVM parameter attributes would be useful here as memcpy does not allow overlapping arrays and passing null is undefined behavior.