https://github.com/farzonl updated https://github.com/llvm/llvm-project/pull/66973
>From 141c9aa7f9b1a6f7b4f877a82c4ccf92ae2b8287 Mon Sep 17 00:00:00 2001 From: Farzon Lotfi <far...@farzon.org> Date: Wed, 20 Sep 2023 22:58:08 -0400 Subject: [PATCH] Changes to support running tests for Windows arm64 asan 1. Differentiate SANITIZER_WINDOWS64 for x64 and arm64 2. fix A Warning where asserts needs messages 3. turn of interception tests that expect x86 assembly --- compiler-rt/lib/interception/interception_win.cpp | 4 ++-- .../lib/interception/tests/interception_win_test.cpp | 2 ++ compiler-rt/lib/sanitizer_common/sanitizer_platform.h | 8 ++++++++ 3 files changed, 12 insertions(+), 2 deletions(-) diff --git a/compiler-rt/lib/interception/interception_win.cpp b/compiler-rt/lib/interception/interception_win.cpp index 1b681ada37b170d..4c1c4ca098ee71e 100644 --- a/compiler-rt/lib/interception/interception_win.cpp +++ b/compiler-rt/lib/interception/interception_win.cpp @@ -462,7 +462,7 @@ static size_t GetInstructionSize(uptr address, size_t* rel_offset = nullptr) { return 4; #endif -#if SANITIZER_WINDOWS64 +#if SANITIZER_WINDOWSx64 if (memcmp((u8*)address, kPrologueWithShortJump1, sizeof(kPrologueWithShortJump1)) == 0 || memcmp((u8*)address, kPrologueWithShortJump2, @@ -544,7 +544,7 @@ static size_t GetInstructionSize(uptr address, size_t* rel_offset = nullptr) { return 7; } -#if SANITIZER_WINDOWS64 +#if SANITIZER_WINDOWSx64 switch (*(u8*)address) { case 0xA1: // A1 XX XX XX XX XX XX XX XX : // movabs eax, dword ptr ds:[XXXXXXXX] diff --git a/compiler-rt/lib/interception/tests/interception_win_test.cpp b/compiler-rt/lib/interception/tests/interception_win_test.cpp index 9159ce405f2dc49..629cdf437f342ec 100644 --- a/compiler-rt/lib/interception/tests/interception_win_test.cpp +++ b/compiler-rt/lib/interception/tests/interception_win_test.cpp @@ -17,6 +17,7 @@ // Too slow for debug build #if !SANITIZER_DEBUG #if SANITIZER_WINDOWS +#if !SANITIZER_WINDOWSARM64 #include <stdarg.h> @@ -793,5 +794,6 @@ TEST(Interception, EmptyExportTable) { } // namespace __interception +#endif // !SANITIZER_WINDOWSARM64 #endif // SANITIZER_WINDOWS #endif // #if !SANITIZER_DEBUG diff --git a/compiler-rt/lib/sanitizer_common/sanitizer_platform.h b/compiler-rt/lib/sanitizer_common/sanitizer_platform.h index 3e1b078a0212f5e..9d2050518947679 100644 --- a/compiler-rt/lib/sanitizer_common/sanitizer_platform.h +++ b/compiler-rt/lib/sanitizer_common/sanitizer_platform.h @@ -260,6 +260,14 @@ # define SANITIZER_ARM64 0 #endif +#if SANITIZER_WINDOWS64 && SANITIZER_ARM64 +# define SANITIZER_WINDOWSARM64 1 +# define SANITIZER_WINDOWSx64 0 +#else +# define SANITIZER_WINDOWSARM64 0 +# define SANITIZER_WINDOWSx64 1 +#endif + #if SANITIZER_SOLARIS && SANITIZER_WORDSIZE == 32 # define SANITIZER_SOLARIS32 1 #else _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits