Commit 4a79df52 authored by Dominik Charousset's avatar Dominik Charousset

Check whether ASan is available before using it

parent 60ed2f7f
...@@ -151,9 +151,21 @@ if("${CMAKE_CXX_COMPILER_ID}" MATCHES "Clang") ...@@ -151,9 +151,21 @@ if("${CMAKE_CXX_COMPILER_ID}" MATCHES "Clang")
endif() endif()
# enable address sanitizer if requested by the user # enable address sanitizer if requested by the user
if(ENABLE_ADDRESS_SANITIZER) if(ENABLE_ADDRESS_SANITIZER)
message(STATUS "Enable address sanitizer") # check whether address sanitizer is available
set(EXTRA_FLAGS set(CXXFLAGS_BACKUP "${CMAKE_CXX_FLAGS}")
"${EXTRA_FLAGS} -fsanitize=address -fno-omit-frame-pointer") set(CMAKE_CXX_FLAGS "-fsanitize=address -fno-omit-frame-pointer")
try_run(ProgramResult
CompilationSucceeded
"${CMAKE_BINARY_DIR}"
"${CMAKE_CURRENT_SOURCE_DIR}/cmake/get_compiler_version.cpp")
if(NOT CompilationSucceeded)
message(WARNING "Address Sanitizer is not available on selected compiler")
else()
message(STATUS "Enable Address Sanitizer")
set(EXTRA_FLAGS "${EXTRA_FLAGS} -fsanitize=address -fno-omit-frame-pointer")
endif()
# restore CXX flags
set(CMAKE_CXX_FLAGS "${CXXFLAGS_BACKUP}")
endif(ENABLE_ADDRESS_SANITIZER) endif(ENABLE_ADDRESS_SANITIZER)
# -pthread is ignored on MacOSX but required on other platforms # -pthread is ignored on MacOSX but required on other platforms
if(NOT APPLE AND NOT WIN32) if(NOT APPLE AND NOT WIN32)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment