diff options
-rw-r--r-- | cmake/Modules/CompilerRTCompile.cmake | 12 | ||||
-rw-r--r-- | lib/asan/tests/CMakeLists.txt | 8 | ||||
-rw-r--r-- | lib/msan/tests/CMakeLists.txt | 6 | ||||
-rw-r--r-- | lib/sanitizer_common/tests/CMakeLists.txt | 5 | ||||
-rw-r--r-- | lib/tsan/tests/CMakeLists.txt | 1 |
5 files changed, 21 insertions, 11 deletions
diff --git a/cmake/Modules/CompilerRTCompile.cmake b/cmake/Modules/CompilerRTCompile.cmake index bb2d08018..b3482e9ce 100644 --- a/cmake/Modules/CompilerRTCompile.cmake +++ b/cmake/Modules/CompilerRTCompile.cmake @@ -11,9 +11,19 @@ macro(clang_compile object_file source) if(NOT COMPILER_RT_STANDALONE_BUILD) list(APPEND SOURCE_DEPS clang) endif() + string(REGEX MATCH "[.](cc|cpp)$" is_cxx ${source_rpath}) + if(is_cxx) + string(REPLACE " " ";" global_flags "${CMAKE_CXX_FLAGS}") + else() + string(REPLACE " " ";" global_flags "${CMAKE_C_FLAGS}") + endif() + # Ignore unknown warnings. CMAKE_CXX_FLAGS may contain GCC-specific options + # which are not supported by Clang. + list(APPEND global_flags -Wno-unknown-warning-option) + set(compile_flags ${global_flags} ${SOURCE_CFLAGS}) add_custom_command( OUTPUT ${object_file} - COMMAND ${COMPILER_RT_TEST_COMPILER} ${SOURCE_CFLAGS} -c -o "${object_file}" + COMMAND ${COMPILER_RT_TEST_COMPILER} ${compile_flags} -c -o "${object_file}" ${source_rpath} MAIN_DEPENDENCY ${source} DEPENDS ${SOURCE_DEPS}) diff --git a/lib/asan/tests/CMakeLists.txt b/lib/asan/tests/CMakeLists.txt index 03a78f5f5..3b0e077ce 100644 --- a/lib/asan/tests/CMakeLists.txt +++ b/lib/asan/tests/CMakeLists.txt @@ -26,9 +26,7 @@ set(ASAN_UNITTEST_COMMON_CFLAGS -I${COMPILER_RT_SOURCE_DIR}/lib -I${COMPILER_RT_SOURCE_DIR}/lib/asan -I${COMPILER_RT_SOURCE_DIR}/lib/sanitizer_common/tests - -Wall -Wno-format - -Werror -Werror=sign-compare -g -O2) @@ -146,7 +144,7 @@ macro(add_asan_tests_for_arch arch) set(ASAN_INST_TEST_OBJECTS) foreach(src ${ASAN_INST_TEST_SOURCES}) asan_compile(ASAN_INST_TEST_OBJECTS ${src} ${arch} - ${ASAN_UNITTEST_INSTRUMENTED_CFLAGS} -std=c++11) + ${ASAN_UNITTEST_INSTRUMENTED_CFLAGS}) endforeach() if (APPLE) # Add Mac-specific helper. @@ -180,7 +178,7 @@ macro(add_asan_tests_for_arch arch) set(ASAN_NOINST_TEST_OBJECTS) foreach(src ${ASAN_NOINST_TEST_SOURCES}) asan_compile(ASAN_NOINST_TEST_OBJECTS ${src} ${arch} - ${ASAN_UNITTEST_COMMON_CFLAGS} -std=c++11) + ${ASAN_UNITTEST_COMMON_CFLAGS}) endforeach() add_asan_test(AsanUnitTests "Asan-${arch}-Noinst-Test" ${arch} OBJECTS ${ASAN_NOINST_TEST_OBJECTS} @@ -191,7 +189,7 @@ macro(add_asan_tests_for_arch arch) set(ASAN_BENCHMARKS_OBJECTS) foreach(src ${ASAN_BENCHMARKS_SOURCES}) asan_compile(ASAN_BENCHMARKS_OBJECTS ${src} ${arch} - ${ASAN_UNITTEST_INSTRUMENTED_CFLAGS} -std=c++11) + ${ASAN_UNITTEST_INSTRUMENTED_CFLAGS}) endforeach() add_asan_test(AsanBenchmarks "Asan-${arch}-Benchmark" ${arch} OBJECTS ${ASAN_BENCHMARKS_OBJECTS} diff --git a/lib/msan/tests/CMakeLists.txt b/lib/msan/tests/CMakeLists.txt index 84f789c2f..2e49cc502 100644 --- a/lib/msan/tests/CMakeLists.txt +++ b/lib/msan/tests/CMakeLists.txt @@ -13,9 +13,9 @@ set(MSAN_LIBCXX_CFLAGS -fsanitize-memory-track-origins -fPIC -Wno-\#warnings + -Wno-pedantic -g -O2 - -std=c++0x -fstrict-aliasing -fno-exceptions -nostdinc++ @@ -44,7 +44,6 @@ set(MSAN_UNITTEST_COMMON_CFLAGS -I${COMPILER_RT_SOURCE_DIR}/include -I${COMPILER_RT_SOURCE_DIR}/lib -I${COMPILER_RT_SOURCE_DIR}/lib/msan - -std=c++11 -stdlib=libc++ -g -O2 @@ -52,6 +51,9 @@ set(MSAN_UNITTEST_COMMON_CFLAGS -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wno-deprecated-declarations + -Wno-unused-variable + -Wno-zero-length-array + -Werror=sign-compare ) set(MSAN_UNITTEST_INSTRUMENTED_CFLAGS ${MSAN_UNITTEST_COMMON_CFLAGS} diff --git a/lib/sanitizer_common/tests/CMakeLists.txt b/lib/sanitizer_common/tests/CMakeLists.txt index 10a345356..4d146312b 100644 --- a/lib/sanitizer_common/tests/CMakeLists.txt +++ b/lib/sanitizer_common/tests/CMakeLists.txt @@ -37,8 +37,9 @@ set(SANITIZER_TEST_CFLAGS_COMMON -I${COMPILER_RT_SOURCE_DIR}/lib -I${COMPILER_RT_SOURCE_DIR}/lib/sanitizer_common -DGTEST_HAS_RTTI=0 - -std=c++11 -O2 -g -fno-rtti - -Wall -Werror -Werror=sign-compare) + -O2 -g -fno-rtti + -Werror=sign-compare + -Wno-non-virtual-dtor) set(SANITIZER_TEST_LINK_FLAGS_COMMON -lstdc++) diff --git a/lib/tsan/tests/CMakeLists.txt b/lib/tsan/tests/CMakeLists.txt index 445902499..1e095f142 100644 --- a/lib/tsan/tests/CMakeLists.txt +++ b/lib/tsan/tests/CMakeLists.txt @@ -9,7 +9,6 @@ set(TSAN_UNITTEST_CFLAGS ${COMPILER_RT_GTEST_INCLUDE_CFLAGS} -I${COMPILER_RT_SOURCE_DIR}/lib -I${COMPILER_RT_SOURCE_DIR}/lib/tsan/rtl - -std=c++11 -DGTEST_HAS_RTTI=0) set(TSAN_RTL_HEADERS) |