Path: blob/main/system/lib/libc/emscripten_memmove.c
6162 views
// XXX EMSCRIPTEN ASAN: build an uninstrumented version of memmove1#if defined(__EMSCRIPTEN__) && defined(__has_feature)2#if __has_feature(address_sanitizer)3#define memmove __attribute__((no_sanitize("address"))) emscripten_builtin_memmove4#endif5#endif67#ifdef EMSCRIPTEN_OPTIMIZE_FOR_OZ89#include <stddef.h>1011void *memcpy(void *dest, const void *src, size_t n);1213void *memmove(void *dest, const void *src, size_t n) {14if (dest < src) return memcpy(dest, src, n);15unsigned char *d = (unsigned char *)dest + n;16const unsigned char *s = (const unsigned char *)src + n;17#pragma clang loop unroll(disable)18while(n--) *--d = *--s;19return dest;20}2122#else2324#include "musl/src/string/memmove.c"2526#endif272829