summaryrefslogtreecommitdiff
path: root/third-party
diff options
context:
space:
mode:
authorcor3ntin <corentinjabot@gmail.com>2025-05-15 20:12:22 +0200
committerGitHub <noreply@github.com>2025-05-15 20:12:22 +0200
commite2c1dd5f234664066adce6467a5e3f36834b971b (patch)
tree13a712afa05211d0a76cdeef77bf0b6d3f830d0c /third-party
parent58b9b865feffede59616cfc05cefa956d5352314 (diff)
Fix CI after #138708 (#140111)
Silence a warning in gtest casting a char8_t/char16_t to char32_t. Note that this cast, as well as the behavior of `PrintTo(char32_t)` is incorrect when printing a code unit that does not represent a code point. See https://github.com/google/googletest/issues/4762
Diffstat (limited to 'third-party')
-rw-r--r--third-party/unittest/googletest/README.LLVM3
-rw-r--r--third-party/unittest/googletest/include/gtest/gtest-printers.h8
2 files changed, 9 insertions, 2 deletions
diff --git a/third-party/unittest/googletest/README.LLVM b/third-party/unittest/googletest/README.LLVM
index b574c7f98be4..56715cff9a73 100644
--- a/third-party/unittest/googletest/README.LLVM
+++ b/third-party/unittest/googletest/README.LLVM
@@ -19,3 +19,6 @@ Modified as follows:
* Added StringRef support to include/gtest/internal/custom/gtest-printers.h.
* Added LLVM printable value support to include/gtest/gtest-message.h and
include/gtest/gtest-printers.h.
+* Modified `PrintTo(char16_t c, ::std::ostream* os)` and
+ `PrintTo(char16_t c, ::std::ostream* os)` in include/gtest/gtest-printers.h.
+ to work around https://github.com/google/googletest/issues/4762
diff --git a/third-party/unittest/googletest/include/gtest/gtest-printers.h b/third-party/unittest/googletest/include/gtest/gtest-printers.h
index d0da9bc1843c..409b135fc214 100644
--- a/third-party/unittest/googletest/include/gtest/gtest-printers.h
+++ b/third-party/unittest/googletest/include/gtest/gtest-printers.h
@@ -510,11 +510,15 @@ GTEST_API_ void PrintTo(wchar_t wc, ::std::ostream* os);
GTEST_API_ void PrintTo(char32_t c, ::std::ostream* os);
inline void PrintTo(char16_t c, ::std::ostream* os) {
- PrintTo(ImplicitCast_<char32_t>(c), os);
+ // FIXME: the cast from char16_t to char32_t may be incorrect
+ // for a lone surrogate
+ PrintTo(static_cast<char32_t>(c), os);
}
#ifdef __cpp_lib_char8_t
inline void PrintTo(char8_t c, ::std::ostream* os) {
- PrintTo(ImplicitCast_<char32_t>(c), os);
+ // FIXME: the cast from char8_t to char32_t may be incorrect
+ // for c > 0x7F
+ PrintTo(static_cast<char32_t>(c), os);
}
#endif