# 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<CustomSubError>()
+ # generates a warning:
+ # \svn\llvm\utils\unittest\googlemock\include\gmock\gmock-matchers.h(186):
+ # warning C5046: 'testing::MatcherInterface<T>::~MatcherInterface': Symbol involving type with internal linkage not defined
+ set_source_files_properties(ErrorTest.cpp PROPERTIES COMPILE_FLAGS -wd5046)
+ endif()
+endif()
# ManagedStatic.cpp uses <pthread>.
target_link_libraries(SupportTests PRIVATE LLVMTestingSupport ${LLVM_PTHREAD_LIB})