On Fri, 5 Sept 2025 at 15:28, Patrick Palka <ppa...@redhat.com> wrote: > > Tested on x86_64-pc-linux-gnu, does this look OK for trunk?
OK thanks > > -- >8 -- > > Since this helper (added in r16-3576-g7f7f1878eedd80) is used in the > noexcept-spec of iter_move and iter_swap, it in turn needs an accurate > noexcept-spec. > > libstdc++-v3/ChangeLog: > > * include/std/ranges (join_view::_Iterator::_M_get_inner): > Mark noexcept. > * testsuite/std/ranges/adaptors/join.cc (test16): New test. > --- > libstdc++-v3/include/std/ranges | 4 ++-- > libstdc++-v3/testsuite/std/ranges/adaptors/join.cc | 11 +++++++++++ > 2 files changed, 13 insertions(+), 2 deletions(-) > > diff --git a/libstdc++-v3/include/std/ranges b/libstdc++-v3/include/std/ranges > index bae50d06ca81..f493da56203b 100644 > --- a/libstdc++-v3/include/std/ranges > +++ b/libstdc++-v3/include/std/ranges > @@ -2935,7 +2935,7 @@ namespace views::__adaptor > } > > constexpr _Inner_iter& > - _M_get_inner() > + _M_get_inner() noexcept > { > if constexpr (forward_iterator<_Inner_iter>) > return _M_inner; > @@ -2944,7 +2944,7 @@ namespace views::__adaptor > } > > constexpr const _Inner_iter& > - _M_get_inner() const > + _M_get_inner() const noexcept > { > if constexpr (forward_iterator<_Inner_iter>) > return _M_inner; > diff --git a/libstdc++-v3/testsuite/std/ranges/adaptors/join.cc > b/libstdc++-v3/testsuite/std/ranges/adaptors/join.cc > index a9395b489919..50b8e355f904 100644 > --- a/libstdc++-v3/testsuite/std/ranges/adaptors/join.cc > +++ b/libstdc++-v3/testsuite/std/ranges/adaptors/join.cc > @@ -240,6 +240,16 @@ test15() > constexpr decltype(views::join(views::single(views::single(0))).begin()) > it; > } > > +void > +test16() > +{ > + // PR libstdc++/121804 - join_view::iterator::_M_get_inner should be > noexcept > + std::vector<std::vector<int>> vv; > + ranges::join_view j{vv}; > + auto jit = j.begin(); > + static_assert(noexcept(ranges::iter_move(jit))); > +} > + > int > main() > { > @@ -258,4 +268,5 @@ main() > test13(); > test14(); > test15(); > + test16(); > } > -- > 2.51.0.167.g6ad8021821 >