diff options
author | Derek Mauro <dmauro@google.com> | 2024-05-24 12:03:10 -0700 |
---|---|---|
committer | Copybara-Service <copybara-worker@google.com> | 2024-05-24 12:04:30 -0700 |
commit | 48235b8912de264abc5ed78a80516fb0b66dacd6 (patch) | |
tree | 19d5ae45a1a6131a3d1fe061fc7ab0b92e4c7a8f /absl/strings | |
parent | 52bc669d0ee5d9d7f787cbf576e3733c2b28db9c (diff) | |
download | abseil-48235b8912de264abc5ed78a80516fb0b66dacd6.tar.gz abseil-48235b8912de264abc5ed78a80516fb0b66dacd6.tar.bz2 abseil-48235b8912de264abc5ed78a80516fb0b66dacd6.zip |
Workaround symbol resolution bug in Clang 19
Clang 19 seems to see the old usage of
absl::string_internal::HasAbslStringify in GoogleTest 1.14.0 and
incorrectly resolves absl::HasAbslStringify sometimes. This issue is
fixed when a version of GoogleTest that removes
absl::string_internal::HasAbslStringify is used.
This workaround is ugly but will be removed after the next GoogleTest
release.
PiperOrigin-RevId: 636993564
Change-Id: Ic166edbd4ddc2c716afbedec34be629cfc988e00
Diffstat (limited to 'absl/strings')
-rw-r--r-- | absl/strings/has_absl_stringify.h | 1 | ||||
-rw-r--r-- | absl/strings/internal/has_absl_stringify.h | 12 |
2 files changed, 12 insertions, 1 deletions
diff --git a/absl/strings/has_absl_stringify.h b/absl/strings/has_absl_stringify.h index 274a7865..9af0191d 100644 --- a/absl/strings/has_absl_stringify.h +++ b/absl/strings/has_absl_stringify.h @@ -18,6 +18,7 @@ #include <type_traits> #include <utility> +#include "absl/base/config.h" #include "absl/strings/string_view.h" namespace absl { diff --git a/absl/strings/internal/has_absl_stringify.h b/absl/strings/internal/has_absl_stringify.h index f82cfe26..98f27dff 100644 --- a/absl/strings/internal/has_absl_stringify.h +++ b/absl/strings/internal/has_absl_stringify.h @@ -17,6 +17,9 @@ #include "absl/strings/has_absl_stringify.h" +#include <type_traits> +#include <utility> + #include "absl/base/config.h" namespace absl { @@ -34,7 +37,14 @@ namespace strings_internal { // // https://github.com/google/googletest/pull/4368#issuecomment-1717699895 // https://github.com/google/googletest/pull/4368#issuecomment-1717699895 -using ::absl::HasAbslStringify; +template <typename T, typename = void> +struct HasAbslStringify : std::false_type {}; + +template <typename T> +struct HasAbslStringify< + T, std::enable_if_t<std::is_void<decltype(AbslStringify( + std::declval<strings_internal::UnimplementedSink&>(), + std::declval<const T&>()))>::value>> : std::true_type {}; } // namespace strings_internal |