blob: d36310709ff3ba87cf9b3175cdda551831773874 [file] [edit]
#include "emscripten_internal.h" // for emscripten_memset_big
#if defined(__has_feature) && __has_feature(address_sanitizer)
// build an uninstrumented version of memset
__attribute__((no_sanitize("address"))) void *__musl_memset(void *str, int c, size_t n);
__attribute__((no_sanitize("address"))) void *__memset(void *str, int c, size_t n);
#endif
__attribute__((__weak__)) void *__musl_memset(void *str, int c, size_t n);
__attribute__((__weak__)) void *__memset(void *str, int c, size_t n);
#ifdef EMSCRIPTEN_OPTIMIZE_FOR_OZ
void *__memset(void *str, int c, size_t n) {
unsigned char *s = (unsigned char *)str;
#pragma clang loop unroll(disable)
while(n--) *s++ = c;
return str;
}
#elif defined(__wasm_bulk_memory__)
void *__memset(void *str, int c, size_t n) {
return emscripten_memset_bulkmem(str, c, n);
}
#else
#define memset __memset
#include "musl/src/string/memset.c"
#undef memset
#endif
weak_alias(__memset, emscripten_builtin_memset);
weak_alias(__memset, memset);