From 1850a7a9ca355d8edcf80e24cdd4bb6522990664 Mon Sep 17 00:00:00 2001 From: Roy Sundahl Date: Mon, 25 Jul 2022 09:31:02 -0700 Subject: [PATCH] [asan][test] Additional test requiring weak symbol for dyld64. Extension of D127929 rdar://80997227 Differential Revision: https://reviews.llvm.org/D130499 --- compiler-rt/test/asan/TestCases/Posix/free_hook_realloc.cpp | 9 ++++++--- compiler-rt/test/memprof/TestCases/free_hook_realloc.cpp | 10 +++++++--- 2 files changed, 13 insertions(+), 6 deletions(-) diff --git a/compiler-rt/test/asan/TestCases/Posix/free_hook_realloc.cpp b/compiler-rt/test/asan/TestCases/Posix/free_hook_realloc.cpp index cbc5d6f..9242c94 100644 --- a/compiler-rt/test/asan/TestCases/Posix/free_hook_realloc.cpp +++ b/compiler-rt/test/asan/TestCases/Posix/free_hook_realloc.cpp @@ -8,14 +8,17 @@ static void *glob_ptr; -extern "C" { -void __sanitizer_free_hook(const volatile void *ptr) { +// Required for dyld macOS 12.0+ +#if (__APPLE__) +__attribute__((weak)) +#endif +extern "C" void +__sanitizer_free_hook(const volatile void *ptr) { if (ptr == glob_ptr) { *(int*)ptr = 0; write(1, "FreeHook\n", sizeof("FreeHook\n")); } } -} int main() { int *x = (int*)malloc(100); diff --git a/compiler-rt/test/memprof/TestCases/free_hook_realloc.cpp b/compiler-rt/test/memprof/TestCases/free_hook_realloc.cpp index 6ed3483..85e29a3 100644 --- a/compiler-rt/test/memprof/TestCases/free_hook_realloc.cpp +++ b/compiler-rt/test/memprof/TestCases/free_hook_realloc.cpp @@ -7,14 +7,18 @@ static void *glob_ptr; -extern "C" { -void __sanitizer_free_hook(const volatile void *ptr) { +// (Speculative fix if memprof is enabled on Apple platforms) +// Required for dyld macOS 12.0+ +#if (__APPLE__) +__attribute__((weak)) +#endif +extern "C" void +__sanitizer_free_hook(const volatile void *ptr) { if (ptr == glob_ptr) { *(int *)ptr = 0; write(1, "FreeHook\n", sizeof("FreeHook\n")); } } -} int main() { int *x = (int *)malloc(100); -- 2.7.4