From 1dc4e01cbfbdc612203a98b6d2a6ffe37bbd3c90 Mon Sep 17 00:00:00 2001 From: Alexandre Ganea Date: Sun, 27 Jan 2019 18:41:40 +0000 Subject: [PATCH] Fix some warnings on MSVC Differential Revision: https://reviews.llvm.org/D56329 llvm-svn: 352322 --- .../Kaleidoscope/Chapter2/CMakeLists.txt | 5 +++++ llvm/unittests/Support/CMakeLists.txt | 16 +++++++++++++++- 2 files changed, 20 insertions(+), 1 deletion(-) diff --git a/llvm/examples/Kaleidoscope/Chapter2/CMakeLists.txt b/llvm/examples/Kaleidoscope/Chapter2/CMakeLists.txt index e4f275d01d40..563b8cc848f6 100644 --- a/llvm/examples/Kaleidoscope/Chapter2/CMakeLists.txt +++ b/llvm/examples/Kaleidoscope/Chapter2/CMakeLists.txt @@ -11,3 +11,8 @@ if(LLVM_COMPILER_IS_GCC_COMPATIBLE) -Wno-unused-private-field ) endif() + +if(MSVC) + # ignore "warning LNK4199: /DELAYLOAD:shell32.dll ignored; no imports found from shell32.dll" + target_link_libraries(Kaleidoscope-Ch2 PRIVATE "-ignore:4199") +endif() diff --git a/llvm/unittests/Support/CMakeLists.txt b/llvm/unittests/Support/CMakeLists.txt index f9c877fc5577..4060be85c486 100644 --- a/llvm/unittests/Support/CMakeLists.txt +++ b/llvm/unittests/Support/CMakeLists.txt @@ -83,7 +83,21 @@ target_link_libraries(SupportTests PRIVATE LLVMTestingSupport) # Disable all warning for AlignOfTest.cpp, # as it does things intentionally, and there is no reliable way of # disabling all warnings for all the compilers by using pragmas. -set_source_files_properties(AlignOfTest.cpp PROPERTIES COMPILE_FLAGS -w) +# Don't disable on MSVC, because all incriminated warnings are already disabled +# in source; and because we would otherwise see this warning: +# cl : Command line warning D9025: overriding '/W4' with '/w' +if(NOT MSVC) + set_source_files_properties(AlignOfTest.cpp PROPERTIES COMPILE_FLAGS -w) +endif() +if(MSVC) + if( CMAKE_CXX_COMPILER_VERSION VERSION_GREATER_EQUAL 19.15 ) + # Since VS2017 15.8, the following snippet: Failed() + # generates a warning: + # \svn\llvm\utils\unittest\googlemock\include\gmock\gmock-matchers.h(186): + # warning C5046: 'testing::MatcherInterface::~MatcherInterface': Symbol involving type with internal linkage not defined + set_source_files_properties(ErrorTest.cpp PROPERTIES COMPILE_FLAGS -wd5046) + endif() +endif() # ManagedStatic.cpp uses . target_link_libraries(SupportTests PRIVATE LLVMTestingSupport ${LLVM_PTHREAD_LIB})