From 4317778a9b6213a97a3de5ffd77edf516592fb71 Mon Sep 17 00:00:00 2001 From: Jonathan Wakely Date: Fri, 16 Jun 2017 12:54:59 +0100 Subject: [PATCH] PR libstdc++/81092 add std::wstring symbols and bump library version PR libstdc++/81092 * acinclude.m4: Bump libtool_VERSION. * config/abi/post/i386-linux-gnu/baseline_symbols.txt: Update. * config/abi/post/x86_64-linux-gnu/32/baseline_symbols.txt: Update. * config/abi/pre/gnu.ver: Add wstring constructor symbols to GLIBCXX_3.4.24 version and move random_device::_M_get_entropy() symbol to new GLIBCXX_3.4.25 version. * doc/xml/manual/abi.xml: Document new versions. * doc/html/*: Regenerate. * testsuite/21_strings/basic_string/cons/char/8.cc: Use base object constructors to ensure required symbols are exported. * testsuite/21_strings/basic_string/cons/wchar_t/8.cc: Likewise. * testsuite/util/testsuite_abi.cc: Add new version. From-SVN: r249246 --- libstdc++-v3/ChangeLog | 14 ++++++++++++++ libstdc++-v3/acinclude.m4 | 2 +- .../post/i386-linux-gnu/baseline_symbols.txt | 5 +++++ .../x86_64-linux-gnu/32/baseline_symbols.txt | 5 +++++ libstdc++-v3/config/abi/pre/gnu.ver | 10 +++++++++- libstdc++-v3/doc/html/manual/abi.html | 4 ++-- libstdc++-v3/doc/html/manual/bugs.html | 14 ++++++++++++++ libstdc++-v3/doc/html/manual/status.html | 8 ++++++-- libstdc++-v3/doc/xml/manual/abi.xml | 6 ++++-- .../21_strings/basic_string/cons/char/8.cc | 17 ++++++++++++++++- .../21_strings/basic_string/cons/wchar_t/8.cc | 17 ++++++++++++++++- libstdc++-v3/testsuite/util/testsuite_abi.cc | 3 ++- 12 files changed, 94 insertions(+), 11 deletions(-) diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog index 09d1abe4fb7..bcf1d049a29 100644 --- a/libstdc++-v3/ChangeLog +++ b/libstdc++-v3/ChangeLog @@ -1,5 +1,19 @@ 2017-06-16 Jonathan Wakely + PR libstdc++/81092 + * acinclude.m4: Bump libtool_VERSION. + * config/abi/post/i386-linux-gnu/baseline_symbols.txt: Update. + * config/abi/post/x86_64-linux-gnu/32/baseline_symbols.txt: Update. + * config/abi/pre/gnu.ver: Add wstring constructor symbols to + GLIBCXX_3.4.24 version and move random_device::_M_get_entropy() symbol + to new GLIBCXX_3.4.25 version. + * doc/xml/manual/abi.xml: Document new versions. + * doc/html/*: Regenerate. + * testsuite/21_strings/basic_string/cons/char/8.cc: Use base object + constructors to ensure required symbols are exported. + * testsuite/21_strings/basic_string/cons/wchar_t/8.cc: Likewise. + * testsuite/util/testsuite_abi.cc: Add new version. + * include/bits/locale_conv.h (wbuffer_convert::_M_put): Add missing return statement. * testsuite/21_strings/basic_string_view/operations/copy/char/1.cc: diff --git a/libstdc++-v3/acinclude.m4 b/libstdc++-v3/acinclude.m4 index baeea67c459..599308f587a 100644 --- a/libstdc++-v3/acinclude.m4 +++ b/libstdc++-v3/acinclude.m4 @@ -3750,7 +3750,7 @@ changequote([,])dnl fi # For libtool versioning info, format is CURRENT:REVISION:AGE -libtool_VERSION=6:24:0 +libtool_VERSION=6:25:0 # Everything parsed; figure out what files and settings to use. case $enable_symvers in diff --git a/libstdc++-v3/config/abi/post/i386-linux-gnu/baseline_symbols.txt b/libstdc++-v3/config/abi/post/i386-linux-gnu/baseline_symbols.txt index f9eab29048f..e673f4f86dc 100644 --- a/libstdc++-v3/config/abi/post/i386-linux-gnu/baseline_symbols.txt +++ b/libstdc++-v3/config/abi/post/i386-linux-gnu/baseline_symbols.txt @@ -444,6 +444,7 @@ FUNC:_ZNKSt13basic_fstreamIwSt11char_traitsIwEE7is_openEv@GLIBCXX_3.4 FUNC:_ZNKSt13basic_istreamIwSt11char_traitsIwEE6gcountEv@@GLIBCXX_3.4 FUNC:_ZNKSt13basic_istreamIwSt11char_traitsIwEE6sentrycvbEv@@GLIBCXX_3.4 FUNC:_ZNKSt13basic_ostreamIwSt11char_traitsIwEE6sentrycvbEv@@GLIBCXX_3.4 +FUNC:_ZNKSt13random_device13_M_getentropyEv@@GLIBCXX_3.4.25 FUNC:_ZNKSt13runtime_error4whatEv@@GLIBCXX_3.4 FUNC:_ZNKSt14basic_ifstreamIcSt11char_traitsIcEE5rdbufEv@@GLIBCXX_3.4 FUNC:_ZNKSt14basic_ifstreamIcSt11char_traitsIcEE7is_openEv@@GLIBCXX_3.4.5 @@ -1329,6 +1330,7 @@ FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1EPKwRKS1_@@GLIBCXX_3.4 FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1EPKwjRKS1_@@GLIBCXX_3.4 FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1ERKS1_@@GLIBCXX_3.4 FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1ERKS2_@@GLIBCXX_3.4 +FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1ERKS2_jRKS1_@@GLIBCXX_3.4.24 FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1ERKS2_jj@@GLIBCXX_3.4 FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1ERKS2_jjRKS1_@@GLIBCXX_3.4 FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1ESt16initializer_listIwERKS1_@@GLIBCXX_3.4.11 @@ -1342,6 +1344,7 @@ FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2EPKwRKS1_@@GLIBCXX_3.4 FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2EPKwjRKS1_@@GLIBCXX_3.4 FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2ERKS1_@@GLIBCXX_3.4 FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2ERKS2_@@GLIBCXX_3.4 +FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2ERKS2_jRKS1_@@GLIBCXX_3.4.24 FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2ERKS2_jj@@GLIBCXX_3.4 FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2ERKS2_jjRKS1_@@GLIBCXX_3.4 FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2ESt16initializer_listIwERKS1_@@GLIBCXX_3.4.11 @@ -4002,6 +4005,8 @@ OBJECT:0:GLIBCXX_3.4.20 OBJECT:0:GLIBCXX_3.4.21 OBJECT:0:GLIBCXX_3.4.22 OBJECT:0:GLIBCXX_3.4.23 +OBJECT:0:GLIBCXX_3.4.24 +OBJECT:0:GLIBCXX_3.4.25 OBJECT:0:GLIBCXX_3.4.3 OBJECT:0:GLIBCXX_3.4.4 OBJECT:0:GLIBCXX_3.4.5 diff --git a/libstdc++-v3/config/abi/post/x86_64-linux-gnu/32/baseline_symbols.txt b/libstdc++-v3/config/abi/post/x86_64-linux-gnu/32/baseline_symbols.txt index f9eab29048f..e673f4f86dc 100644 --- a/libstdc++-v3/config/abi/post/x86_64-linux-gnu/32/baseline_symbols.txt +++ b/libstdc++-v3/config/abi/post/x86_64-linux-gnu/32/baseline_symbols.txt @@ -444,6 +444,7 @@ FUNC:_ZNKSt13basic_fstreamIwSt11char_traitsIwEE7is_openEv@GLIBCXX_3.4 FUNC:_ZNKSt13basic_istreamIwSt11char_traitsIwEE6gcountEv@@GLIBCXX_3.4 FUNC:_ZNKSt13basic_istreamIwSt11char_traitsIwEE6sentrycvbEv@@GLIBCXX_3.4 FUNC:_ZNKSt13basic_ostreamIwSt11char_traitsIwEE6sentrycvbEv@@GLIBCXX_3.4 +FUNC:_ZNKSt13random_device13_M_getentropyEv@@GLIBCXX_3.4.25 FUNC:_ZNKSt13runtime_error4whatEv@@GLIBCXX_3.4 FUNC:_ZNKSt14basic_ifstreamIcSt11char_traitsIcEE5rdbufEv@@GLIBCXX_3.4 FUNC:_ZNKSt14basic_ifstreamIcSt11char_traitsIcEE7is_openEv@@GLIBCXX_3.4.5 @@ -1329,6 +1330,7 @@ FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1EPKwRKS1_@@GLIBCXX_3.4 FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1EPKwjRKS1_@@GLIBCXX_3.4 FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1ERKS1_@@GLIBCXX_3.4 FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1ERKS2_@@GLIBCXX_3.4 +FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1ERKS2_jRKS1_@@GLIBCXX_3.4.24 FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1ERKS2_jj@@GLIBCXX_3.4 FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1ERKS2_jjRKS1_@@GLIBCXX_3.4 FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1ESt16initializer_listIwERKS1_@@GLIBCXX_3.4.11 @@ -1342,6 +1344,7 @@ FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2EPKwRKS1_@@GLIBCXX_3.4 FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2EPKwjRKS1_@@GLIBCXX_3.4 FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2ERKS1_@@GLIBCXX_3.4 FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2ERKS2_@@GLIBCXX_3.4 +FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2ERKS2_jRKS1_@@GLIBCXX_3.4.24 FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2ERKS2_jj@@GLIBCXX_3.4 FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2ERKS2_jjRKS1_@@GLIBCXX_3.4 FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2ESt16initializer_listIwERKS1_@@GLIBCXX_3.4.11 @@ -4002,6 +4005,8 @@ OBJECT:0:GLIBCXX_3.4.20 OBJECT:0:GLIBCXX_3.4.21 OBJECT:0:GLIBCXX_3.4.22 OBJECT:0:GLIBCXX_3.4.23 +OBJECT:0:GLIBCXX_3.4.24 +OBJECT:0:GLIBCXX_3.4.25 OBJECT:0:GLIBCXX_3.4.3 OBJECT:0:GLIBCXX_3.4.4 OBJECT:0:GLIBCXX_3.4.5 diff --git a/libstdc++-v3/config/abi/pre/gnu.ver b/libstdc++-v3/config/abi/pre/gnu.ver index 48e2ec870fc..7e5a9cce7ab 100644 --- a/libstdc++-v3/config/abi/pre/gnu.ver +++ b/libstdc++-v3/config/abi/pre/gnu.ver @@ -1953,6 +1953,7 @@ GLIBCXX_3.4.23 { # basic_string::basic_string(const basic_string&, size_type, const A&) _ZNSt7__cxx1112basic_stringI[cw]St11char_traitsI[cw]ESaI[cw]EEC[12]ERKS4_[jmy]RKS3_; _ZNSsC[12]ERKSs[jmy]RKSaIcE; + # This should have been _[jmy]RKS1_ not _mRKS1_ (PR libstdc++/81092): _ZNSbIwSt11char_traitsIwESaIwEEC[12]ERKS2_mRKS1_; #ifndef HAVE_EXCEPTION_PTR_SINCE_GCC46 @@ -1969,10 +1970,17 @@ GLIBCXX_3.4.23 { GLIBCXX_3.4.24 { + # These should have been in GLIBCXX_3.4.23 (PR libstdc++/81092): + _ZNSbIwSt11char_traitsIwESaIwEEC[12]ERKS2_[jy]RKS1_; + +} GLIBCXX_3.4.23; + +GLIBCXX_3.4.25 { + # std::random_device::_M_getentropy() const _ZNKSt13random_device13_M_getentropyEv; -} GLIBCXX_3.4.23; +} GLIBCXX_3.4.24; # Symbols in the support library (libsupc++) have their own tag. CXXABI_1.3 { diff --git a/libstdc++-v3/doc/html/manual/abi.html b/libstdc++-v3/doc/html/manual/abi.html index 2d43eb523fa..a611f7b4014 100644 --- a/libstdc++-v3/doc/html/manual/abi.html +++ b/libstdc++-v3/doc/html/manual/abi.html @@ -110,7 +110,7 @@ compatible. has the same filename and DT_SONAME as the preceding release.

It is versioned as follows: -

  • GCC 3.0.0: libstdc++.so.3.0.0

  • GCC 3.0.1: libstdc++.so.3.0.1

  • GCC 3.0.2: libstdc++.so.3.0.2

  • GCC 3.0.3: libstdc++.so.3.0.2 (See Note 1)

  • GCC 3.0.4: libstdc++.so.3.0.4

  • GCC 3.1.0: libstdc++.so.4.0.0 (Incompatible with previous)

  • GCC 3.1.1: libstdc++.so.4.0.1

  • GCC 3.2.0: libstdc++.so.5.0.0 (Incompatible with previous)

  • GCC 3.2.1: libstdc++.so.5.0.1

  • GCC 3.2.2: libstdc++.so.5.0.2

  • GCC 3.2.3: libstdc++.so.5.0.3 (See Note 2)

  • GCC 3.3.0: libstdc++.so.5.0.4

  • GCC 3.3.1: libstdc++.so.5.0.5

  • GCC 3.4.0: libstdc++.so.6.0.0 (Incompatible with previous)

  • GCC 3.4.1: libstdc++.so.6.0.1

  • GCC 3.4.2: libstdc++.so.6.0.2

  • GCC 3.4.3: libstdc++.so.6.0.3

  • GCC 4.0.0: libstdc++.so.6.0.4

  • GCC 4.0.1: libstdc++.so.6.0.5

  • GCC 4.0.2: libstdc++.so.6.0.6

  • GCC 4.0.3: libstdc++.so.6.0.7

  • GCC 4.1.0: libstdc++.so.6.0.7

  • GCC 4.1.1: libstdc++.so.6.0.8

  • GCC 4.2.0: libstdc++.so.6.0.9

  • GCC 4.2.1: libstdc++.so.6.0.9 (See Note 3)

  • GCC 4.2.2: libstdc++.so.6.0.9

  • GCC 4.3.0: libstdc++.so.6.0.10

  • GCC 4.4.0: libstdc++.so.6.0.11

  • GCC 4.4.1: libstdc++.so.6.0.12

  • GCC 4.4.2: libstdc++.so.6.0.13

  • GCC 4.5.0: libstdc++.so.6.0.14

  • GCC 4.6.0: libstdc++.so.6.0.15

  • GCC 4.6.1: libstdc++.so.6.0.16

  • GCC 4.7.0: libstdc++.so.6.0.17

  • GCC 4.8.0: libstdc++.so.6.0.18

  • GCC 4.8.3: libstdc++.so.6.0.19

  • GCC 4.9.0: libstdc++.so.6.0.20

  • GCC 5.1.0: libstdc++.so.6.0.21

  • GCC 6.1.0: libstdc++.so.6.0.22

  • GCC 7.1.0: libstdc++.so.6.0.23

+

  • GCC 3.0.0: libstdc++.so.3.0.0

  • GCC 3.0.1: libstdc++.so.3.0.1

  • GCC 3.0.2: libstdc++.so.3.0.2

  • GCC 3.0.3: libstdc++.so.3.0.2 (See Note 1)

  • GCC 3.0.4: libstdc++.so.3.0.4

  • GCC 3.1.0: libstdc++.so.4.0.0 (Incompatible with previous)

  • GCC 3.1.1: libstdc++.so.4.0.1

  • GCC 3.2.0: libstdc++.so.5.0.0 (Incompatible with previous)

  • GCC 3.2.1: libstdc++.so.5.0.1

  • GCC 3.2.2: libstdc++.so.5.0.2

  • GCC 3.2.3: libstdc++.so.5.0.3 (See Note 2)

  • GCC 3.3.0: libstdc++.so.5.0.4

  • GCC 3.3.1: libstdc++.so.5.0.5

  • GCC 3.4.0: libstdc++.so.6.0.0 (Incompatible with previous)

  • GCC 3.4.1: libstdc++.so.6.0.1

  • GCC 3.4.2: libstdc++.so.6.0.2

  • GCC 3.4.3: libstdc++.so.6.0.3

  • GCC 4.0.0: libstdc++.so.6.0.4

  • GCC 4.0.1: libstdc++.so.6.0.5

  • GCC 4.0.2: libstdc++.so.6.0.6

  • GCC 4.0.3: libstdc++.so.6.0.7

  • GCC 4.1.0: libstdc++.so.6.0.7

  • GCC 4.1.1: libstdc++.so.6.0.8

  • GCC 4.2.0: libstdc++.so.6.0.9

  • GCC 4.2.1: libstdc++.so.6.0.9 (See Note 3)

  • GCC 4.2.2: libstdc++.so.6.0.9

  • GCC 4.3.0: libstdc++.so.6.0.10

  • GCC 4.4.0: libstdc++.so.6.0.11

  • GCC 4.4.1: libstdc++.so.6.0.12

  • GCC 4.4.2: libstdc++.so.6.0.13

  • GCC 4.5.0: libstdc++.so.6.0.14

  • GCC 4.6.0: libstdc++.so.6.0.15

  • GCC 4.6.1: libstdc++.so.6.0.16

  • GCC 4.7.0: libstdc++.so.6.0.17

  • GCC 4.8.0: libstdc++.so.6.0.18

  • GCC 4.8.3: libstdc++.so.6.0.19

  • GCC 4.9.0: libstdc++.so.6.0.20

  • GCC 5.1.0: libstdc++.so.6.0.21

  • GCC 6.1.0: libstdc++.so.6.0.22

  • GCC 7.1.0: libstdc++.so.6.0.23

  • GCC 7.2.0: libstdc++.so.6.0.24

  • GCC 8.0.0: libstdc++.so.6.0.25

Note 1: Error should be libstdc++.so.3.0.3.

Note 2: Not strictly required. @@ -128,7 +128,7 @@ compatible. GLIBCPP_3.2 for symbols that were introduced in the GCC 3.2.0 release.) If a particular release is not listed, it has the same version labels as the preceding release. -

  • GCC 3.0.0: (Error, not versioned)

  • GCC 3.0.1: (Error, not versioned)

  • GCC 3.0.2: (Error, not versioned)

  • GCC 3.0.3: (Error, not versioned)

  • GCC 3.0.4: (Error, not versioned)

  • GCC 3.1.0: GLIBCPP_3.1, CXXABI_1

  • GCC 3.1.1: GLIBCPP_3.1, CXXABI_1

  • GCC 3.2.0: GLIBCPP_3.2, CXXABI_1.2

  • GCC 3.2.1: GLIBCPP_3.2.1, CXXABI_1.2

  • GCC 3.2.2: GLIBCPP_3.2.2, CXXABI_1.2

  • GCC 3.2.3: GLIBCPP_3.2.2, CXXABI_1.2

  • GCC 3.3.0: GLIBCPP_3.2.2, CXXABI_1.2.1

  • GCC 3.3.1: GLIBCPP_3.2.3, CXXABI_1.2.1

  • GCC 3.3.2: GLIBCPP_3.2.3, CXXABI_1.2.1

  • GCC 3.3.3: GLIBCPP_3.2.3, CXXABI_1.2.1

  • GCC 3.4.0: GLIBCXX_3.4, CXXABI_1.3

  • GCC 3.4.1: GLIBCXX_3.4.1, CXXABI_1.3

  • GCC 3.4.2: GLIBCXX_3.4.2

  • GCC 3.4.3: GLIBCXX_3.4.3

  • GCC 4.0.0: GLIBCXX_3.4.4, CXXABI_1.3.1

  • GCC 4.0.1: GLIBCXX_3.4.5

  • GCC 4.0.2: GLIBCXX_3.4.6

  • GCC 4.0.3: GLIBCXX_3.4.7

  • GCC 4.1.1: GLIBCXX_3.4.8

  • GCC 4.2.0: GLIBCXX_3.4.9

  • GCC 4.3.0: GLIBCXX_3.4.10, CXXABI_1.3.2

  • GCC 4.4.0: GLIBCXX_3.4.11, CXXABI_1.3.3

  • GCC 4.4.1: GLIBCXX_3.4.12, CXXABI_1.3.3

  • GCC 4.4.2: GLIBCXX_3.4.13, CXXABI_1.3.3

  • GCC 4.5.0: GLIBCXX_3.4.14, CXXABI_1.3.4

  • GCC 4.6.0: GLIBCXX_3.4.15, CXXABI_1.3.5

  • GCC 4.6.1: GLIBCXX_3.4.16, CXXABI_1.3.5

  • GCC 4.7.0: GLIBCXX_3.4.17, CXXABI_1.3.6

  • GCC 4.8.0: GLIBCXX_3.4.18, CXXABI_1.3.7

  • GCC 4.8.3: GLIBCXX_3.4.19, CXXABI_1.3.7

  • GCC 4.9.0: GLIBCXX_3.4.20, CXXABI_1.3.8

  • GCC 5.1.0: GLIBCXX_3.4.21, CXXABI_1.3.9

  • GCC 6.1.0: GLIBCXX_3.4.22, CXXABI_1.3.10

  • GCC 7.1.0: GLIBCXX_3.4.23, CXXABI_1.3.11

  • Incremental bumping of a compiler pre-defined macro, +

    • GCC 3.0.0: (Error, not versioned)

    • GCC 3.0.1: (Error, not versioned)

    • GCC 3.0.2: (Error, not versioned)

    • GCC 3.0.3: (Error, not versioned)

    • GCC 3.0.4: (Error, not versioned)

    • GCC 3.1.0: GLIBCPP_3.1, CXXABI_1

    • GCC 3.1.1: GLIBCPP_3.1, CXXABI_1

    • GCC 3.2.0: GLIBCPP_3.2, CXXABI_1.2

    • GCC 3.2.1: GLIBCPP_3.2.1, CXXABI_1.2

    • GCC 3.2.2: GLIBCPP_3.2.2, CXXABI_1.2

    • GCC 3.2.3: GLIBCPP_3.2.2, CXXABI_1.2

    • GCC 3.3.0: GLIBCPP_3.2.2, CXXABI_1.2.1

    • GCC 3.3.1: GLIBCPP_3.2.3, CXXABI_1.2.1

    • GCC 3.3.2: GLIBCPP_3.2.3, CXXABI_1.2.1

    • GCC 3.3.3: GLIBCPP_3.2.3, CXXABI_1.2.1

    • GCC 3.4.0: GLIBCXX_3.4, CXXABI_1.3

    • GCC 3.4.1: GLIBCXX_3.4.1, CXXABI_1.3

    • GCC 3.4.2: GLIBCXX_3.4.2

    • GCC 3.4.3: GLIBCXX_3.4.3

    • GCC 4.0.0: GLIBCXX_3.4.4, CXXABI_1.3.1

    • GCC 4.0.1: GLIBCXX_3.4.5

    • GCC 4.0.2: GLIBCXX_3.4.6

    • GCC 4.0.3: GLIBCXX_3.4.7

    • GCC 4.1.1: GLIBCXX_3.4.8

    • GCC 4.2.0: GLIBCXX_3.4.9

    • GCC 4.3.0: GLIBCXX_3.4.10, CXXABI_1.3.2

    • GCC 4.4.0: GLIBCXX_3.4.11, CXXABI_1.3.3

    • GCC 4.4.1: GLIBCXX_3.4.12, CXXABI_1.3.3

    • GCC 4.4.2: GLIBCXX_3.4.13, CXXABI_1.3.3

    • GCC 4.5.0: GLIBCXX_3.4.14, CXXABI_1.3.4

    • GCC 4.6.0: GLIBCXX_3.4.15, CXXABI_1.3.5

    • GCC 4.6.1: GLIBCXX_3.4.16, CXXABI_1.3.5

    • GCC 4.7.0: GLIBCXX_3.4.17, CXXABI_1.3.6

    • GCC 4.8.0: GLIBCXX_3.4.18, CXXABI_1.3.7

    • GCC 4.8.3: GLIBCXX_3.4.19, CXXABI_1.3.7

    • GCC 4.9.0: GLIBCXX_3.4.20, CXXABI_1.3.8

    • GCC 5.1.0: GLIBCXX_3.4.21, CXXABI_1.3.9

    • GCC 6.1.0: GLIBCXX_3.4.22, CXXABI_1.3.10

    • GCC 7.1.0: GLIBCXX_3.4.23, CXXABI_1.3.11

    • GCC 7.2.0: GLIBCXX_3.4.24, CXXABI_1.3.11

    • GCC 8.0.0: GLIBCXX_3.4.25, CXXABI_1.3.11

  • Incremental bumping of a compiler pre-defined macro, __GXX_ABI_VERSION. This macro is defined as the version of the compiler v3 ABI, with g++ 3.0 being version 100. This macro will be automatically defined whenever g++ is used (the curious can diff --git a/libstdc++-v3/doc/html/manual/bugs.html b/libstdc++-v3/doc/html/manual/bugs.html index ac9b5dcdb47..1cdbf398dce 100644 --- a/libstdc++-v3/doc/html/manual/bugs.html +++ b/libstdc++-v3/doc/html/manual/bugs.html @@ -504,4 +504,18 @@

    Remove special handling for reference_wrapper arguments and store them directly as the target object. +

    2802: + Add noexcept to several shared_ptr related + functions + +

    Add noexcept. +

    2873: + shared_ptr constructor requirements for a deleter + +

    Use rvalues for deleters. +

    2942: + LWG 2873's resolution missed + weak_ptr::owner_before + +

    Add noexcept.

    \ No newline at end of file diff --git a/libstdc++-v3/doc/html/manual/status.html b/libstdc++-v3/doc/html/manual/status.html index c3b6201462a..0bc72aea674 100644 --- a/libstdc++-v3/doc/html/manual/status.html +++ b/libstdc++-v3/doc/html/manual/status.html @@ -264,6 +264,10 @@ particular release. u32streampos are both synonyms for fpos<mbstate_t>. The function eof returns int_type(-1). + char_traits<char16_t>::to_int_type will + transform the "noncharacter" U+FFFF to U+FFFD (REPLACEMENT CHARACTER). + This is done to ensure that to_int_type never + returns the same value as eof, which is U+FFFF.

    22.3.1 [locale] There is one global locale for the whole program, not per-thread. @@ -684,11 +688,11 @@ Feature-testing recommendations for C++. P0505R0 - 7 ??? Constexpr for std::char_traits + 7 ??? Constexpr for std::char_traits P0426R1 - 7 (partial) ??? Integrating std::string_view and std::string + 8 __cpp_lib_constexpr_char_traits >= 201611 Integrating std::string_view and std::string P0254R2 diff --git a/libstdc++-v3/doc/xml/manual/abi.xml b/libstdc++-v3/doc/xml/manual/abi.xml index d17f06e25fb..58950c990ea 100644 --- a/libstdc++-v3/doc/xml/manual/abi.xml +++ b/libstdc++-v3/doc/xml/manual/abi.xml @@ -266,7 +266,8 @@ compatible. GCC 5.1.0: libstdc++.so.6.0.21 GCC 6.1.0: libstdc++.so.6.0.22 GCC 7.1.0: libstdc++.so.6.0.23 - GCC 8.0.0: libstdc++.so.6.0.24 + GCC 7.2.0: libstdc++.so.6.0.24 + GCC 8.0.0: libstdc++.so.6.0.25 Note 1: Error should be libstdc++.so.3.0.3. @@ -335,7 +336,8 @@ compatible. GCC 5.1.0: GLIBCXX_3.4.21, CXXABI_1.3.9 GCC 6.1.0: GLIBCXX_3.4.22, CXXABI_1.3.10 GCC 7.1.0: GLIBCXX_3.4.23, CXXABI_1.3.11 - GCC 8.0.0: GLIBCXX_3.4.24, CXXABI_1.3.11 + GCC 7.2.0: GLIBCXX_3.4.24, CXXABI_1.3.11 + GCC 8.0.0: GLIBCXX_3.4.25, CXXABI_1.3.11 diff --git a/libstdc++-v3/testsuite/21_strings/basic_string/cons/char/8.cc b/libstdc++-v3/testsuite/21_strings/basic_string/cons/char/8.cc index 6fc4fdf6caa..aceec5cea15 100644 --- a/libstdc++-v3/testsuite/21_strings/basic_string/cons/char/8.cc +++ b/libstdc++-v3/testsuite/21_strings/basic_string/cons/char/8.cc @@ -15,16 +15,31 @@ // with this library; see the file COPYING3. If not see // . +// { dg-options "-O0" } // { dg-do run { target c++11 } } #include #include +struct TestBaseObjCtor : std::string +{ + template + TestBaseObjCtor(Args&&... args) + : std::string(std::forward(args)...) + { } +}; + template std::size_t construct(Args&&... args) { - return std::string( std::forward(args)... ).length(); + // Use static_cast to produce either an lvalue or prvalue, + // so args... not left in moved-from state and can be reused below: + TestBaseObjCtor as_base_obj( static_cast(args)... ); + + std::string as_complete_obj( std::forward(args)... ); + + return as_complete_obj.length(); } void diff --git a/libstdc++-v3/testsuite/21_strings/basic_string/cons/wchar_t/8.cc b/libstdc++-v3/testsuite/21_strings/basic_string/cons/wchar_t/8.cc index 0fee5782622..734573768d7 100644 --- a/libstdc++-v3/testsuite/21_strings/basic_string/cons/wchar_t/8.cc +++ b/libstdc++-v3/testsuite/21_strings/basic_string/cons/wchar_t/8.cc @@ -15,16 +15,31 @@ // with this library; see the file COPYING3. If not see // . +// { dg-options "-O0" } // { dg-do run { target c++11 } } #include #include +struct TestBaseObjCtor : std::wstring +{ + template + TestBaseObjCtor(Args&&... args) + : std::wstring(std::forward(args)...) + { } +}; + template std::size_t construct(Args&&... args) { - return std::wstring( std::forward(args)... ).length(); + // Use static_cast to produce either an lvalue or prvalue, + // so args... not left in moved-from state and can be reused below: + TestBaseObjCtor as_base_obj( static_cast(args)... ); + + std::wstring as_complete_obj( std::forward(args)... ); + + return as_complete_obj.length(); } void diff --git a/libstdc++-v3/testsuite/util/testsuite_abi.cc b/libstdc++-v3/testsuite/util/testsuite_abi.cc index ee7572ea244..4d7f4ca3a65 100644 --- a/libstdc++-v3/testsuite/util/testsuite_abi.cc +++ b/libstdc++-v3/testsuite/util/testsuite_abi.cc @@ -205,6 +205,7 @@ check_version(symbol& test, bool added) known_versions.push_back("GLIBCXX_3.4.22"); known_versions.push_back("GLIBCXX_3.4.23"); known_versions.push_back("GLIBCXX_3.4.24"); + known_versions.push_back("GLIBCXX_3.4.25"); known_versions.push_back("CXXABI_1.3"); known_versions.push_back("CXXABI_LDBL_1.3"); known_versions.push_back("CXXABI_1.3.1"); @@ -235,7 +236,7 @@ check_version(symbol& test, bool added) test.version_status = symbol::incompatible; // Check that added symbols are added in the latest pre-release version. - bool latestp = (test.version_name == "GLIBCXX_3.4.24" + bool latestp = (test.version_name == "GLIBCXX_3.4.25" || test.version_name == "CXXABI_1.3.11" || test.version_name == "CXXABI_FLOAT128" || test.version_name == "CXXABI_TM_1"); -- 2.30.2