Index: compiler-rt/trunk/test/msan/CMakeLists.txt =================================================================== --- compiler-rt/trunk/test/msan/CMakeLists.txt +++ compiler-rt/trunk/test/msan/CMakeLists.txt @@ -1,26 +1,44 @@ set(MSAN_LIT_SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}) set(MSAN_TESTSUITES) +set(MSAN_TEST_DEPS ${SANITIZER_COMMON_LIT_TEST_DEPS}) set(MSAN_TEST_ARCH ${MSAN_SUPPORTED_ARCH}) if(APPLE) darwin_filter_host_archs(MSAN_SUPPORTED_ARCH MSAN_TEST_ARCH) endif() -foreach(arch ${MSAN_TEST_ARCH}) +macro(add_msan_testsuite arch lld thinlto) set(MSAN_TEST_TARGET_ARCH ${arch}) - string(TOLOWER "-${arch}" MSAN_TEST_CONFIG_SUFFIX) get_test_cc_for_arch(${arch} MSAN_TEST_TARGET_CC MSAN_TEST_TARGET_CFLAGS) - string(TOUPPER ${arch} ARCH_UPPER_CASE) - set(CONFIG_NAME ${ARCH_UPPER_CASE}Config) + + string(TOUPPER ${arch} CONFIG_NAME) + + if (${thinlto}) + set(CONFIG_NAME "thinlto-${CONFIG_NAME}") + list(APPEND MSAN_TEST_DEPS LTO) + endif() + if (${lld}) + set(CONFIG_NAME "lld-${CONFIG_NAME}") + list(APPEND MSAN_TEST_DEPS lld) + endif() + set(MSAN_TEST_USE_THINLTO ${thinlto}) + set(MSAN_TEST_USE_LLD ${lld}) configure_lit_site_cfg( ${CMAKE_CURRENT_SOURCE_DIR}/lit.site.cfg.in ${CMAKE_CURRENT_BINARY_DIR}/${CONFIG_NAME}/lit.site.cfg) list(APPEND MSAN_TESTSUITES ${CMAKE_CURRENT_BINARY_DIR}/${CONFIG_NAME}) +endmacro() + +foreach(arch ${MSAN_TEST_ARCH}) + add_msan_testsuite(${arch} False False) + + if(COMPILER_RT_HAS_LLD AND arch STREQUAL "x86_64" AND NOT (APPLE OR WIN32)) + add_msan_testsuite(${arch} True False) + endif() endforeach() -set(MSAN_TEST_DEPS ${SANITIZER_COMMON_LIT_TEST_DEPS}) if(NOT COMPILER_RT_STANDALONE_BUILD) list(APPEND MSAN_TEST_DEPS msan) endif() Index: compiler-rt/trunk/test/msan/lit.site.cfg.in =================================================================== --- compiler-rt/trunk/test/msan/lit.site.cfg.in +++ compiler-rt/trunk/test/msan/lit.site.cfg.in @@ -1,9 +1,11 @@ @LIT_SITE_CFG_IN_HEADER@ # Tool-specific config options. -config.name_suffix = "@MSAN_TEST_CONFIG_SUFFIX@" +config.name_suffix = "-@CONFIG_NAME@" config.target_cflags = "@MSAN_TEST_TARGET_CFLAGS@" config.target_arch = "@MSAN_TEST_TARGET_ARCH@" +config.use_lld = @MSAN_TEST_USE_LLD@ +config.use_thinlto = @MSAN_TEST_USE_THINLTO@ # Load common config for all compiler-rt lit tests. lit_config.load_config(config, "@COMPILER_RT_BINARY_DIR@/test/lit.common.configured")