r245085 - in /trunk/libstdc++-v3: ChangeLog con...

redi@gcc.gnu.org redi@gcc.gnu.org
Wed Feb 1 11:41:00 GMT 2017


Author: redi
Date: Wed Feb  1 11:41:48 2017
New Revision: 245085

URL: https://gcc.gnu.org/viewcvs?rev=245085&root=gcc&view=rev
Log:
PR libstdc++/79254 simplify exception-safety in copy assignment

	PR libstdc++/79254
	* config/abi/pre/gnu.ver: Remove recently added symbols.
	* include/bits/basic_string.h [_GLIBCXX_USE_CXX11_ABI]
	(basic_string::_M_copy_assign): Remove.
	(basic_string::operator=(const basic_string&)): Don't dispatch to
	_M_copy_assign. If source object is small just deallocate, otherwise
	perform new allocation before making any changes.
	* include/bits/basic_string.tcc [_GLIBCXX_USE_CXX11_ABI]
	(basic_string::_M_copy_assign(const basic_string&, true_type)):
	Remove.
	* testsuite/21_strings/basic_string/allocator/char/copy_assign.cc:
	Test cases where the allocators are equal or the string is small.
	* testsuite/21_strings/basic_string/allocator/wchar_t/copy_assign.cc:
	Likewise.

Modified:
    trunk/libstdc++-v3/ChangeLog
    trunk/libstdc++-v3/config/abi/pre/gnu.ver
    trunk/libstdc++-v3/include/bits/basic_string.h
    trunk/libstdc++-v3/include/bits/basic_string.tcc
    trunk/libstdc++-v3/testsuite/21_strings/basic_string/allocator/char/copy_assign.cc
    trunk/libstdc++-v3/testsuite/21_strings/basic_string/allocator/wchar_t/copy_assign.cc



More information about the Libstdc++-cvs mailing list