Changeset View
Changeset View
Standalone View
Standalone View
cmake/modules/Sanitizers.cmake
Show All 30 Lines | function(enable_sanitizers) | ||||
# Some sanitizers require some extra options to be efficient | # Some sanitizers require some extra options to be efficient | ||||
if("address" IN_LIST ARGN OR "undefined" IN_LIST ARGN) | if("address" IN_LIST ARGN OR "undefined" IN_LIST ARGN) | ||||
include(AddCompilerFlags) | include(AddCompilerFlags) | ||||
add_compiler_flags(-fno-omit-frame-pointer -fno-optimize-sibling-calls) | add_compiler_flags(-fno-omit-frame-pointer -fno-optimize-sibling-calls) | ||||
endif() | endif() | ||||
add_compile_options(${_fsanitize_option}) | add_compile_options(${_fsanitize_option}) | ||||
add_link_options(${_fsanitize_option}) | add_link_options(${_fsanitize_option}) | ||||
include(TestSuite) | |||||
set(SAN_SUPP_DIR "${CMAKE_SOURCE_DIR}/test/sanitizer_suppressions") | |||||
if("address" IN_LIST ARGN) | |||||
add_test_environment(ASAN_OPTIONS malloc_context_size=0) | |||||
add_test_environment(LSAN_OPTIONS "suppressions=${SAN_SUPP_DIR}/lsan") | |||||
endif() | |||||
if("thread" IN_LIST ARGN) | |||||
add_test_environment(TSAN_OPTIONS "suppressions=${SAN_SUPP_DIR}/tsan") | |||||
endif() | |||||
if("undefined" IN_LIST ARGN) | |||||
add_test_environment(UBSAN_OPTIONS "suppressions=${SAN_SUPP_DIR}/ubsan:print_stacktrace=1:halt_on_error=1") | |||||
endif() | |||||
endfunction() | endfunction() |