From: Jonathan Wakely Date: Mon, 15 Sep 2025 13:18:04 +0000 (+0100) Subject: libstdc++: Fix more missing uses of iter_difference_t [PR119820] X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=0067696c6777f4917a262b7dadefa7fd110de26e;p=thirdparty%2Fgcc.git libstdc++: Fix more missing uses of iter_difference_t [PR119820] libstdc++-v3/ChangeLog: PR libstdc++/119820 * include/bits/ranges_algo.h (__shuffle_fn): Use ranges::distance to get difference type value to add to iterator. * include/std/format (__formatter_str::_M_format_range): Use ranges::next to increment iterator by a size_t value. Reviewed-by: Patrick Palka --- diff --git a/libstdc++-v3/include/bits/ranges_algo.h b/libstdc++-v3/include/bits/ranges_algo.h index 6ec233f19df..ea933be2f60 100644 --- a/libstdc++-v3/include/bits/ranges_algo.h +++ b/libstdc++-v3/include/bits/ranges_algo.h @@ -2028,7 +2028,7 @@ namespace ranges && !sized_sentinel_for, iterator_t<_Range>>) return (*this)(ranges::begin(__r), - ranges::begin(__r) + ranges::size(__r), + ranges::begin(__r) + ranges::distance(__r), std::forward<_Gen>(__g)); else return (*this)(ranges::begin(__r), ranges::end(__r), diff --git a/libstdc++-v3/include/std/format b/libstdc++-v3/include/std/format index d6a2170e45d..842972eed4c 100644 --- a/libstdc++-v3/include/std/format +++ b/libstdc++-v3/include/std/format @@ -1440,7 +1440,7 @@ namespace __format else if constexpr (ranges::random_access_range<_Rg>) { ranges::iterator_t<_Rg> __first = ranges::begin(__rg); - ranges::subrange __sub(__first, __first + __w); + ranges::subrange __sub(__first, ranges::next(__first, __w)); return _M_format_escaped(_String(from_range, __sub), __fc); } else if (__w <= __n)