[Bug libstdc++/124444] [16 Regression] debug _M_invalidate_if incompatible with C++20 since r16-5845
cvs-commit at gcc dot gnu.org
gcc-bugzilla@gcc.gnu.org
Sun Mar 15 08:14:02 GMT 2026
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=124444
--- Comment #5 from GCC Commits <cvs-commit at gcc dot gnu.org> ---
The master branch has been updated by Francois Dumont <fdumont@gcc.gnu.org>:
https://gcc.gnu.org/g:a1f1a60fc6490e677d63b637cc268b513749cc5c
commit r16-8101-ga1f1a60fc6490e677d63b637cc268b513749cc5c
Author: François Dumont <frs.dumont@gmail.com>
Date: Sat Mar 14 14:34:29 2026 +0100
libstdc++: [_GLIBCXX_DEBUG] _M_invalidate_if incompatible with C++20
[PR124444]
__gnu_cxx::__scoped_lock cannot be instantiated in a C++20 constexpr
function. Use
an intermediate method to avoid this situation.
libstdc++-v3/ChangeLog:
PR libstdc++/124444
* include/debug/safe_sequence.h
(_Safe_sequence::_M_invalidate_if_impl): New.
(_Safe_sequence::_M_invalidate_if): Call later if not
__is_constant_evaluated.
* include/debug/safe_sequence.tcc: Rename _M_invalidate_if into
_M_invalidate_if_impl and remove C++20 constexpr.
Reviewed-by: Jonathan Wakely <jwakely@redhat.com>
More information about the Gcc-bugs
mailing list