gcc/libstdc++-v3
Jonathan Wakely 8281e3b8ea Reduce code instantiated by filesystem::path::_S_convert_loc
Jakub noted in https://gcc.gnu.org/ml/libstdc++/2019-04/msg00140.html
that an unwanted std::wstring::_M_replace_dispatch symbol has started to
be exported from the Fedora shared library. This symbol is triggered by
the instantiation of std::wstring::assign(const char*, const char*) from
std::__str_codecvt_in which is called from path::_S_convert_loc. The
branch that triggers that instantiation can't actually happen in that
case, because codecvt facets will only return noconv when the input and
output types are the same. Guarding the assign call with an if-constexpr
check that the types are the same avoids instantiating template
specializations that will never actually be needed.

	* config/abi/pre/gnu.ver (GLIBCXX_3.4): Replace wildcard that matches
	wstring::_M_replace_dispatch with more specific patterns.
	* include/bits/fs_path.h (path::_S_convert_loc<_InputIterator>):
	Create const std::string to avoid redundant call to _S_convert_loc
	with non-const pointers.
	* include/bits/locale_conv.h (__do_str_codecvt): Use if-constexpr to
	avoid unnecessary basic_string::assign instantiations.

From-SVN: r270602
2019-04-26 15:04:45 +01:00
..
config Reduce code instantiated by filesystem::path::_S_convert_loc 2019-04-26 15:04:45 +01:00
doc PR libstdc++/90239 use uses_allocator_construction_args in <scoped_allocator> 2019-04-25 23:43:15 +01:00
include Reduce code instantiated by filesystem::path::_S_convert_loc 2019-04-26 15:04:45 +01:00
libsupc++ re PR target/89093 (C++ exception handling clobbers d8 VFP register) 2019-04-23 12:03:41 +02:00
po PR libstdc++/89466 avoid slow xsltproc command in configure 2019-02-27 11:25:44 +00:00
python PR libstdc++/89466 avoid slow xsltproc command in configure 2019-02-27 11:25:44 +00:00
scripts
src PR libstdc++/90046 fix build failure on epiphany-elf 2019-04-11 20:58:14 +01:00
testsuite Tweak C++2a uses-allocator construction utilities 2019-04-26 14:15:54 +01:00
acinclude.m4 PR libstdc++/89466 avoid slow xsltproc command in configure 2019-02-27 11:25:44 +00:00
aclocal.m4
ChangeLog Reduce code instantiated by filesystem::path::_S_convert_loc 2019-04-26 15:04:45 +01:00
ChangeLog-1998
ChangeLog-1999
ChangeLog-2000
ChangeLog-2001
ChangeLog-2002
ChangeLog-2003
ChangeLog-2004
ChangeLog-2005
ChangeLog-2006
ChangeLog-2007
ChangeLog-2008
ChangeLog-2009
ChangeLog-2010
ChangeLog-2011
ChangeLog-2012
ChangeLog-2013
ChangeLog-2014
ChangeLog-2015
ChangeLog-2016
ChangeLog-2017
ChangeLog-2018
config.h.in PR libstdc++/89460 Fix Networking TS test failures on HP-UX 2019-03-11 16:28:11 +00:00
configure PR libstdc++/89460 Fix Networking TS test failures on HP-UX 2019-03-11 16:28:11 +00:00
configure.ac PR libstdc++/89460 Fix Networking TS test failures on HP-UX 2019-03-11 16:28:11 +00:00
configure.host configure.host (abi_baseline_pair): Adjust for SPARC64/Linux. 2019-02-22 07:25:52 +00:00
crossconfig.m4 PR libstdc++/89460 Fix Networking TS test failures on HP-UX 2019-03-11 16:28:11 +00:00
fragment.am
linkage.m4
Makefile.am
Makefile.in PR libstdc++/89466 avoid slow xsltproc command in configure 2019-02-27 11:25:44 +00:00
README

file: libstdc++-v3/README

New users may wish to point their web browsers to the file
index.html in the 'doc/html' subdirectory.  It contains brief
building instructions and notes on how to configure the library in
interesting ways.