From ca03ecf3e6aa62070676487eb413abb563322f86 Mon Sep 17 00:00:00 2001 From: Shauren Date: Tue, 22 Aug 2023 12:56:13 +0200 Subject: Build: Support ASAN on msvc (cherry picked from commit 0a0b420d866f070d4b1208bb3c4451398797c6ef) --- cmake/compiler/msvc/settings.cmake | 13 +++++++++++++ src/server/scripts/Commands/cs_debug.cpp | 4 ++-- 2 files changed, 15 insertions(+), 2 deletions(-) diff --git a/cmake/compiler/msvc/settings.cmake b/cmake/compiler/msvc/settings.cmake index f6947d6eaad..96b79ac2683 100644 --- a/cmake/compiler/msvc/settings.cmake +++ b/cmake/compiler/msvc/settings.cmake @@ -151,6 +151,19 @@ target_compile_options(trinity-compile-option-interface /we4263 /we4264) +if(ASAN) + target_compile_definitions(trinity-compile-option-interface + INTERFACE + -D_DISABLE_STRING_ANNOTATION + -D_DISABLE_VECTOR_ANNOTATION) + + target_compile_options(trinity-compile-option-interface + INTERFACE + /fsanitize=address) + + message(STATUS "MSVC: Enabled Address Sanitizer ASan") +endif() + # Disable incremental linking in debug builds. # To prevent linking getting stuck (which might be fixed in a later VS version). macro(DisableIncrementalLinking variable) diff --git a/src/server/scripts/Commands/cs_debug.cpp b/src/server/scripts/Commands/cs_debug.cpp index e6f44cc4762..6706173cc00 100644 --- a/src/server/scripts/Commands/cs_debug.cpp +++ b/src/server/scripts/Commands/cs_debug.cpp @@ -1682,7 +1682,7 @@ public: uint8 stack_array[10] = {}; int size = 10; - handler->PSendSysMessage("Triggered an array out of bounds read at address %p, value %u", stack_array + size, stack_array[size]); + handler->PSendSysMessage("Triggered an array out of bounds read at address %p, value %u", static_cast(stack_array + size), stack_array[size]); #endif return true; } @@ -1691,7 +1691,7 @@ public: { #ifdef ASAN uint8* leak = new uint8(); - handler->PSendSysMessage("Leaked 1 uint8 object at address %p", leak); + handler->PSendSysMessage("Leaked 1 uint8 object at address %p", static_cast(leak)); #endif return true; } -- cgit v1.2.3