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

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

https://gcc.gnu.org/g:fb9a2af992813f874c942472fb35506b6180ffbf

commit r14-11360-gfb9a2af992813f874c942472fb35506b6180ffbf
Author: Jonathan Wakely <jwak...@redhat.com>
Date:   Wed Apr 13 13:03:44 2022 +0100

    libstdc++: Handle extended alignment in std::get_temporary_buffer
[PR105258]

    This adds extended alignment support to std::get_temporary_buffer etc.
    so that when std::stable_sort uses a temporary buffer it works for
    overaligned types.

    Also simplify the _Temporary_buffer type by using RAII for the
    allocation, via a new data member. This simplifies the _Temporary_buffer
    constructor and destructor by makingthem only responsible for
    constructing and destroying the elements, not managing the memory.

    libstdc++-v3/ChangeLog:

            PR libstdc++/105258
            * include/bits/stl_tempbuf.h (__detail::__get_temporary_buffer):
            New function to do allocation for get_temporary_buffer, with
            extended alignment support.
            (__detail::__return_temporary_buffer): Support extended
            alignment.
            (get_temporary_buffer): Use __get_temporary_buffer.
            (return_temporary_buffer): Support extended alignment. Add
            deprecated attribute.
            (_Temporary_buffer): Move allocation and deallocation into a
            subobject and remove try-catch block in constructor.
            (__uninitialized_construct_buf): Use argument deduction for
            value type.
            * testsuite/20_util/temporary_buffer.cc: Add dg-warning for new
            deprecated warning.
            * testsuite/25_algorithms/stable_sort/overaligned.cc: New test.

    (cherry picked from commit b0efdcbf58a76af3b8fff75f1d53d334fb5b46ee)

Reply via email to