Skip to content

Commit

Permalink
Loop directly over sanitizers to build in cmake
Browse files Browse the repository at this point in the history
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
  • Loading branch information
fjricci committed Jun 27, 2017
1 parent 352e605 commit d379d1c
Show file tree
Hide file tree
Showing 2 changed files with 9 additions and 34 deletions.
25 changes: 6 additions & 19 deletions compiler-rt/lib/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -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()

Expand All @@ -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()
Expand Down
18 changes: 3 additions & 15 deletions compiler-rt/test/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -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)
Expand All @@ -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()
Expand Down

0 comments on commit d379d1c

Please sign in to comment.