[gcc/devel/omp/gcc-9] Fix ConstexprIterator requirements tests - No constexpr algorithms!

Tobias Burnus burnus@gcc.gnu.org
Thu Mar 5 13:58:00 GMT 2020


https://gcc.gnu.org/g:dfb5c204a76ab7154b3f9b998f3a3e662960f64d

commit dfb5c204a76ab7154b3f9b998f3a3e662960f64d
Author: Edward Smith-Rowland <3dw4rd@verizon.net>
Date:   Tue Jun 11 16:36:21 2019 +0000

    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

Diff:
---
 libstdc++-v3/ChangeLog                                   | 16 ++++++++++++++++
 .../basic_string_view/requirements/constexpr_iter.cc     |  7 +++++++
 .../23_containers/array/requirements/constexpr_iter.cc   |  7 +++++++
 3 files changed, 30 insertions(+)

diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog
index 8d3a5c5..9caebc4 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  <jakub@redhat.com>
 
 	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 9b179e2..799fb03 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<int, hw.size()> 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 559153f..208078c 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<int, 3> a2{{0, 0, 0}};
+  auto a1i = a1.begin();
+  auto a1e = a1.end();
+  auto a2i = a2.begin();
+  while (a1i != a1e)
+    *a2i++ = *a1i++;
+
   return n;
 }



More information about the Libstdc++-cvs mailing list