From dfb5c204a76ab7154b3f9b998f3a3e662960f64d Mon Sep 17 00:00:00 2001 From: Edward Smith-Rowland <3dw4rd@verizon.net> Date: Tue, 11 Jun 2019 16:36:21 +0000 Subject: [PATCH] Fix ConstexprIterator requirements tests - No constexpr algorithms! 2019-06-11 Edward Smith-Rowland <3dw4rd@verizon.net> Fix ConstexprIterator requirements tests - No constexpr algorithms! * testsuite/21_strings/basic_string_view/requirements/constexpr_iter.cc: Replace copy with hand-rolled loop. * testsuite/23_containers/array/requirements/constexpr_iter.cc: Ditto. From-SVN: r272160 --- libstdc++-v3/ChangeLog | 16 ++++++++++++++++ .../requirements/constexpr_iter.cc | 7 +++++++ .../array/requirements/constexpr_iter.cc | 7 +++++++ 3 files changed, 30 insertions(+) diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog index 8d3a5c5ef0c7..9caebc460a05 100644 --- a/libstdc++-v3/ChangeLog +++ b/libstdc++-v3/ChangeLog @@ -1,3 +1,19 @@ +2019-06-11 Edward Smith-Rowland <3dw4rd@verizon.net> + + Fix ConstexprIterator requirements tests - No constexpr algorithms! + * testsuite/21_strings/basic_string_view/requirements/constexpr_iter.cc: + Replace copy with hand-rolled loop. + * testsuite/23_containers/array/requirements/constexpr_iter.cc: + Ditto. + +2019-06-09 Edward Smith-Rowland <3dw4rd@verizon.net> + + Test for C++20 p0858 - ConstexprIterator requirements. + * testsuite/21_strings/basic_string_view/requirements/constexpr_iter.cc: + New test. + * testsuite/23_containers/array/requirements/constexpr_iter.cc: + New test. + 2019-06-05 Jakub Jelinek Backported from mainline diff --git a/libstdc++-v3/testsuite/21_strings/basic_string_view/requirements/constexpr_iter.cc b/libstdc++-v3/testsuite/21_strings/basic_string_view/requirements/constexpr_iter.cc index 9b179e2c5341..799fb0391f5a 100644 --- a/libstdc++-v3/testsuite/21_strings/basic_string_view/requirements/constexpr_iter.cc +++ b/libstdc++-v3/testsuite/21_strings/basic_string_view/requirements/constexpr_iter.cc @@ -29,6 +29,13 @@ test() auto ch = hw[4]; static_assert('W' == *(hw.cbegin() + 7)); + std::array a2{{0,0,0,0,0,0,0,0,0,0,0,0,0}}; + auto hwi = hw.begin(); + auto hwe = hw.end(); + auto a2i = a2.begin(); + while (hwi != hwe) + *a2i++ = *hwi++; + return *(hw.cbegin() + 3); } diff --git a/libstdc++-v3/testsuite/23_containers/array/requirements/constexpr_iter.cc b/libstdc++-v3/testsuite/23_containers/array/requirements/constexpr_iter.cc index 559153f33d90..208078c3b5aa 100644 --- a/libstdc++-v3/testsuite/23_containers/array/requirements/constexpr_iter.cc +++ b/libstdc++-v3/testsuite/23_containers/array/requirements/constexpr_iter.cc @@ -28,6 +28,13 @@ test() auto n = a1[0] * a1[1]* a1[2]; static_assert(1 == *a1.cbegin()); + std::array a2{{0, 0, 0}}; + auto a1i = a1.begin(); + auto a1e = a1.end(); + auto a2i = a2.begin(); + while (a1i != a1e) + *a2i++ = *a1i++; + return n; } -- 2.47.2