https://gcc.gnu.org/bugzilla/show_bug.cgi?id=115218

--- Comment #7 from GCC Commits <cvs-commit at gcc dot gnu.org> ---
The master branch has been updated by Patrick Palka <ppa...@gcc.gnu.org>:

https://gcc.gnu.org/g:81c6c99efa6a7afd3082785a9ab7fb64d2c93e1d

commit r15-7835-g81c6c99efa6a7afd3082785a9ab7fb64d2c93e1d
Author: Patrick Palka <ppa...@redhat.com>
Date:   Wed Mar 5 11:11:35 2025 -0500

    libstdc++: Some concat_view bugfixes [PR115215, PR115218, LWG 4082]

    - Use __builtin_unreachable to suppress a false-positive "control
      reaches end of non-void function" warning in the recursive lambda
      (which the existing tests failed to notice since test01 wasn't
      being called at runtime)
    - Relax the constraints on views::concat in the single-argument case
      as per PR115215
    - Add an input_range requirement to that same case as per LWG 4082
    - In the const-converting constructor of concat_view's iterator,
      don't require the first iterator to be default constructible

            PR libstdc++/115215
            PR libstdc++/115218

    libstdc++-v3/ChangeLog:

            * include/std/ranges
            (concat_view::iterator::_S_invoke_with_runtime_index): Use
            __builtin_unreachable in recursive lambda to certify it always
            exits via 'return'.
            (concat_view::iterator::iterator): In the const-converting
            constructor, direct initialize _M_it.
            (views::_Concat::operator()): Adjust constraints in the
            single-argument case as per LWG 4082.
            * testsuite/std/ranges/concat/1.cc (test01): Call it at runtime
            too.
            (test04): New test.

    Reviewed-by: Tomasz KamiÅski <tkami...@redhat.com>
    Reviewed-by: Jonathan Wakely <jwak...@redhat.com>

Reply via email to