PR libstdc++/85831 define move constructors and operators for exceptions
authorJonathan Wakely <jwakely@redhat.com>
Thu, 5 Jul 2018 21:29:51 +0000 (22:29 +0100)
committerJonathan Wakely <redi@gcc.gnu.org>
Thu, 5 Jul 2018 21:29:51 +0000 (22:29 +0100)
commitd04dbb8ad3b0964c6dbe1989ff0035634d09241d
tree3c6d2ba152ada4df1eaf32360d28c94b3d60b014
parent1c1d2d8ca755341f69e945aa2df1a0f74d02abd8
PR libstdc++/85831 define move constructors and operators for exceptions

PR libstdc++/85831
* config/abi/pre/gnu.ver: Export move constructors and move
assignment operators for std::logic_error and std::runtime_error.
* include/std/stdexcept: Use _GLIBCXX_NOTHROW instead of
_GLIBCXX_USE_NOEXCEPT.
(logic_error, runtime_error): Declare move constructors and move
assignment operators. When not declared already, define copy
constructors and copy assignment operators as explicit-defaulted.
(domain_error, invalid_argument, length_error, out_of_range)
(overflow_error, underflow_error): Define move constructors and move
assignment operators as explicitly-defaulted.
* libsupc++/exception.h (exception): Likewise.
* src/c++11/cow-stdexcept.cc (logic_error, runtime_error): Define
move constructors and move assignment operators as defaulted.
* testsuite/19_diagnostics/stdexcept.cc: Check that constructors and
assignment operators are defined.

From-SVN: r262456
libstdc++-v3/ChangeLog
libstdc++-v3/config/abi/pre/gnu.ver
libstdc++-v3/include/std/stdexcept
libstdc++-v3/libsupc++/exception.h
libstdc++-v3/src/c++11/cow-stdexcept.cc
libstdc++-v3/testsuite/19_diagnostics/stdexcept.cc