From a73e9db87100939b154c53948d56c3bb9c08a991 Mon Sep 17 00:00:00 2001 From: Timur Iskhodzhanov Date: Fri, 30 May 2014 12:42:57 +0000 Subject: [PATCH] [Sanitizers Win] Move duplicate Windows-specific compiler flags to a common CMake variable Reviewed at http://reviews.llvm.org/D3952 git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@209889 91177308-0d34-0410-b5e6-96231b3b80d8 --- cmake/Modules/AddCompilerRT.cmake | 12 ++++++++++++ lib/asan/tests/CMakeLists.txt | 16 +--------------- lib/sanitizer_common/tests/CMakeLists.txt | 16 +--------------- 3 files changed, 14 insertions(+), 30 deletions(-) diff --git a/cmake/Modules/AddCompilerRT.cmake b/cmake/Modules/AddCompilerRT.cmake index 78d2492d1..0f6260ae5 100644 --- a/cmake/Modules/AddCompilerRT.cmake +++ b/cmake/Modules/AddCompilerRT.cmake @@ -113,6 +113,8 @@ macro(add_compiler_rt_darwin_dynamic_runtime name os) LIBRARY DESTINATION ${COMPILER_RT_LIBRARY_INSTALL_DIR}) endmacro() +set(COMPILER_RT_TEST_CFLAGS) + # Unittests support. set(COMPILER_RT_GTEST_PATH ${LLVM_MAIN_SRC_DIR}/utils/unittest/googletest) set(COMPILER_RT_GTEST_SOURCE ${COMPILER_RT_GTEST_PATH}/src/gtest-all.cc) @@ -124,8 +126,18 @@ set(COMPILER_RT_GTEST_CFLAGS ) if(MSVC) + # clang doesn't support exceptions on Windows yet. + list(APPEND COMPILER_RT_TEST_CFLAGS + -D_HAS_EXCEPTIONS=0) + + # We should teach clang to understand "#pragma intrinsic", see PR19898. + list(APPEND COMPILER_RT_TEST_CFLAGS -Wno-undefined-inline) + # Clang doesn't support SEH on Windows yet. list(APPEND COMPILER_RT_GTEST_CFLAGS -DGTEST_HAS_SEH=0) + + # gtest use a lot of stuff marked as deprecated on Windows. + list(APPEND COMPILER_RT_GTEST_CFLAGS -Wno-deprecated-declarations) endif() # Link objects into a single executable with COMPILER_RT_TEST_COMPILER, diff --git a/lib/asan/tests/CMakeLists.txt b/lib/asan/tests/CMakeLists.txt index 9a34cb062..54243382d 100644 --- a/lib/asan/tests/CMakeLists.txt +++ b/lib/asan/tests/CMakeLists.txt @@ -21,6 +21,7 @@ set(ASAN_UNITTEST_HEADERS asan_test_utils.h) set(ASAN_UNITTEST_COMMON_CFLAGS + ${COMPILER_RT_TEST_CFLAGS} ${COMPILER_RT_GTEST_CFLAGS} -I${COMPILER_RT_SOURCE_DIR}/include -I${COMPILER_RT_SOURCE_DIR}/lib @@ -39,21 +40,6 @@ else() list(APPEND ASAN_UNITTEST_COMMON_CFLAGS -g) endif() -if(MSVC) - # MSVC system headers and gtest use a lot of deprecated stuff. - list(APPEND ASAN_UNITTEST_COMMON_CFLAGS - -Wno-deprecated-declarations) - - # clang doesn't support exceptions on Windows yet. - list(APPEND ASAN_UNITTEST_COMMON_CFLAGS - -D_HAS_EXCEPTIONS=0) - - # We should teach clang to understand more pragmas. - list(APPEND ASAN_UNITTEST_COMMON_CFLAGS - -Wno-unknown-pragmas - -Wno-undefined-inline) -endif() - # Use -D instead of definitions to please custom compile command. list(APPEND ASAN_UNITTEST_COMMON_CFLAGS -DASAN_HAS_BLACKLIST=1 diff --git a/lib/sanitizer_common/tests/CMakeLists.txt b/lib/sanitizer_common/tests/CMakeLists.txt index 3e868f5e7..903012a1a 100644 --- a/lib/sanitizer_common/tests/CMakeLists.txt +++ b/lib/sanitizer_common/tests/CMakeLists.txt @@ -34,6 +34,7 @@ foreach(header ${SANITIZER_HEADERS}) endforeach() set(SANITIZER_TEST_CFLAGS_COMMON + ${COMPILER_RT_TEST_CFLAGS} ${COMPILER_RT_GTEST_CFLAGS} -I${COMPILER_RT_SOURCE_DIR}/include -I${COMPILER_RT_SOURCE_DIR}/lib @@ -50,21 +51,6 @@ else() list(APPEND ASAN_UNITTEST_COMMON_CFLAGS -g) endif() -if(MSVC) - # MSVC system headers and gtest use a lot of deprecated stuff. - list(APPEND SANITIZER_TEST_CFLAGS_COMMON - -Wno-deprecated-declarations) - - # clang doesn't support exceptions on Windows yet. - list(APPEND SANITIZER_TEST_CFLAGS_COMMON - -D_HAS_EXCEPTIONS=0) - - # We should teach clang to understand more pragmas. - list(APPEND SANITIZER_TEST_CFLAGS_COMMON - -Wno-unknown-pragmas - -Wno-undefined-inline) -endif() - if(NOT MSVC) list(APPEND SANITIZER_TEST_LINK_FLAGS_COMMON --driver-mode=g++) endif() -- 2.11.4.GIT