r245162 - in /trunk/libstdc++-v3: ChangeLog src...

redi@gcc.gnu.org redi@gcc.gnu.org
Fri Feb 3 18:59:00 GMT 2017


Author: redi
Date: Fri Feb  3 18:59:05 2017
New Revision: 245162

URL: https://gcc.gnu.org/viewcvs?rev=245162&root=gcc&view=rev
Log:
PR libstdc++/60936 reduce coupling between objects in libstdc++.a

Move explicit instantiation definitions for string I/O functions into
their own files so that iostream and locale definitions are not needed
for uses of strings without I/O. Move functions for throwing C++11
exceptions into the individual files defining the exception types, so
that using any of the functions from functexcept.cc doesn't pull in
large pieces of the C++11 library. Finally, avoid using __int_to_char in
snprintf_lite.cc to avoid pulling in locale-inst.cc for one function.

	PR libstdc++/60936
	* src/c++11/Makefile.am: Add new files.
	* src/c++11/Makefile.in: Regenerate.
	* src/c++11/cow-string-inst.cc [!_GLIBCXX_USE_CXX11_ABI]
	(operator<<, operator>>, getline): Move explicit instantiations to ...
	* src/c++11/cow-string-io-inst.cc: ... new file.
	* src/c++11/cow-wstring-inst.cc [!_GLIBCXX_USE_CXX11_ABI]
	(operator<<, operator>>, getline): Move explicit instantiations to ...
	* src/c++11/cow-wstring-io-inst.cc: ... new file.
	* src/c++11/functexcept.cc (__throw_ios_failure, __throw_system_error)
	(__throw_future_error, __throw_bad_function_call):
	(__throw_regex_error): Move functions for C++11 exceptions to the
	files that define the exception types.
	* src/c++11/functional.cc (__throw_bad_function_call): Move here.
	* src/c++11/future.cc (__throw_future_error): Likewise.
	* src/c++11/ios.cc (__throw_ios_failure): Likewise.
	* src/c++11/regex.cc (__throw_regex_error): Likewise.
	* src/c++11/snprintf_lite.cc (__concat_size_t): Print decimal
	representation directly instead of calling __int_to_char.
	* src/c++11/sso_string.cc (__sso_string): New file for definition
	of __sso_string type.
	* src/c++11/string-io-inst.cc [_GLIBCXX_USE_CXX11_ABI]: New file for
	explicit instantiations of narrow string I/O functions.
	* src/c++11/system_error.cc (__throw_system_error): Move here.
	(__sso_string): Move to new file.
	* src/c++11/wstring-io-inst.cc [_GLIBCXX_USE_CXX11_ABI]: New file for
	explicit instantiations of wide string I/O functions.
	* src/c++98/misc-inst.cc [_GLIBCXX_USE_CXX11_ABI] (operator<<)
	(operator>>, getline): Remove explicit instantiations from here.

Added:
    trunk/libstdc++-v3/src/c++11/cow-string-io-inst.cc
      - copied, changed from r245159, trunk/libstdc++-v3/src/c++11/cow-wstring-inst.cc
    trunk/libstdc++-v3/src/c++11/cow-wstring-io-inst.cc
      - copied, changed from r245159, trunk/libstdc++-v3/src/c++11/cow-wstring-inst.cc
    trunk/libstdc++-v3/src/c++11/sso_string.cc
      - copied, changed from r245159, trunk/libstdc++-v3/src/c++11/system_error.cc
    trunk/libstdc++-v3/src/c++11/string-io-inst.cc
      - copied, changed from r245159, trunk/libstdc++-v3/src/c++11/functional.cc
    trunk/libstdc++-v3/src/c++11/wstring-io-inst.cc
      - copied, changed from r245159, trunk/libstdc++-v3/src/c++11/cow-wstring-inst.cc
Modified:
    trunk/libstdc++-v3/ChangeLog
    trunk/libstdc++-v3/src/c++11/Makefile.am
    trunk/libstdc++-v3/src/c++11/Makefile.in
    trunk/libstdc++-v3/src/c++11/cow-string-inst.cc
    trunk/libstdc++-v3/src/c++11/cow-wstring-inst.cc
    trunk/libstdc++-v3/src/c++11/functexcept.cc
    trunk/libstdc++-v3/src/c++11/functional.cc
    trunk/libstdc++-v3/src/c++11/future.cc
    trunk/libstdc++-v3/src/c++11/ios.cc
    trunk/libstdc++-v3/src/c++11/regex.cc
    trunk/libstdc++-v3/src/c++11/snprintf_lite.cc
    trunk/libstdc++-v3/src/c++11/system_error.cc
    trunk/libstdc++-v3/src/c++98/misc-inst.cc



More information about the Libstdc++-cvs mailing list