From 799fd241ebbfa856e0102de2652005f3dc28f9ce Mon Sep 17 00:00:00 2001 From: Alexander Lanin Date: Mon, 31 Aug 2020 22:01:22 +0200 Subject: [PATCH] Merge address and UB sanitizer (#647) --- .github/workflows/build.yaml | 13 ++----------- cmake/StandardSettings.cmake | 10 +++++----- 2 files changed, 7 insertions(+), 16 deletions(-) diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml index 136ac58ae..fec2b5321 100644 --- a/.github/workflows/build.yaml +++ b/.github/workflows/build.yaml @@ -105,21 +105,12 @@ jobs: RUN_TESTS: 0 apt_get: elfutils mingw-w64 - - name: Clang UB sanitizer + - name: Clang address & UB sanitizer os: ubuntu-20.04 CC: clang CXX: clang++ ENABLE_CACHE_CLEANUP_TESTS: 1 - CMAKE_PARAMS: -DCMAKE_BUILD_TYPE=CI -DENABLE_SANITIZER_UNDEFINED_BEHAVIOR=ON - ASAN_OPTIONS: detect_leaks=0 - apt_get: elfutils libzstd-dev - - - name: Clang address sanitizer - os: ubuntu-20.04 - CC: clang - CXX: clang++ - ENABLE_CACHE_CLEANUP_TESTS: 1 - CMAKE_PARAMS: -DCMAKE_BUILD_TYPE=CI -DENABLE_SANITIZER_ADDRESS=ON + CMAKE_PARAMS: -DCMAKE_BUILD_TYPE=CI -DENABLE_SANITIZER_ADDRESS=ON -DENABLE_SANITIZER_UNDEFINED_BEHAVIOR=ON ASAN_OPTIONS: detect_leaks=0 apt_get: elfutils libzstd-dev diff --git a/cmake/StandardSettings.cmake b/cmake/StandardSettings.cmake index a30f82072..755ff9f2d 100644 --- a/cmake/StandardSettings.cmake +++ b/cmake/StandardSettings.cmake @@ -38,15 +38,15 @@ if(CMAKE_CXX_COMPILER_ID MATCHES "^GNU|Clang$") list(APPEND SANITIZERS "thread") endif() - if(SANITIZERS) - string(REPLACE ";" " " LIST_OF_SANITIZERS "${SANITIZERS}") + foreach(SANITIZER IN LISTS SANITIZERS) target_compile_options( standard_settings - INTERFACE -fsanitize=${LIST_OF_SANITIZERS}) + INTERFACE -fsanitize=${SANITIZER}) target_link_libraries( standard_settings - INTERFACE -fsanitize=${LIST_OF_SANITIZERS}) - endif() + INTERFACE -fsanitize=${SANITIZER}) + endforeach() + elseif(MSVC) target_compile_options(standard_settings INTERFACE /std:c++latest /Zc:preprocessor /Zc:__cplusplus /D_CRT_SECURE_NO_WARNINGS) endif() -- 2.47.3