r263427 - in /branches/gcc-6-branch/libstdc++-v...
redi@gcc.gnu.org
redi@gcc.gnu.org
Wed Aug 8 16:31:00 GMT 2018
Author: redi
Date: Wed Aug 8 16:31:55 2018
New Revision: 263427
URL: https://gcc.gnu.org/viewcvs?rev=263427&root=gcc&view=rev
Log:
PR libstdc++/83982 fix exception-safety guarantee of std::vector::resize
Construct new elements before moving existing ones, so that if a default
constructor throws, the existing elements are not left in a moved-from
state.
Backport from mainline
2018-06-14 Daniel Trebbien <dtrebbien@gmail.com>
Jonathan Wakely <jwakely@redhat.com>
PR libstdc++/83982
* include/bits/vector.tcc (vector::_M_default_append(size_type)):
Default-construct new elements before moving existing ones.
* testsuite/23_containers/vector/capacity/resize/strong_guarantee.cc:
New.
Added:
branches/gcc-6-branch/libstdc++-v3/testsuite/23_containers/vector/capacity/resize/strong_guarantee.cc
Modified:
branches/gcc-6-branch/libstdc++-v3/ChangeLog
branches/gcc-6-branch/libstdc++-v3/include/bits/vector.tcc
More information about the Libstdc++-cvs
mailing list