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

--- Comment #6 from GCC Commits <cvs-commit at gcc dot gnu.org> ---
The master branch has been updated by Jonathan Wakely <r...@gcc.gnu.org>:

https://gcc.gnu.org/g:04f2be72b1deecd6c6d454e000cfc0cb16db957c

commit r16-819-g04f2be72b1deecd6c6d454e000cfc0cb16db957c
Author: Jonathan Wakely <jwak...@redhat.com>
Date:   Wed May 21 15:29:02 2025 +0100

    libstdc++: Fix vector(from_range_t, R&&) for exceptions [PR120367]

    Because this constructor delegates to vector(a) the object has been
    fully constructed and the destructor will run if an exception happens.
    That means we need to set _M_finish == _M_start so that the destructor
    doesn't try to destroy any elements.

    libstdc++-v3/ChangeLog:

            PR libstdc++/120367
            * include/bits/stl_vector.h (_M_range_initialize): Initialize
            _M_impl._M_finish.
            * testsuite/23_containers/vector/cons/from_range.cc: Check with
            a type that throws on construction.
            exceptions during construction.

    Reviewed-by: Patrick Palka <ppa...@redhat.com>

Reply via email to