Only ignore -Wdeprecated-copy if the used compiler supports the warning
authorDávid Bolvanský <david.bolvansky@gmail.com>
Mon, 26 Apr 2021 13:44:52 +0000 (15:44 +0200)
committerDávid Bolvanský <david.bolvansky@gmail.com>
Mon, 26 Apr 2021 14:00:54 +0000 (16:00 +0200)
This is needed after
  https://reviews.llvm.org/rG9658d045926545e62cc3f963fe611d7c5d0c9d98
which introduced code that at least didn't compile clean with clang 8.

Reviewed By: xbolva00

Differential Revision: https://reviews.llvm.org/D101288

llvm/utils/unittest/googlemock/include/gmock/gmock-matchers.h
llvm/utils/unittest/googlemock/include/gmock/gmock.h
llvm/utils/unittest/googletest/include/gtest/internal/gtest-param-util-generated.h

index b387c17..ee2b4e4 100644 (file)
@@ -58,7 +58,7 @@
 # include <initializer_list>  // NOLINT -- must be after gtest.h
 #endif
 
-#ifdef __clang__
+#if defined(__clang__) && __has_warning("-Wdeprecated-copy")
 #pragma clang diagnostic push
 #pragma clang diagnostic ignored "-Wdeprecated-copy"
 #endif
@@ -4421,7 +4421,7 @@ inline InnerMatcher AllArgs(const InnerMatcher& matcher) { return matcher; }
 
 }  // namespace testing
 
-#ifdef __clang__
+#if defined(__clang__) && __has_warning("-Wdeprecated-copy")
 #pragma clang diagnostic pop
 #endif
 
index 8acc461..68aba63 100644 (file)
@@ -55,7 +55,7 @@
 //
 // where all clauses are optional and WillOnce() can be repeated.
 
-#ifdef __clang__
+#if defined(__clang__) && __has_warning("-Wdeprecated-copy")
 #pragma clang diagnostic push
 #pragma clang diagnostic ignored "-Wdeprecated-copy"
 #endif
@@ -96,7 +96,7 @@ GTEST_API_ void InitGoogleMock(int* argc, wchar_t** argv);
 
 }  // namespace testing
 
-#ifdef __clang__
+#if defined(__clang__) && __has_warning("-Wdeprecated-copy")
 #pragma clang diagnostic pop
 #endif
 #endif  // GMOCK_INCLUDE_GMOCK_GMOCK_H_
index df5f143..e67f7b4 100644 (file)
@@ -54,7 +54,7 @@
 
 #if GTEST_HAS_PARAM_TEST
 
-#ifdef __clang__
+#if defined(__clang__) && __has_warning("-Wdeprecated-copy")
 #pragma clang diagnostic push
 #pragma clang diagnostic ignored "-Wdeprecated-copy"
 #endif
@@ -5146,7 +5146,7 @@ CartesianProductHolder10(const Generator1& g1, const Generator2& g2,
 }  // namespace internal
 }  // namespace testing
 
-#ifdef __clang__
+#if defined(__clang__) &&  __has_warning("-Wdeprecated-copy")
 #pragma clang diagnostic pop
 #endif