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.
