On Mon, 15 Sep 2025, Jonathan Wakely wrote:

> 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.

LGTM

> ---
> 
> Testing now on powerpc64le-linux.
> 
>  libstdc++-v3/include/bits/ranges_algo.h | 2 +-
>  libstdc++-v3/include/std/format         | 2 +-
>  2 files changed, 2 insertions(+), 2 deletions(-)
> 
> diff --git a/libstdc++-v3/include/bits/ranges_algo.h 
> b/libstdc++-v3/include/bits/ranges_algo.h
> index 6ec233f19df8..ea933be2f604 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<sentinel_t<_Range>,
>                                            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 d6a2170e45d8..842972eed4ca 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)
> -- 
> 2.51.0
> 
> 

Reply via email to