Use an internal symbol for deprecate-and-inline that allows
the use of a deprecation message
PiperOrigin-RevId: 807753856
Change-Id: I34b0c7c6faf34cad11ea2aca5ccd16bca16acdec
diff --git a/googlemock/include/gmock/gmock-actions.h b/googlemock/include/gmock/gmock-actions.h
index 2746edd..68d5ced 100644
--- a/googlemock/include/gmock/gmock-actions.h
+++ b/googlemock/include/gmock/gmock-actions.h
@@ -1868,7 +1868,7 @@
// Deprecated single-argument DoAll.
template <typename Action>
-GMOCK_DEPRECATE_AND_INLINE()
+GTEST_INTERNAL_DEPRECATE_AND_INLINE("Avoid using DoAll() for single actions")
typename std::decay<Action>::type DoAll(Action&& action) {
return std::forward<Action>(action);
}
@@ -2038,11 +2038,11 @@
// Various overloads for Invoke().
// Legacy function.
-// Actions can now be implicitly constructed from callables. No need to create
-// wrapper objects.
// This function exists for backwards compatibility.
template <typename FunctionImpl>
-GMOCK_DEPRECATE_AND_INLINE()
+GTEST_INTERNAL_DEPRECATE_AND_INLINE(
+ "Actions can now be implicitly constructed from callables. No need to "
+ "create wrapper objects using Invoke().")
typename std::decay<FunctionImpl>::type Invoke(FunctionImpl&& function_impl) {
return std::forward<FunctionImpl>(function_impl);
}
diff --git a/googlemock/include/gmock/internal/gmock-port.h b/googlemock/include/gmock/internal/gmock-port.h
index c23b69d..42d36d2 100644
--- a/googlemock/include/gmock/internal/gmock-port.h
+++ b/googlemock/include/gmock/internal/gmock-port.h
@@ -57,19 +57,10 @@
#include "gmock/internal/custom/gmock-port.h"
#include "gtest/internal/gtest-port.h"
-#if defined(GTEST_HAS_ABSL)
-#include "absl/base/macros.h"
-
-#define GMOCK_DEPRECATE_AND_INLINE() ABSL_DEPRECATE_AND_INLINE()
-
-#if !defined(GTEST_NO_ABSL_FLAGS)
+#if defined(GTEST_HAS_ABSL) && !defined(GTEST_NO_ABSL_FLAGS)
#include "absl/flags/declare.h"
#include "absl/flags/flag.h"
-#endif // !defined(GTEST_NO_ABSL_FLAGS)
-
-#else // defined(GTEST_HAS_ABSL)
-#define GMOCK_DEPRECATE_AND_INLINE()
-#endif // defined(GTEST_HAS_ABSL)
+#endif
// For MS Visual C++, check the compiler version. At least VS 2015 is
// required to compile Google Mock.
diff --git a/googletest/include/gtest/internal/gtest-port.h b/googletest/include/gtest/internal/gtest-port.h
index 9bd41cd..f810d06 100644
--- a/googletest/include/gtest/internal/gtest-port.h
+++ b/googletest/include/gtest/internal/gtest-port.h
@@ -2322,6 +2322,13 @@
} // namespace internal
} // namespace testing
+#if GTEST_INTERNAL_HAVE_CPP_ATTRIBUTE(clang::annotate)
+#define GTEST_INTERNAL_DEPRECATE_AND_INLINE(msg) \
+ [[deprecated(msg), clang::annotate("inline-me")]]
+#else
+#define GTEST_INTERNAL_DEPRECATE_AND_INLINE(msg) [[deprecated(msg)]]
+#endif
+
#if defined(__cpp_lib_span) || (GTEST_INTERNAL_HAS_INCLUDE(<span>) && \
GTEST_INTERNAL_CPLUSPLUS_LANG >= 202002L)
#define GTEST_INTERNAL_HAS_STD_SPAN 1