[Bug libstdc++/60936] [5/6 Regression] Binary code bloat with std::string

redi at gcc dot gnu.org gcc-bugzilla@gcc.gnu.org
Mon Sep 18 12:57:00 GMT 2017


https://gcc.gnu.org/bugzilla/show_bug.cgi?id=60936

--- Comment #36 from Jonathan Wakely <redi at gcc dot gnu.org> ---
Author: redi
Date: Mon Sep 18 12:57:05 2017
New Revision: 252925

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

Backport from mainline
2017-02-03  Jonathan Wakely  <jwakely@redhat.com>

        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:
    branches/gcc-6-branch/libstdc++-v3/src/c++11/cow-string-io-inst.cc
      - copied, changed from r252920,
branches/gcc-6-branch/libstdc++-v3/src/c++11/cow-wstring-inst.cc
    branches/gcc-6-branch/libstdc++-v3/src/c++11/cow-wstring-io-inst.cc
      - copied, changed from r252920,
branches/gcc-6-branch/libstdc++-v3/src/c++11/cow-wstring-inst.cc
    branches/gcc-6-branch/libstdc++-v3/src/c++11/sso_string.cc
      - copied, changed from r252920,
branches/gcc-6-branch/libstdc++-v3/src/c++11/system_error.cc
    branches/gcc-6-branch/libstdc++-v3/src/c++11/string-io-inst.cc
      - copied, changed from r252920,
branches/gcc-6-branch/libstdc++-v3/src/c++11/functional.cc
    branches/gcc-6-branch/libstdc++-v3/src/c++11/wstring-io-inst.cc
      - copied, changed from r252920,
branches/gcc-6-branch/libstdc++-v3/src/c++11/cow-wstring-inst.cc
Modified:
    branches/gcc-6-branch/libstdc++-v3/ChangeLog
    branches/gcc-6-branch/libstdc++-v3/src/c++11/Makefile.am
    branches/gcc-6-branch/libstdc++-v3/src/c++11/Makefile.in
    branches/gcc-6-branch/libstdc++-v3/src/c++11/cow-string-inst.cc
    branches/gcc-6-branch/libstdc++-v3/src/c++11/cow-wstring-inst.cc
    branches/gcc-6-branch/libstdc++-v3/src/c++11/functexcept.cc
    branches/gcc-6-branch/libstdc++-v3/src/c++11/functional.cc
    branches/gcc-6-branch/libstdc++-v3/src/c++11/future.cc
    branches/gcc-6-branch/libstdc++-v3/src/c++11/ios.cc
    branches/gcc-6-branch/libstdc++-v3/src/c++11/regex.cc
    branches/gcc-6-branch/libstdc++-v3/src/c++11/snprintf_lite.cc
    branches/gcc-6-branch/libstdc++-v3/src/c++11/system_error.cc
    branches/gcc-6-branch/libstdc++-v3/src/c++98/misc-inst.cc


More information about the Gcc-bugs mailing list