diff options
-rw-r--r-- | libstdc++-v3/ChangeLog | 4 | ||||
-rw-r--r-- | libstdc++-v3/include/std/numeric | 2 | ||||
-rw-r--r-- | libstdc++-v3/testsuite/26_numerics/midpoint/pointer.cc | 2 |
3 files changed, 6 insertions, 2 deletions
diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog index 0a83bd3..ad97108 100644 --- a/libstdc++-v3/ChangeLog +++ b/libstdc++-v3/ChangeLog @@ -1,5 +1,9 @@ 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". + * testsuite/20_util/shared_ptr/cons/alias-rval.cc: Fix test. * testsuite/20_util/shared_ptr/cons/alias.cc: Remove unused function. 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> |