diff --git a/compiler-rt/lib/sanitizer_common/sanitizer_redefine_builtins.h b/compiler-rt/lib/sanitizer_common/sanitizer_redefine_builtins.h index 7d8891117657..6a7d1dc79a52 100644 --- a/compiler-rt/lib/sanitizer_common/sanitizer_redefine_builtins.h +++ b/compiler-rt/lib/sanitizer_common/sanitizer_redefine_builtins.h @@ -17,11 +17,23 @@ // The asm hack only works with GCC and Clang. # if !defined(_WIN32) && !defined(_AIX) && !defined(__APPLE__) -asm(R"( - .set memcpy, __sanitizer_internal_memcpy - .set memmove, __sanitizer_internal_memmove - .set memset, __sanitizer_internal_memset - )"); +# if defined(__hexagon__) + +# define SANITIZER_REDEFINE_BUILTIN_ASM(name) \ + asm(".set " #name ", __sanitizer_internal_" #name) + +# else + +# define SANITIZER_REDEFINE_BUILTIN_ASM(name) \ + asm(#name " = __sanitizer_internal_" #name) + +# endif + +SANITIZER_REDEFINE_BUILTIN_ASM(memcpy); +SANITIZER_REDEFINE_BUILTIN_ASM(memmove); +SANITIZER_REDEFINE_BUILTIN_ASM(memset); + +# undef SANITIZER_REDEFINE_BUILTIN_ASM # if defined(__cplusplus) && \ !defined(SANITIZER_COMMON_REDEFINE_BUILTINS_IN_STD)