From 03fac8f3dd2e208c43fb1339748981f7a381f565 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Caol=C3=A1n=20McNamara?= Date: Fri, 31 Jan 2020 08:11:15 +0000 Subject: [PATCH] backport cppunit c++20 fixes --- ...SERT-to-C-20-deleted-ostream-for-sal.patch | 304 ++++++++++++++++++ libreoffice.spec | 1 + 2 files changed, 305 insertions(+) create mode 100644 0001-Adapt-CPPUNIT_ASSERT-to-C-20-deleted-ostream-for-sal.patch diff --git a/0001-Adapt-CPPUNIT_ASSERT-to-C-20-deleted-ostream-for-sal.patch b/0001-Adapt-CPPUNIT_ASSERT-to-C-20-deleted-ostream-for-sal.patch new file mode 100644 index 0000000..768ffda --- /dev/null +++ b/0001-Adapt-CPPUNIT_ASSERT-to-C-20-deleted-ostream-for-sal.patch @@ -0,0 +1,304 @@ +From 5d8f0fad50f90195a11873c70ddab4644f5839ea Mon Sep 17 00:00:00 2001 +From: Stephan Bergmann +Date: Tue, 3 Dec 2019 13:46:24 +0100 +Subject: [PATCH] Adapt CPPUNIT_ASSERT to C++20 deleted ostream << for + sal_Unicode (aka char16_t) + + "char8_t +backward compatibility remediation", as implemented now by "libstdc++: +P1423R3 char8_t remediation (2/4)" for -std=c++2a, deletes operator << overloads +that would print an integer rather than a (presumably expected) character. + +But for simplicity (and to avoid issues with non-printing characters), keep +printing an integer here. + +Change-Id: I751b99ee32d418eb488131ffa130d6f7d6d38dc7 +Reviewed-on: https://gerrit.libreoffice.org/84348 +Tested-by: Jenkins +Reviewed-by: Stephan Bergmann +--- + cppu/qa/cppumaker/test_cppumaker.cxx | 1 + + cppu/qa/test_any.cxx | 1 + + i18npool/qa/cppunit/test_breakiterator.cxx | 1 + + include/o3tl/cppunittraitshelper.hxx | 27 +++++++++++++++++++ + sal/qa/rtl/oustring/rtl_OUString2.cxx | 2 ++ + .../test_oustringbuffer_appendchar.cxx | 3 +++ + .../strings/test_oustring_stringliterals.cxx | 1 + + sal/qa/rtl/textenc/rtl_textcvt.cxx | 1 + + starmath/qa/cppunit/test_node.cxx | 1 + + starmath/qa/extras/mmlexport-test.cxx | 2 ++ + svl/qa/unit/lockfiles/test_lockfiles.cxx | 1 + + svl/qa/unit/test_lngmisc.cxx | 3 +++ + sw/qa/extras/ooxmlexport/ooxmlexport.cxx | 1 + + sw/qa/extras/ooxmlexport/ooxmlexport5.cxx | 1 + + sw/qa/extras/ooxmlimport/ooxmlimport.cxx | 1 + + sw/qa/extras/rtfexport/rtfexport4.cxx | 2 +- + sw/qa/extras/rtfimport/rtfimport.cxx | 2 +- + sw/qa/extras/uiwriter/uiwriter.cxx | 1 + + vcl/qa/cppunit/mnemonic.cxx | 3 +++ + 19 files changed, 53 insertions(+), 2 deletions(-) + create mode 100644 include/o3tl/cppunittraitshelper.hxx + +diff --git a/cppu/qa/cppumaker/test_cppumaker.cxx b/cppu/qa/cppumaker/test_cppumaker.cxx +index 3ea46f5c93ce..1b8efda8a972 100644 +--- a/cppu/qa/cppumaker/test_cppumaker.cxx ++++ b/cppu/qa/cppumaker/test_cppumaker.cxx +@@ -360,6 +360,7 @@ + #include + #include + #include ++#include + #include + + #include +diff --git a/cppu/qa/test_any.cxx b/cppu/qa/test_any.cxx +index f5fbc0c9dbc8..7dfed7a714de 100644 +--- a/cppu/qa/test_any.cxx ++++ b/cppu/qa/test_any.cxx +@@ -46,6 +46,7 @@ + #include + #include + #include ++#include + #include + #include + +diff --git a/i18npool/qa/cppunit/test_breakiterator.cxx b/i18npool/qa/cppunit/test_breakiterator.cxx +index a1d423879109..a41cd821857c 100644 +--- a/i18npool/qa/cppunit/test_breakiterator.cxx ++++ b/i18npool/qa/cppunit/test_breakiterator.cxx +@@ -11,6 +11,7 @@ + #include + #include + #include ++#include + #include + + #include +diff --git a/include/o3tl/cppunittraitshelper.hxx b/include/o3tl/cppunittraitshelper.hxx +new file mode 100644 +index 000000000000..d9f75a61b4c8 +--- /dev/null ++++ b/include/o3tl/cppunittraitshelper.hxx +@@ -0,0 +1,27 @@ ++/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4; fill-column: 100 -*- */ ++/* ++ * This file is part of the LibreOffice project. ++ * ++ * This Source Code Form is subject to the terms of the Mozilla Public ++ * License, v. 2.0. If a copy of the MPL was not distributed with this ++ * file, You can obtain one at http://mozilla.org/MPL/2.0/. ++ */ ++ ++#ifndef INCLUDED_O3TL_CPPUNITTRAITSHELPER_HXX ++#define INCLUDED_O3TL_CPPUNITTRAITSHELPER_HXX ++ ++#include ++ ++#include ++ ++#include ++ ++// ostream << char16_t is deleted since C++20 (but just keep outputting numeric values): ++template <> inline std::string CppUnit::assertion_traits::toString(char16_t const& x) ++{ ++ return assertion_traits::toString(unsigned(x)); ++} ++ ++#endif ++ ++/* vim:set shiftwidth=4 softtabstop=4 expandtab cinoptions=b1,g0,N-s cinkeys+=0=break: */ +diff --git a/sal/qa/rtl/oustring/rtl_OUString2.cxx b/sal/qa/rtl/oustring/rtl_OUString2.cxx +index 52e8656efd96..4a3a405d8fc5 100644 +--- a/sal/qa/rtl/oustring/rtl_OUString2.cxx ++++ b/sal/qa/rtl/oustring/rtl_OUString2.cxx +@@ -30,6 +30,8 @@ + #include + #include + ++#include ++ + #include + #include + +diff --git a/sal/qa/rtl/oustringbuffer/test_oustringbuffer_appendchar.cxx b/sal/qa/rtl/oustringbuffer/test_oustringbuffer_appendchar.cxx +index f1a151fdc836..80ce83b1d2d0 100644 +--- a/sal/qa/rtl/oustringbuffer/test_oustringbuffer_appendchar.cxx ++++ b/sal/qa/rtl/oustringbuffer/test_oustringbuffer_appendchar.cxx +@@ -7,6 +7,9 @@ + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + */ + ++#include ++ ++#include + #include + #include + #include +diff --git a/sal/qa/rtl/strings/test_oustring_stringliterals.cxx b/sal/qa/rtl/strings/test_oustring_stringliterals.cxx +index 33902e28ad3b..9c7116ef5edb 100644 +--- a/sal/qa/rtl/strings/test_oustring_stringliterals.cxx ++++ b/sal/qa/rtl/strings/test_oustring_stringliterals.cxx +@@ -14,6 +14,7 @@ + + #include + ++#include + #include + #include + #include +diff --git a/sal/qa/rtl/textenc/rtl_textcvt.cxx b/sal/qa/rtl/textenc/rtl_textcvt.cxx +index 795950a0347a..0bf6c5647ff0 100644 +--- a/sal/qa/rtl/textenc/rtl_textcvt.cxx ++++ b/sal/qa/rtl/textenc/rtl_textcvt.cxx +@@ -27,6 +27,7 @@ + #include + #include + ++#include + #include + #include + #include +diff --git a/starmath/qa/cppunit/test_node.cxx b/starmath/qa/cppunit/test_node.cxx +index 1bcb32a0913e..dba0b9ff3c40 100644 +--- a/starmath/qa/cppunit/test_node.cxx ++++ b/starmath/qa/cppunit/test_node.cxx +@@ -10,6 +10,7 @@ + #include + #include + ++#include + #include + #include + +diff --git a/starmath/qa/extras/mmlexport-test.cxx b/starmath/qa/extras/mmlexport-test.cxx +index b26fcc1baac1..737885d5f73e 100644 +--- a/starmath/qa/extras/mmlexport-test.cxx ++++ b/starmath/qa/extras/mmlexport-test.cxx +@@ -8,6 +8,8 @@ + */ + + #include ++ ++#include + #include + #include + #include +diff --git a/svl/qa/unit/lockfiles/test_lockfiles.cxx b/svl/qa/unit/lockfiles/test_lockfiles.cxx +index 91920344d248..a14a89f605a2 100644 +--- a/svl/qa/unit/lockfiles/test_lockfiles.cxx ++++ b/svl/qa/unit/lockfiles/test_lockfiles.cxx +@@ -13,6 +13,7 @@ + #include + #include + ++#include + #include + #include + #include +diff --git a/svl/qa/unit/test_lngmisc.cxx b/svl/qa/unit/test_lngmisc.cxx +index f3071111b189..5193eb33e159 100644 +--- a/svl/qa/unit/test_lngmisc.cxx ++++ b/svl/qa/unit/test_lngmisc.cxx +@@ -7,6 +7,9 @@ + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + */ + ++#include ++ ++#include + #include + #include + #include +diff --git a/sw/qa/extras/ooxmlexport/ooxmlexport.cxx b/sw/qa/extras/ooxmlexport/ooxmlexport.cxx +index cb252c87ded9..75e890338e62 100644 +--- a/sw/qa/extras/ooxmlexport/ooxmlexport.cxx ++++ b/sw/qa/extras/ooxmlexport/ooxmlexport.cxx +@@ -19,6 +19,7 @@ + #include + #include + #include ++#include + #include + + class Test : public SwModelTestBase +diff --git a/sw/qa/extras/ooxmlexport/ooxmlexport5.cxx b/sw/qa/extras/ooxmlexport/ooxmlexport5.cxx +index 14ba1cde9683..b6e86799cb75 100644 +--- a/sw/qa/extras/ooxmlexport/ooxmlexport5.cxx ++++ b/sw/qa/extras/ooxmlexport/ooxmlexport5.cxx +@@ -16,6 +16,7 @@ + #include + #include + #include ++#include + + #include + #include +diff --git a/sw/qa/extras/ooxmlimport/ooxmlimport.cxx b/sw/qa/extras/ooxmlimport/ooxmlimport.cxx +index 2bc6a526fd99..956f75414488 100644 +--- a/sw/qa/extras/ooxmlimport/ooxmlimport.cxx ++++ b/sw/qa/extras/ooxmlimport/ooxmlimport.cxx +@@ -45,6 +45,7 @@ + #include + #include + #include ++#include + #include + #include + #include +diff --git a/sw/qa/extras/rtfexport/rtfexport4.cxx b/sw/qa/extras/rtfexport/rtfexport4.cxx +index 4590b7fa0b4e..f714b0519caf 100644 +--- a/sw/qa/extras/rtfexport/rtfexport4.cxx ++++ b/sw/qa/extras/rtfexport/rtfexport4.cxx +@@ -11,7 +11,7 @@ + + #include + #include +- ++#include + #include + + #include +diff --git a/sw/qa/extras/rtfimport/rtfimport.cxx b/sw/qa/extras/rtfimport/rtfimport.cxx +index a88dddf2f086..0688b24460df 100644 +--- a/sw/qa/extras/rtfimport/rtfimport.cxx ++++ b/sw/qa/extras/rtfimport/rtfimport.cxx +@@ -42,7 +42,7 @@ + #include + #include + #include +- ++#include + #include + #include + #include +diff --git a/sw/qa/extras/uiwriter/uiwriter.cxx b/sw/qa/extras/uiwriter/uiwriter.cxx +index 27cd93fb857e..1ede61bc5bad 100644 +--- a/sw/qa/extras/uiwriter/uiwriter.cxx ++++ b/sw/qa/extras/uiwriter/uiwriter.cxx +@@ -99,6 +99,7 @@ + #include + #include + #include ++#include + #include + #include + #include +diff --git a/vcl/qa/cppunit/mnemonic.cxx b/vcl/qa/cppunit/mnemonic.cxx +index f2ed9e542054..e870e1d29c98 100644 +--- a/vcl/qa/cppunit/mnemonic.cxx ++++ b/vcl/qa/cppunit/mnemonic.cxx +@@ -7,6 +7,9 @@ + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + */ + ++#include ++ ++#include + #include + #include + +-- +2.24.1 + diff --git a/libreoffice.spec b/libreoffice.spec index d7f0165..e8c3536 100644 --- a/libreoffice.spec +++ b/libreoffice.spec @@ -249,6 +249,7 @@ Patch4: 0001-Fix-build-with-poppler-0.83.patch Patch5: 0001-Adapt-SAL_WARN-to-C-20-deleted-ostream-for-sal_Unico.patch Patch6: 0001-Adapt-to-C-20-deleted-ostream-for-sal_Unicode-aka-ch.patch Patch7: 0001-Adapt-o3tl-span-to-P1872R0.patch +Patch8: 0001-Adapt-CPPUNIT_ASSERT-to-C-20-deleted-ostream-for-sal.patch %if 0%{?rhel} # not upstreamed