gcc/libstdc++-v3/config
Jakub Jelinek 723ef5a937 libstdc++: Outline the overlapping case of string _M_replace into a separate function [PR105329]
The following patch is partially a workaround for bogus warnings
when the compiler isn't able to fold _M_disjunct call into constant
false, but also an optimization attempt - assuming _M_disjunct (__s)
is rare, the patch should shrink code size for the common case and
use library or for non-standard instantiations an out of line
function to handle the rare case.

2022-09-12  Jakub Jelinek  <jakub@redhat.com>

	PR tree-optimization/105329
	* acinclude.m4 (libtool_VERSION): Change to 6:31:0.
	* config/abi/pre/gnu.ver (GLIBCXX_3.4.21): Don't export
	std::basic_string methods with name length of 15.
	(GLIBCXX_3.4.31): Export std::basic_string::_M_replace_cold.
	* testsuite/util/testsuite_abi.cc (check_version): Handle
	GLIBCXX_3.4.31.
	* include/bits/basic_string.h (std::basic_string::_M_replace_cold):
	Declare.
	* include/bits/basic_string.tcc (std::basic_string::_M_replace_cold):
	Define and export even for C++20.
	(std::basic_string::_M_replace): Use __builtin_expect, outline
	the overlapping case to _M_replace_cold.
	* configure: Regenerated.
2022-09-12 11:36:58 +02:00
..
abi libstdc++: Outline the overlapping case of string _M_replace into a separate function [PR105329] 2022-09-12 11:36:58 +02:00
allocator Update copyright years. 2022-01-03 10:42:10 +01:00
cpu Update copyright years. 2022-01-03 10:42:10 +01:00
io Update copyright years. 2022-01-03 10:42:10 +01:00
locale libstdc++: Remove whitespace before preprocessor directives 2022-05-12 18:04:01 +01:00
os libstdc++: Fix stream extraction of IEEE128 long double [PR100912] 2022-02-14 17:19:08 +00:00