Loop directly over sanitizers to build in cmake

Summary: Cleaner than computing the intersection for each possible sanitizer

Reviewers: compnerd, beanz

Subscribers: llvm-commits, mgorny

Differential Revision: https://reviews.llvm.org/D34693

llvm-svn: 306453
This commit is contained in:
Francis Ricci 2017-06-27 19:32:39 +00:00
parent 352e60556e
commit d379d1c2ee
2 changed files with 9 additions and 34 deletions

View File

@ -21,17 +21,6 @@ function(compiler_rt_build_runtime runtime)
string(TOUPPER ${runtime} runtime_uppercase)
if(COMPILER_RT_HAS_${runtime_uppercase})
add_subdirectory(${runtime})
foreach(directory ${ARGN})
add_subdirectory(${directory})
endforeach()
endif()
endfunction()
function(compiler_rt_build_sanitizer sanitizer)
string(TOLOWER ${sanitizer} sanitizer_lowercase)
list(FIND COMPILER_RT_SANITIZERS_TO_BUILD ${sanitizer_lowercase} result)
if(NOT ${result} EQUAL -1)
compiler_rt_build_runtime(${sanitizer} ${ARGN})
endif()
endfunction()
@ -44,14 +33,12 @@ if(COMPILER_RT_BUILD_SANITIZERS)
add_subdirectory(ubsan)
endif()
compiler_rt_build_sanitizer(asan)
compiler_rt_build_sanitizer(dfsan)
compiler_rt_build_sanitizer(msan)
compiler_rt_build_sanitizer(tsan tsan/dd)
compiler_rt_build_sanitizer(safestack)
compiler_rt_build_sanitizer(cfi)
compiler_rt_build_sanitizer(esan)
compiler_rt_build_sanitizer(scudo)
foreach(sanitizer ${COMPILER_RT_SANITIZERS_TO_BUILD})
compiler_rt_build_runtime(${sanitizer})
if(${sanitizer} STREQUAL tsan)
add_subdirectory(tsan/dd)
endif()
endforeach()
compiler_rt_build_runtime(profile)
endif()

View File

@ -45,14 +45,6 @@ function(compiler_rt_test_runtime runtime)
endif()
endfunction()
function(compiler_rt_test_sanitizer sanitizer)
string(TOLOWER ${sanitizer} sanitizer_lowercase)
list(FIND COMPILER_RT_SANITIZERS_TO_BUILD ${sanitizer_lowercase} result)
if(NOT ${result} EQUAL -1)
compiler_rt_test_runtime(${sanitizer} ${ARGN})
endif()
endfunction()
# Run sanitizer tests only if we're sure that clang would produce
# working binaries.
if(COMPILER_RT_CAN_EXECUTE_TESTS)
@ -67,13 +59,9 @@ if(COMPILER_RT_CAN_EXECUTE_TESTS)
compiler_rt_test_runtime(ubsan cfi)
compiler_rt_test_runtime(sanitizer_common)
compiler_rt_test_sanitizer(asan)
compiler_rt_test_sanitizer(dfsan)
compiler_rt_test_sanitizer(msan)
compiler_rt_test_sanitizer(tsan)
compiler_rt_test_sanitizer(safestack)
compiler_rt_test_sanitizer(esan)
compiler_rt_test_sanitizer(scudo)
foreach(sanitizer ${COMPILER_RT_SANITIZERS_TO_BUILD})
compiler_rt_test_runtime(${sanitizer})
endforeach()
compiler_rt_test_runtime(profile)
endif()