diff --git a/cmake/compiler/msvc/settings.cmake b/cmake/compiler/msvc/settings.cmake index fc1b8122af5..36930733bb2 100644 --- a/cmake/compiler/msvc/settings.cmake +++ b/cmake/compiler/msvc/settings.cmake @@ -159,6 +159,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 a1ea6538dd2..a73c8329993 100644 --- a/src/server/scripts/Commands/cs_debug.cpp +++ b/src/server/scripts/Commands/cs_debug.cpp @@ -1634,7 +1634,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; } @@ -1643,7 +1643,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; }