[gcc/devel/omp/gcc-9] Fix std::midpoint(T*, T*) for reversed arguments

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


https://gcc.gnu.org/g:75addbfa7fb2f6d8e3b99786eea8a56d57f72475

commit 75addbfa7fb2f6d8e3b99786eea8a56d57f72475
Author: Jonathan Wakely <jwakely@redhat.com>
Date:   Fri May 24 17:09:37 2019 +0100

    Fix std::midpoint(T*, T*) for reversed arguments
    
    Backport from mainline
    2019-05-24  Jonathan Wakely  <jwakely@redhat.com>
    
    	* include/std/numeric (midpoint(T*, T*)): Fix incorrect result.
    	* testsuite/26_numerics/midpoint/pointer.cc: Change "compile" test
    	to "run".
    
    From-SVN: r271609

Diff:
---
 libstdc++-v3/ChangeLog                                 | 7 +++++++
 libstdc++-v3/include/std/numeric                       | 2 +-
 libstdc++-v3/testsuite/26_numerics/midpoint/pointer.cc | 2 +-
 3 files changed, 9 insertions(+), 2 deletions(-)

diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog
index 5e32841..2a831d4 100644
--- a/libstdc++-v3/ChangeLog
+++ b/libstdc++-v3/ChangeLog
@@ -1,6 +1,13 @@
 2019-05-24  Jonathan Wakely  <jwakely@redhat.com>
 
 	Backport from mainline
+	2019-05-24  Jonathan Wakely  <jwakely@redhat.com>
+
+	* include/std/numeric (midpoint(T*, T*)): Fix incorrect result.
+	* testsuite/26_numerics/midpoint/pointer.cc: Change "compile" test
+	to "run".
+
+	Backport from mainline
 	2019-05-17  Jonathan Wakely  <jwakely@redhat.com>
 
 	* include/bits/random.h (seed_seq::param): Fix non-reserved name.
diff --git a/libstdc++-v3/include/std/numeric b/libstdc++-v3/include/std/numeric
index 4858ad1..9dff247 100644
--- a/libstdc++-v3/include/std/numeric
+++ b/libstdc++-v3/include/std/numeric
@@ -195,7 +195,7 @@ template<typename _Tp>
     enable_if_t<__and_v<is_object<_Tp>, bool_constant<sizeof(_Tp) != 0>>, _Tp*>
     midpoint(_Tp* __a, _Tp* __b) noexcept
     {
-      return __a > __b ? __b + (__a - __b) / 2 : __a + (__b - __a) / 2;
+      return __a  + (__b - __a) / 2;
     }
 #endif // C++20
 
diff --git a/libstdc++-v3/testsuite/26_numerics/midpoint/pointer.cc b/libstdc++-v3/testsuite/26_numerics/midpoint/pointer.cc
index bd586d2..3d3aafc 100644
--- a/libstdc++-v3/testsuite/26_numerics/midpoint/pointer.cc
+++ b/libstdc++-v3/testsuite/26_numerics/midpoint/pointer.cc
@@ -16,7 +16,7 @@
 // <http://www.gnu.org/licenses/>.
 
 // { dg-options "-std=gnu++2a" }
-// { dg-do compile { target c++2a } }
+// { dg-do run { target c++2a } }
 
 #include <numeric>
 #include <climits>



More information about the Libstdc++-cvs mailing list