Ver código fonte

Check if MemorySanitizer is used on x86_64 Linux.

According to the MemorySanitizer documentation, it is only compatible with 64bit
Linux at the moment.
master
Alexander Haase 8 anos atrás
pai
commit
de1a134183
1 arquivos alterados com 17 adições e 2 exclusões
  1. +17
    -2
      cmake/FindMSan.cmake

+ 17
- 2
cmake/FindMSan.cmake Ver arquivo

@@ -31,10 +31,25 @@ set(FLAG_CANDIDATES

include(sanitize-helpers)

sanitizer_check_compiler_flags("${FLAG_CANDIDATES}" "MemorySanitizer" "MSan")
if (SANITIZE_MEMORY)
if (NOT ${CMAKE_SYSTEM_NAME} STREQUAL "Linux")
message(WARNING "MemorySanitizer disabled for target ${TARGET} because "
"MemorySanitizer is supported for Linux systems only.")
set(SANITIZE_MEMORY Off CACHE BOOL
"Enable MemorySanitizer for sanitized targets." FORCE)
elseif (NOT ${CMAKE_SIZEOF_VOID_P} EQUAL 8)
message(WARNING "MemorySanitizer disabled for target ${TARGET} because "
"MemorySanitizer is supported for 64bit systems only.")
set(SANITIZE_MEMORY Off CACHE BOOL
"Enable MemorySanitizer for sanitized targets." FORCE)
else ()
sanitizer_check_compiler_flags("${FLAG_CANDIDATES}" "MemorySanitizer"
"MSan")
endif ()
endif ()

function (add_sanitize_memory TARGET)
if (NOT SANITIZE_THREAD)
if (NOT SANITIZE_MEMORY)
return()
endif ()



Carregando…
Cancelar
Salvar