[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