From 10059d7da807540d16283b2dcb46daf83535e3c4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Caol=C3=A1n=20McNamara?= Date: Wed, 18 Mar 2020 17:04:54 +0000 Subject: [PATCH] backport fix for build failure --- ...-to-removal-of-std-span-cbegin-et-al.patch | 68 +++++++++++++++++++ libreoffice.spec | 1 + 2 files changed, 69 insertions(+) create mode 100644 0001-Adapt-o3tl-span-to-removal-of-std-span-cbegin-et-al.patch diff --git a/0001-Adapt-o3tl-span-to-removal-of-std-span-cbegin-et-al.patch b/0001-Adapt-o3tl-span-to-removal-of-std-span-cbegin-et-al.patch new file mode 100644 index 0000000..3a8387a --- /dev/null +++ b/0001-Adapt-o3tl-span-to-removal-of-std-span-cbegin-et-al.patch @@ -0,0 +1,68 @@ +From 6fbfad6b00e8c35346ee59cd32a0d7ccc0d8c19c Mon Sep 17 00:00:00 2001 +From: Stephan Bergmann +Date: Sat, 22 Feb 2020 17:29:15 +0100 +Subject: [PATCH] Adapt o3tl::span to removal of std::span::cbegin et al + + "span::cbegin/cend methods produce +different results than std::[ranges::]cbegin/cend", as implemented now in + "libstdc++: Remove std::span::cbegin +and std::span::cend (LWG 3320)". + +Turns out we only used the removed member functions in o3tl/qa/test-span.cxx. + +Change-Id: I6c73797594b4e0e753a88840033d54961e271df5 +Reviewed-on: https://gerrit.libreoffice.org/c/core/+/89261 +Tested-by: Jenkins +Reviewed-by: Stephan Bergmann +--- + include/o3tl/span.hxx | 7 ------- + o3tl/qa/test-span.cxx | 6 ------ + 2 files changed, 13 deletions(-) + +diff --git a/include/o3tl/span.hxx b/include/o3tl/span.hxx +index b19d2d847ac7..8af8ba846b65 100644 +--- a/include/o3tl/span.hxx ++++ b/include/o3tl/span.hxx +@@ -62,18 +62,11 @@ public: + constexpr iterator begin() const noexcept { return data_; } + constexpr iterator end() const noexcept { return begin() + size(); } + +- constexpr const_iterator cbegin() const noexcept { return begin(); } +- constexpr const_iterator cend() const noexcept { return end(); } +- + reverse_iterator rbegin() const noexcept + { return reverse_iterator(end()); } + reverse_iterator rend() const noexcept + { return reverse_iterator(begin()); } + +- constexpr const_reverse_iterator crbegin() const noexcept +- { return rbegin(); } +- constexpr const_reverse_iterator crend() const noexcept { return rend(); } +- + constexpr size_type size() const noexcept { return size_; } + + constexpr reference operator [](size_type pos) const { +diff --git a/o3tl/qa/test-span.cxx b/o3tl/qa/test-span.cxx +index 3cb78ace1db2..26eedfc21938 100644 +--- a/o3tl/qa/test-span.cxx ++++ b/o3tl/qa/test-span.cxx +@@ -34,15 +34,9 @@ private: + CPPUNIT_ASSERT_EQUAL(1, *v.begin()); + CPPUNIT_ASSERT_EQUAL( + o3tl::span::difference_type(3), v.end() - v.begin()); +- CPPUNIT_ASSERT_EQUAL(1, *v.cbegin()); +- CPPUNIT_ASSERT_EQUAL( +- o3tl::span::difference_type(3), v.cend() - v.cbegin()); + CPPUNIT_ASSERT_EQUAL(3, *v.rbegin()); + CPPUNIT_ASSERT_EQUAL( + o3tl::span::difference_type(3), v.rend() - v.rbegin()); +- CPPUNIT_ASSERT_EQUAL(3, *v.crbegin()); +- CPPUNIT_ASSERT_EQUAL( +- o3tl::span::difference_type(3), v.crend() - v.crbegin()); + CPPUNIT_ASSERT_EQUAL(std::size_t(3), v.size()); + CPPUNIT_ASSERT(!v.empty()); + CPPUNIT_ASSERT_EQUAL(2, v[1]); +-- +2.24.1 + diff --git a/libreoffice.spec b/libreoffice.spec index e60607e..4ed3f21 100644 --- a/libreoffice.spec +++ b/libreoffice.spec @@ -243,6 +243,7 @@ Patch1: 0001-Resolves-rhbz-1432468-disable-opencl-by-default.patch # backported Patch2: 0001-replace-boost-bimap-in-sdext-pdfimport.patch Patch3: 0001-fix-detecting-qrcodegen.patch +Patch4: 0001-Adapt-o3tl-span-to-removal-of-std-span-cbegin-et-al.patch %if 0%{?rhel} # not upstreamed