[Bug libstdc++/92124] std::vector copy-assigning when it should move-assign.
fdumont at gcc dot gnu.org
gcc-bugzilla@gcc.gnu.org
Thu Jan 9 05:40:00 GMT 2020
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=92124
--- Comment #5 from François Dumont <fdumont at gcc dot gnu.org> ---
Author: fdumont
Date: Thu Jan 9 05:40:08 2020
New Revision: 280028
URL: https://gcc.gnu.org/viewcvs?rev=280028&root=gcc&view=rev
Log:
PR libstdc++/92124 fix incorrect unordered container move assignment
* include/bits/hashtable.h (_Hashtable<>::__alloc_node_gen_t): New
template alias.
(_Hashtable<>::__fwd_value_for): New.
(_Hashtable<>::_M_assign_elements<>): Remove _NodeGenerator template
parameter.
(_Hashtable<>::_M_assign<>): Add _Ht template parameter.
(_Hashtable<>::operator=(const _Hashtable<>&)): Adapt.
(_Hashtable<>::_M_move_assign): Adapt. Replace std::move_if_noexcept
with std::move.
(_Hashtable<>::_Hashtable(const _Hashtable&)): Adapt.
(_Hashtable<>::_Hashtable(const _Hashtable&, const allocator_type&)):
Adapt.
(_Hashtable<>::_Hashtable(_Hashtable&&, const allocator_type&)):
Adapt.
* testsuite/23_containers/unordered_set/92124.cc: New.
Added:
trunk/libstdc++-v3/testsuite/23_containers/unordered_set/92124.cc
Modified:
trunk/libstdc++-v3/ChangeLog
trunk/libstdc++-v3/include/bits/hashtable.h
More information about the Gcc-bugs
mailing list