[gcc r16-5889] libstdc++: Fix debug mode for unordered containers.
Tomasz Kaminski
tkaminsk@gcc.gnu.org
Thu Dec 4 15:14:31 GMT 2025
https://gcc.gnu.org/g:56c6612598a07514a65ad5c0b25d12d1fc966e4c
commit r16-5889-g56c6612598a07514a65ad5c0b25d12d1fc966e4c
Author: Tomasz Kamiński <tkaminsk@redhat.com>
Date: Thu Dec 4 15:28:00 2025 +0100
libstdc++: Fix debug mode for unordered containers.
The r16-5845-g8a2e6590cc4a2f changed the _Safe_container copy-assignment
to delegate to assignment of the _Base. However, _Safe_unordered_container_base
was not updated, and due the presence of move constructor, it's assignments are
deleted, causing hard error for assignment of any unordered container.
libstdc++-v3/ChangeLog:
* include/debug/safe_unordered_base.h
(_Safe_unordered_container_base::operator=): Define as
defaulted, inherit behavior of _Safe_sequence_base.
Reviewed-by: Jonathan Wakely <jwakely@redhat.com>
Signed-off-by: Tomasz Kamiński <tkaminsk@redhat.com>
Diff:
---
libstdc++-v3/include/debug/safe_unordered_base.h | 6 ++++++
1 file changed, 6 insertions(+)
diff --git a/libstdc++-v3/include/debug/safe_unordered_base.h b/libstdc++-v3/include/debug/safe_unordered_base.h
index 55cf581e315e..c7b98a53e743 100644
--- a/libstdc++-v3/include/debug/safe_unordered_base.h
+++ b/libstdc++-v3/include/debug/safe_unordered_base.h
@@ -162,6 +162,12 @@ namespace __gnu_debug
: _Safe_unordered_container_base()
{ this->_M_swap(__x); }
+ _Safe_unordered_container_base&
+ operator=(_Safe_unordered_container_base const&) = default;
+
+ _Safe_unordered_container_base&
+ operator=(_Safe_unordered_container_base&&) = default;
+
/** Notify all iterators that reference this container that the
container is being destroyed. */
~_Safe_unordered_container_base() noexcept
More information about the Libstdc++-cvs
mailing list