diff --git a/cmake/ECM/modules/ECMEnableSanitizers.cmake b/cmake/ECM/modules/ECMEnableSanitizers.cmake index e04c8311..eee9c0ec 100644 --- a/cmake/ECM/modules/ECMEnableSanitizers.cmake +++ b/cmake/ECM/modules/ECMEnableSanitizers.cmake @@ -40,6 +40,7 @@ # - thread # - leak # - undefined +# - fuzzer-no-link # - fuzzer # # The sanitizers "address", "memory" and "thread" are mutually exclusive. You @@ -119,7 +120,11 @@ macro (enable_sanitizer_flags sanitize_option) set(XSAN_LINKER_FLAGS "lsan") elseif (${sanitize_option} MATCHES "undefined") check_compiler_version("4.9" "3.1") - set(XSAN_COMPILE_FLAGS "-fsanitize=undefined -fno-omit-frame-pointer -fno-optimize-sibling-calls") + set(XSAN_COMPILE_FLAGS "-fsanitize=undefined -fsanitize=float-divide-by-zero -fno-omit-frame-pointer -fno-optimize-sibling-calls") + elseif (${sanitize_option} MATCHES "fuzzer-no-link") + check_compiler_version("99.99" "6.0") + set(XSAN_COMPILE_FLAGS "-fsanitize=fuzzer-no-link") + set(XSAN_LINKER_FLAGS "-fsanitize=fuzzer-no-link") elseif (${sanitize_option} MATCHES "fuzzer") check_compiler_version("99.99" "6.0") set(XSAN_COMPILE_FLAGS "-fsanitize=fuzzer")