]> git.ipfire.org Git - thirdparty/ccache.git/commitdiff
Merge address and UB sanitizer (#647)
authorAlexander Lanin <alex@lanin.de>
Mon, 31 Aug 2020 20:01:22 +0000 (22:01 +0200)
committerGitHub <noreply@github.com>
Mon, 31 Aug 2020 20:01:22 +0000 (22:01 +0200)
.github/workflows/build.yaml
cmake/StandardSettings.cmake

index 136ac58ae617a17b8996039b3a809f7b0d32bcdc..fec2b5321acb05c09afd17fa20f82ae30d8340b7 100644 (file)
@@ -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
 
index a30f8207241d385bd8c5a5ecf1bb7791bb29a73e..755ff9f2d83583895b263570bb449bee0ecdbfd8 100644 (file)
@@ -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()