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

--- Comment #3 from GCC Commits <cvs-commit at gcc dot gnu.org> ---
The master branch has been updated by Jakub Jelinek <[email protected]>:

https://gcc.gnu.org/g:5294e0a0b40674365d8f9190fc1d9c456ea8c150

commit r16-5411-g5294e0a0b40674365d8f9190fc1d9c456ea8c150
Author: Jakub Jelinek <[email protected]>
Date:   Wed Nov 19 09:38:17 2025 +0100

    libstdc++: Implement proposed resolution of LWG4477 [PR122671]

    This patch implements the proposed resolution of
    https://cplusplus.github.io/LWG/issue4477
    The PR complains that one can't successfully throw from constructor
    in placement new in a constant expression and catch that exception
    later on.  The problem is while P2747R2 made placement ::operator new
    and ::operator new[] constexpr, when the ctor throws it invokes also
    these weird placement ::operator delete and ::operator delete[]
    which intentionally perform no action, and those weren't constexpr,
    so constant expression evaluation failed.

    2025-11-19  Jakub Jelinek  <[email protected]>

            PR libstdc++/122671
            * libsupc++/new (::operator delete, ::operator delete[]): Implement
            proposed LWG4477 resolution.  Use _GLIBCXX_PLACEMENT_CONSTEXPR for
            placement operator deletes.

            * g++.dg/cpp26/constexpr-eh17.C: New test.

Reply via email to