https://gcc.gnu.org/bugzilla/show_bug.cgi?id=86874

--- Comment #2 from Jonathan Wakely <redi at gcc dot gnu.org> ---
Author: redi
Date: Tue Aug  7 19:13:26 2018
New Revision: 263365

URL: https://gcc.gnu.org/viewcvs?rev=263365&root=gcc&view=rev
Log:
PR libstdc++/86874 fix std::variant::swap regression

        PR libstdc++/86874
        * include/std/variant (_Copy_ctor_base::_M_destructive_move): Define
        here instead of in _Move_assign_base.
        (_Copy_ctor_base<true, _Types...>::_M_destructive_move): Define.
        (_Copy_assign_base::operator=): Use _M_destructive_move when changing
        the contained value to another alternative.
        (_Move_assign_base::operator=): Likewise.
        (_Move_assign_base::_M_destructive_move): Remove.
        * testsuite/20_util/variant/86874.cc: New test.

Added:
    trunk/libstdc++-v3/testsuite/20_util/variant/86874.cc
Modified:
    trunk/libstdc++-v3/ChangeLog
    trunk/libstdc++-v3/include/std/variant

Reply via email to