Commit 4317778a by Jonathan Wakely Committed by Jonathan Wakely

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
parent 66846c07
2017-06-16 Jonathan Wakely <jwakely@redhat.com> 2017-06-16 Jonathan Wakely <jwakely@redhat.com>
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 * include/bits/locale_conv.h (wbuffer_convert::_M_put): Add missing
return statement. return statement.
* testsuite/21_strings/basic_string_view/operations/copy/char/1.cc: * testsuite/21_strings/basic_string_view/operations/copy/char/1.cc:
......
...@@ -3750,7 +3750,7 @@ changequote([,])dnl ...@@ -3750,7 +3750,7 @@ changequote([,])dnl
fi fi
# For libtool versioning info, format is CURRENT:REVISION:AGE # 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. # Everything parsed; figure out what files and settings to use.
case $enable_symvers in case $enable_symvers in
......
...@@ -444,6 +444,7 @@ FUNC:_ZNKSt13basic_fstreamIwSt11char_traitsIwEE7is_openEv@GLIBCXX_3.4 ...@@ -444,6 +444,7 @@ FUNC:_ZNKSt13basic_fstreamIwSt11char_traitsIwEE7is_openEv@GLIBCXX_3.4
FUNC:_ZNKSt13basic_istreamIwSt11char_traitsIwEE6gcountEv@@GLIBCXX_3.4 FUNC:_ZNKSt13basic_istreamIwSt11char_traitsIwEE6gcountEv@@GLIBCXX_3.4
FUNC:_ZNKSt13basic_istreamIwSt11char_traitsIwEE6sentrycvbEv@@GLIBCXX_3.4 FUNC:_ZNKSt13basic_istreamIwSt11char_traitsIwEE6sentrycvbEv@@GLIBCXX_3.4
FUNC:_ZNKSt13basic_ostreamIwSt11char_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:_ZNKSt13runtime_error4whatEv@@GLIBCXX_3.4
FUNC:_ZNKSt14basic_ifstreamIcSt11char_traitsIcEE5rdbufEv@@GLIBCXX_3.4 FUNC:_ZNKSt14basic_ifstreamIcSt11char_traitsIcEE5rdbufEv@@GLIBCXX_3.4
FUNC:_ZNKSt14basic_ifstreamIcSt11char_traitsIcEE7is_openEv@@GLIBCXX_3.4.5 FUNC:_ZNKSt14basic_ifstreamIcSt11char_traitsIcEE7is_openEv@@GLIBCXX_3.4.5
...@@ -1329,6 +1330,7 @@ FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1EPKwRKS1_@@GLIBCXX_3.4 ...@@ -1329,6 +1330,7 @@ FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1EPKwRKS1_@@GLIBCXX_3.4
FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1EPKwjRKS1_@@GLIBCXX_3.4 FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1EPKwjRKS1_@@GLIBCXX_3.4
FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1ERKS1_@@GLIBCXX_3.4 FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1ERKS1_@@GLIBCXX_3.4
FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1ERKS2_@@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_jj@@GLIBCXX_3.4
FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1ERKS2_jjRKS1_@@GLIBCXX_3.4 FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1ERKS2_jjRKS1_@@GLIBCXX_3.4
FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1ESt16initializer_listIwERKS1_@@GLIBCXX_3.4.11 FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1ESt16initializer_listIwERKS1_@@GLIBCXX_3.4.11
...@@ -1342,6 +1344,7 @@ FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2EPKwRKS1_@@GLIBCXX_3.4 ...@@ -1342,6 +1344,7 @@ FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2EPKwRKS1_@@GLIBCXX_3.4
FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2EPKwjRKS1_@@GLIBCXX_3.4 FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2EPKwjRKS1_@@GLIBCXX_3.4
FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2ERKS1_@@GLIBCXX_3.4 FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2ERKS1_@@GLIBCXX_3.4
FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2ERKS2_@@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_jj@@GLIBCXX_3.4
FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2ERKS2_jjRKS1_@@GLIBCXX_3.4 FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2ERKS2_jjRKS1_@@GLIBCXX_3.4
FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2ESt16initializer_listIwERKS1_@@GLIBCXX_3.4.11 FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2ESt16initializer_listIwERKS1_@@GLIBCXX_3.4.11
...@@ -4002,6 +4005,8 @@ OBJECT:0:GLIBCXX_3.4.20 ...@@ -4002,6 +4005,8 @@ OBJECT:0:GLIBCXX_3.4.20
OBJECT:0:GLIBCXX_3.4.21 OBJECT:0:GLIBCXX_3.4.21
OBJECT:0:GLIBCXX_3.4.22 OBJECT:0:GLIBCXX_3.4.22
OBJECT:0:GLIBCXX_3.4.23 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.3
OBJECT:0:GLIBCXX_3.4.4 OBJECT:0:GLIBCXX_3.4.4
OBJECT:0:GLIBCXX_3.4.5 OBJECT:0:GLIBCXX_3.4.5
......
...@@ -444,6 +444,7 @@ FUNC:_ZNKSt13basic_fstreamIwSt11char_traitsIwEE7is_openEv@GLIBCXX_3.4 ...@@ -444,6 +444,7 @@ FUNC:_ZNKSt13basic_fstreamIwSt11char_traitsIwEE7is_openEv@GLIBCXX_3.4
FUNC:_ZNKSt13basic_istreamIwSt11char_traitsIwEE6gcountEv@@GLIBCXX_3.4 FUNC:_ZNKSt13basic_istreamIwSt11char_traitsIwEE6gcountEv@@GLIBCXX_3.4
FUNC:_ZNKSt13basic_istreamIwSt11char_traitsIwEE6sentrycvbEv@@GLIBCXX_3.4 FUNC:_ZNKSt13basic_istreamIwSt11char_traitsIwEE6sentrycvbEv@@GLIBCXX_3.4
FUNC:_ZNKSt13basic_ostreamIwSt11char_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:_ZNKSt13runtime_error4whatEv@@GLIBCXX_3.4
FUNC:_ZNKSt14basic_ifstreamIcSt11char_traitsIcEE5rdbufEv@@GLIBCXX_3.4 FUNC:_ZNKSt14basic_ifstreamIcSt11char_traitsIcEE5rdbufEv@@GLIBCXX_3.4
FUNC:_ZNKSt14basic_ifstreamIcSt11char_traitsIcEE7is_openEv@@GLIBCXX_3.4.5 FUNC:_ZNKSt14basic_ifstreamIcSt11char_traitsIcEE7is_openEv@@GLIBCXX_3.4.5
...@@ -1329,6 +1330,7 @@ FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1EPKwRKS1_@@GLIBCXX_3.4 ...@@ -1329,6 +1330,7 @@ FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1EPKwRKS1_@@GLIBCXX_3.4
FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1EPKwjRKS1_@@GLIBCXX_3.4 FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1EPKwjRKS1_@@GLIBCXX_3.4
FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1ERKS1_@@GLIBCXX_3.4 FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1ERKS1_@@GLIBCXX_3.4
FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1ERKS2_@@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_jj@@GLIBCXX_3.4
FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1ERKS2_jjRKS1_@@GLIBCXX_3.4 FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1ERKS2_jjRKS1_@@GLIBCXX_3.4
FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1ESt16initializer_listIwERKS1_@@GLIBCXX_3.4.11 FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1ESt16initializer_listIwERKS1_@@GLIBCXX_3.4.11
...@@ -1342,6 +1344,7 @@ FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2EPKwRKS1_@@GLIBCXX_3.4 ...@@ -1342,6 +1344,7 @@ FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2EPKwRKS1_@@GLIBCXX_3.4
FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2EPKwjRKS1_@@GLIBCXX_3.4 FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2EPKwjRKS1_@@GLIBCXX_3.4
FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2ERKS1_@@GLIBCXX_3.4 FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2ERKS1_@@GLIBCXX_3.4
FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2ERKS2_@@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_jj@@GLIBCXX_3.4
FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2ERKS2_jjRKS1_@@GLIBCXX_3.4 FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2ERKS2_jjRKS1_@@GLIBCXX_3.4
FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2ESt16initializer_listIwERKS1_@@GLIBCXX_3.4.11 FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2ESt16initializer_listIwERKS1_@@GLIBCXX_3.4.11
...@@ -4002,6 +4005,8 @@ OBJECT:0:GLIBCXX_3.4.20 ...@@ -4002,6 +4005,8 @@ OBJECT:0:GLIBCXX_3.4.20
OBJECT:0:GLIBCXX_3.4.21 OBJECT:0:GLIBCXX_3.4.21
OBJECT:0:GLIBCXX_3.4.22 OBJECT:0:GLIBCXX_3.4.22
OBJECT:0:GLIBCXX_3.4.23 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.3
OBJECT:0:GLIBCXX_3.4.4 OBJECT:0:GLIBCXX_3.4.4
OBJECT:0:GLIBCXX_3.4.5 OBJECT:0:GLIBCXX_3.4.5
......
...@@ -1953,6 +1953,7 @@ GLIBCXX_3.4.23 { ...@@ -1953,6 +1953,7 @@ GLIBCXX_3.4.23 {
# basic_string<C, T, A>::basic_string(const basic_string&, size_type, const A&) # basic_string<C, T, A>::basic_string(const basic_string&, size_type, const A&)
_ZNSt7__cxx1112basic_stringI[cw]St11char_traitsI[cw]ESaI[cw]EEC[12]ERKS4_[jmy]RKS3_; _ZNSt7__cxx1112basic_stringI[cw]St11char_traitsI[cw]ESaI[cw]EEC[12]ERKS4_[jmy]RKS3_;
_ZNSsC[12]ERKSs[jmy]RKSaIcE; _ZNSsC[12]ERKSs[jmy]RKSaIcE;
# This should have been _[jmy]RKS1_ not _mRKS1_ (PR libstdc++/81092):
_ZNSbIwSt11char_traitsIwESaIwEEC[12]ERKS2_mRKS1_; _ZNSbIwSt11char_traitsIwESaIwEEC[12]ERKS2_mRKS1_;
#ifndef HAVE_EXCEPTION_PTR_SINCE_GCC46 #ifndef HAVE_EXCEPTION_PTR_SINCE_GCC46
...@@ -1969,10 +1970,17 @@ GLIBCXX_3.4.23 { ...@@ -1969,10 +1970,17 @@ GLIBCXX_3.4.23 {
GLIBCXX_3.4.24 { 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 # std::random_device::_M_getentropy() const
_ZNKSt13random_device13_M_getentropyEv; _ZNKSt13random_device13_M_getentropyEv;
} GLIBCXX_3.4.23; } GLIBCXX_3.4.24;
# Symbols in the support library (libsupc++) have their own tag. # Symbols in the support library (libsupc++) have their own tag.
CXXABI_1.3 { CXXABI_1.3 {
......
...@@ -504,4 +504,18 @@ ...@@ -504,4 +504,18 @@
</em></span> </em></span>
</span></dt><dd><p>Remove special handling for <code class="code">reference_wrapper</code> </span></dt><dd><p>Remove special handling for <code class="code">reference_wrapper</code>
arguments and store them directly as the target object. arguments and store them directly as the target object.
</p></dd><dt><span class="term"><a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/lwg-defects.html#2802" target="_top">2802</a>:
<span class="emphasis"><em>Add noexcept to several <code class="code">shared_ptr</code> related
functions
</em></span>
</span></dt><dd><p>Add noexcept.
</p></dd><dt><span class="term"><a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/lwg-defects.html#2873" target="_top">2873</a>:
<span class="emphasis"><em><code class="code">shared_ptr</code> constructor requirements for a deleter
</em></span>
</span></dt><dd><p>Use rvalues for deleters.
</p></dd><dt><span class="term"><a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/lwg-defects.html#2942" target="_top">2942</a>:
<span class="emphasis"><em>LWG 2873's resolution missed
<code class="code">weak_ptr::owner_before</code>
</em></span>
</span></dt><dd><p>Add noexcept.
</p></dd></dl></div></div></div><div class="navfooter"><hr /><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="license.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="status.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="setup.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">License </td><td width="20%" align="center"><a accesskey="h" href="../index.html">Home</a></td><td width="40%" align="right" valign="top"> Chapter 2. Setup</td></tr></table></div></body></html> </p></dd></dl></div></div></div><div class="navfooter"><hr /><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="license.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="status.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="setup.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">License </td><td width="20%" align="center"><a accesskey="h" href="../index.html">Home</a></td><td width="40%" align="right" valign="top"> Chapter 2. Setup</td></tr></table></div></body></html>
\ No newline at end of file
...@@ -264,6 +264,10 @@ particular release. ...@@ -264,6 +264,10 @@ particular release.
<code class="classname">u32streampos</code> are both synonyms for <code class="classname">u32streampos</code> are both synonyms for
<code class="classname">fpos&lt;mbstate_t&gt;</code>. <code class="classname">fpos&lt;mbstate_t&gt;</code>.
The function <code class="function">eof</code> returns <code class="code">int_type(-1)</code>. The function <code class="function">eof</code> returns <code class="code">int_type(-1)</code>.
<code class="function">char_traits&lt;char16_t&gt;::to_int_type</code> will
transform the "noncharacter" U+FFFF to U+FFFD (REPLACEMENT CHARACTER).
This is done to ensure that <code class="function">to_int_type</code> never
returns the same value as <code class="function">eof</code>, which is U+FFFF.
</p><p> </p><p>
<span class="emphasis"><em>22.3.1 [locale]</em></span> <span class="emphasis"><em>22.3.1 [locale]</em></span>
There is one global locale for the whole program, not per-thread. There is one global locale for the whole program, not per-thread.
...@@ -684,11 +688,11 @@ Feature-testing recommendations for C++</a>. ...@@ -684,11 +688,11 @@ Feature-testing recommendations for C++</a>.
<a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2016/p0505r0.html" target="_top"> <a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2016/p0505r0.html" target="_top">
P0505R0 P0505R0
</a> </a>
</td><td align="center"> 7 </td><td align="left"><code class="code"> ??? </code></td></tr><tr bgcolor="#B0B0B0"><td align="left"> Constexpr for <code class="code">std::char_traits</code> </td><td align="left"> </td><td align="center"> 7 </td><td align="left"><code class="code"> ??? </code></td></tr><tr><td align="left"> Constexpr for <code class="code">std::char_traits</code> </td><td align="left">
<a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2016/p0426r1.html" target="_top"> <a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2016/p0426r1.html" target="_top">
P0426R1 P0426R1
</a> </a>
</td><td align="center"> 7 (partial) </td><td align="left"><code class="code"> ??? </code></td></tr><tr><td align="left"> Integrating <code class="code">std::string_view</code> and <code class="code">std::string</code> </td><td align="left"> </td><td align="center"> 8 </td><td align="left"><code class="code"> __cpp_lib_constexpr_char_traits &gt;= 201611 </code></td></tr><tr><td align="left"> Integrating <code class="code">std::string_view</code> and <code class="code">std::string</code> </td><td align="left">
<a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2016/p0254r2.pdf" target="_top"> <a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2016/p0254r2.pdf" target="_top">
P0254R2 P0254R2
</a> </a>
......
...@@ -266,7 +266,8 @@ compatible. ...@@ -266,7 +266,8 @@ compatible.
<listitem><para>GCC 5.1.0: libstdc++.so.6.0.21</para></listitem> <listitem><para>GCC 5.1.0: libstdc++.so.6.0.21</para></listitem>
<listitem><para>GCC 6.1.0: libstdc++.so.6.0.22</para></listitem> <listitem><para>GCC 6.1.0: libstdc++.so.6.0.22</para></listitem>
<listitem><para>GCC 7.1.0: libstdc++.so.6.0.23</para></listitem> <listitem><para>GCC 7.1.0: libstdc++.so.6.0.23</para></listitem>
<listitem><para>GCC 8.0.0: libstdc++.so.6.0.24</para></listitem> <listitem><para>GCC 7.2.0: libstdc++.so.6.0.24</para></listitem>
<listitem><para>GCC 8.0.0: libstdc++.so.6.0.25</para></listitem>
</itemizedlist> </itemizedlist>
<para> <para>
Note 1: Error should be libstdc++.so.3.0.3. Note 1: Error should be libstdc++.so.3.0.3.
...@@ -335,7 +336,8 @@ compatible. ...@@ -335,7 +336,8 @@ compatible.
<listitem><para>GCC 5.1.0: GLIBCXX_3.4.21, CXXABI_1.3.9</para></listitem> <listitem><para>GCC 5.1.0: GLIBCXX_3.4.21, CXXABI_1.3.9</para></listitem>
<listitem><para>GCC 6.1.0: GLIBCXX_3.4.22, CXXABI_1.3.10</para></listitem> <listitem><para>GCC 6.1.0: GLIBCXX_3.4.22, CXXABI_1.3.10</para></listitem>
<listitem><para>GCC 7.1.0: GLIBCXX_3.4.23, CXXABI_1.3.11</para></listitem> <listitem><para>GCC 7.1.0: GLIBCXX_3.4.23, CXXABI_1.3.11</para></listitem>
<listitem><para>GCC 8.0.0: GLIBCXX_3.4.24, CXXABI_1.3.11</para></listitem> <listitem><para>GCC 7.2.0: GLIBCXX_3.4.24, CXXABI_1.3.11</para></listitem>
<listitem><para>GCC 8.0.0: GLIBCXX_3.4.25, CXXABI_1.3.11</para></listitem>
</itemizedlist> </itemizedlist>
</listitem> </listitem>
......
...@@ -15,16 +15,31 @@ ...@@ -15,16 +15,31 @@
// with this library; see the file COPYING3. If not see // with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>. // <http://www.gnu.org/licenses/>.
// { dg-options "-O0" }
// { dg-do run { target c++11 } } // { dg-do run { target c++11 } }
#include <string> #include <string>
#include <testsuite_hooks.h> #include <testsuite_hooks.h>
struct TestBaseObjCtor : std::string
{
template<typename... Args>
TestBaseObjCtor(Args&&... args)
: std::string(std::forward<Args>(args)...)
{ }
};
template<typename... Args> template<typename... Args>
std::size_t std::size_t
construct(Args&&... args) construct(Args&&... args)
{ {
return std::string( std::forward<Args>(args)... ).length(); // Use static_cast<Args> 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>(args)... );
std::string as_complete_obj( std::forward<Args>(args)... );
return as_complete_obj.length();
} }
void void
......
...@@ -15,16 +15,31 @@ ...@@ -15,16 +15,31 @@
// with this library; see the file COPYING3. If not see // with this library; see the file COPYING3. If not see
// <http://www.gnu.org/licenses/>. // <http://www.gnu.org/licenses/>.
// { dg-options "-O0" }
// { dg-do run { target c++11 } } // { dg-do run { target c++11 } }
#include <string> #include <string>
#include <testsuite_hooks.h> #include <testsuite_hooks.h>
struct TestBaseObjCtor : std::wstring
{
template<typename... Args>
TestBaseObjCtor(Args&&... args)
: std::wstring(std::forward<Args>(args)...)
{ }
};
template<typename... Args> template<typename... Args>
std::size_t std::size_t
construct(Args&&... args) construct(Args&&... args)
{ {
return std::wstring( std::forward<Args>(args)... ).length(); // Use static_cast<Args> 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>(args)... );
std::wstring as_complete_obj( std::forward<Args>(args)... );
return as_complete_obj.length();
} }
void void
......
...@@ -205,6 +205,7 @@ check_version(symbol& test, bool added) ...@@ -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.22");
known_versions.push_back("GLIBCXX_3.4.23"); known_versions.push_back("GLIBCXX_3.4.23");
known_versions.push_back("GLIBCXX_3.4.24"); 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_1.3");
known_versions.push_back("CXXABI_LDBL_1.3"); known_versions.push_back("CXXABI_LDBL_1.3");
known_versions.push_back("CXXABI_1.3.1"); known_versions.push_back("CXXABI_1.3.1");
...@@ -235,7 +236,7 @@ check_version(symbol& test, bool added) ...@@ -235,7 +236,7 @@ check_version(symbol& test, bool added)
test.version_status = symbol::incompatible; test.version_status = symbol::incompatible;
// Check that added symbols are added in the latest pre-release version. // 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_1.3.11"
|| test.version_name == "CXXABI_FLOAT128" || test.version_name == "CXXABI_FLOAT128"
|| test.version_name == "CXXABI_TM_1"); || test.version_name == "CXXABI_TM_1");
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment