diff options
author | Stephan Bergmann <sbergman@redhat.com> | 2023-08-04 14:06:06 +0200 |
---|---|---|
committer | Stephan Bergmann <sbergman@redhat.com> | 2023-08-04 20:28:03 +0200 |
commit | ed5d9496320d78032ab4a65fc5547aad069d19f2 (patch) | |
tree | cd35e5a399af47d01d38e1a6943ec775446db7d3 | |
parent | e2db54b9bf48b79802154d5fc9460fc432ea69a0 (diff) |
external/hunspell: Work around missing C++20 std::bit_cast
...as witnessed with <https://ci.libreoffice.org/job/gerrit_android_x86/31690/>
on top of patch set 4 of <https://gerrit.libreoffice.org/c/core/+/155121/4>
"Bump baseline to C++20",
> In file included from /home/tdf/lode/jenkins/workspace/android_x86/lingucomponent/source/spellcheck/spell/sspellimp.cxx:35:
> In file included from /home/tdf/lode/jenkins/workspace/android_x86/workdir/UnpackedTarball/hunspell/src/hunspell/hunspell.hxx:74:
> /home/tdf/lode/jenkins/workspace/android_x86/workdir/UnpackedTarball/hunspell/src/hunspell/w_char.hxx:62:17: error: no member named 'bit_cast' in namespace 'std'
> return std::bit_cast<unsigned short>(*this);
> ~~~~~^
Change-Id: Ic4a799a0918ff6bcc4dd414d5ae59e02181074bd
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/155346
Tested-by: Jenkins
Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
-rw-r--r-- | external/hunspell/UnpackedTarball_hunspell.mk | 1 | ||||
-rw-r--r-- | external/hunspell/bit_cast.patch.0 | 22 |
2 files changed, 23 insertions, 0 deletions
diff --git a/external/hunspell/UnpackedTarball_hunspell.mk b/external/hunspell/UnpackedTarball_hunspell.mk index 9da05b966b4e..9075d98659e7 100644 --- a/external/hunspell/UnpackedTarball_hunspell.mk +++ b/external/hunspell/UnpackedTarball_hunspell.mk @@ -25,6 +25,7 @@ $(eval $(call gb_UnpackedTarball_add_patches,hunspell, \ external/hunspell/0001-fix-LibreOffice-build-problem-with-basic_string-appe.patch \ external/hunspell/0001-Resolves-rhbz-2158548-allow-longer-words-for-hunspel.patch \ external/hunspell/0001-Keep-only-REP-ph-or-2-word-dictionary-phrase-suggest.patch \ + external/hunspell/bit_cast.patch.0 \ )) # vim: set noet sw=4 ts=4: diff --git a/external/hunspell/bit_cast.patch.0 b/external/hunspell/bit_cast.patch.0 new file mode 100644 index 000000000000..777b9bbfdd8e --- /dev/null +++ b/external/hunspell/bit_cast.patch.0 @@ -0,0 +1,22 @@ +--- src/hunspell/w_char.hxx ++++ src/hunspell/w_char.hxx +@@ -42,9 +42,8 @@ + + #if __cplusplus >= 202002L + #include <bit> +-#else ++#endif + #include <cstring> +-#endif + + #ifndef GCC + struct w_char { +@@ -58,7 +57,7 @@ + { + #if defined(__i386__) || defined(_M_IX86) || defined(_M_X64) + //use little-endian optimized version +-#if __cplusplus >= 202002L ++#if __cplusplus >= 202002L && defined __cpp_lib_bit_cast && __cpp_lib_bit_cast >= 201806L + return std::bit_cast<unsigned short>(*this); + #else + unsigned short u; |