diff --git a/cmake/FindSanitizers.cmake b/cmake/FindSanitizers.cmake index f6db13e..de3ea17 100644 --- a/cmake/FindSanitizers.cmake +++ b/cmake/FindSanitizers.cmake @@ -35,6 +35,16 @@ find_package(UBSan ${FIND_QUIETLY_FLAG}) +function(sanitizer_add_blacklist_file FILE) + if(NOT IS_ABSOLUTE ${FILE}) + set(FILE "${CMAKE_CURRENT_SOURCE_DIR}/${FILE}") + endif() + get_filename_component(FILE "${FILE}" REALPATH) + + sanitizer_check_compiler_flags("-fsanitize-blacklist=${FILE}" + "SanitizerBlacklist" "SanBlist") +endfunction() + function(add_sanitizers TARGET) add_sanitize_address(${TARGET}) add_sanitize_thread(${TARGET}) diff --git a/cmake/sanitize-helpers.cmake b/cmake/sanitize-helpers.cmake index af0b456..b61281a 100644 --- a/cmake/sanitize-helpers.cmake +++ b/cmake/sanitize-helpers.cmake @@ -150,6 +150,8 @@ function (saitizer_add_flags TARGET NAME PREFIX) # Set compile- and link-flags for target. set_property(TARGET ${TARGET} APPEND_STRING PROPERTY COMPILE_FLAGS " ${${PREFIX}_${TARGET_COMPILER}_FLAGS}") + set_property(TARGET ${TARGET} APPEND_STRING + PROPERTY COMPILE_FLAGS " ${SanBlist_${TARGET_COMPILER}_FLAGS}") set_property(TARGET ${TARGET} APPEND_STRING PROPERTY LINK_FLAGS " ${${PREFIX}_${TARGET_COMPILER}_FLAGS}") endfunction ()