https://gcc.gnu.org/g:128f1602a043d71dc107c12abbf15cda74f91516
commit r13-9878-g128f1602a043d71dc107c12abbf15cda74f91516 Author: Tomasz Kamiński <tkami...@redhat.com> Date: Fri Sep 5 16:08:12 2025 +0200 libstdc++: Document remaining C++17 implementation-defined behavior. This also covers bad_function_call::what from C++11. libstdc++-v3/ChangeLog: * doc/html/manual/status.html: Regenerate. * doc/xml/manual/status_cxx2011.xml: Add entry for bad_function_call. * doc/xml/manual/status_cxx2017.xml: Add entries for bad_any_cast and nullptr_t output. Update entry for sf.cmath. Fix stable name for mem.res. Reviewed-by: Jonathan Wakely <jwak...@redhat.com> Signed-off-by: Tomasz Kamiński <tkami...@redhat.com> (cherry picked from commit 39d7c4d42a764a86644198a517f58a94f467cdbd) Diff: --- libstdc++-v3/doc/html/manual/status.html | 18 ++++++++++++++---- libstdc++-v3/doc/xml/manual/status_cxx2011.xml | 5 +++++ libstdc++-v3/doc/xml/manual/status_cxx2017.xml | 19 +++++++++++++++---- 3 files changed, 34 insertions(+), 8 deletions(-) diff --git a/libstdc++-v3/doc/html/manual/status.html b/libstdc++-v3/doc/html/manual/status.html index c337fb5d15fa..078fc9fe12b2 100644 --- a/libstdc++-v3/doc/html/manual/status.html +++ b/libstdc++-v3/doc/html/manual/status.html @@ -254,6 +254,9 @@ the GCC 13 release series. </p><p> <span class="emphasis"><em>20.7.2.0 [util.smartptr.weakptr]</em></span> <code class="code">what()</code> returns <code class="literal">"bad_weak_ptr"</code>. + </p><p> + <span class="emphasis"><em>20.8.11.1 [func.wrap.badcall]</em></span> + <code class="code">what()</code> returns <code class="literal">"bad_function_call"</code>. </p><p> <span class="emphasis"><em>20.8.9.1.3 [func.bind.place]/1</em></span> There are 29 placeholders defined and the placeholder types are @@ -1054,7 +1057,11 @@ since C++14 and the implementation is complete. <code class="literal">"std::visit: variant is valueless"</code>, or <code class="literal">"std::visit<R>: variant is valueless"</code>. </p><p> - <span class="emphasis"><em>23.12.5.2 [memory.resource.pool.options]</em></span> + <span class="emphasis"><em>23.8.2 [any.bad_any_cast]</em></span> + <code class="code">what()</code> returns <code class="literal">"bad any_cast"</code>. + </p><p> + <span class="emphasis"><em>23.12.5 [mem.res.pool.options]</em></span>, + <span class="emphasis"><em>23.12.5 [mem.res.pool.mem]</em></span> Let S equal <code class="code">numeric_limits<size_t>::digits</code>. The limit for maximum number of blocks in a chunk is given by <span class="mathphrase">2<sup>N</sup>-1</span>, @@ -1065,7 +1072,7 @@ since C++14 and the implementation is complete. otherwise 3072 when <span class="mathphrase">S > 16</span>, otherwise 768. </p><p> - <span class="emphasis"><em>23.12.6.1 [memory.resource.monotonic.buffer.ctor]</em></span> + <span class="emphasis"><em>23.12.6.1 [mem.res.monotonic.buffer.ctor]</em></span> The default <code class="code">next_buffer_size</code> is <code class="code">128 * sizeof(void*)</code>. The default growth factor is <code class="code">1.5</code>. </p><p> @@ -1100,8 +1107,11 @@ since C++14 and the implementation is complete. races depends on the target C library that provides the function. </p><p> <span class="emphasis"><em>29.9.5 [sf.cmath]</em></span> - The effect of calling the mathematical special functions with large - inputs should be documented here. + Calling the mathematical special functions with large inputs is supported + but the results may be imprecise. + </p><p> + <span class="emphasis"><em>30.7.5.2.3 [ostream.inserters]</em></span> + NTCTS for <code class="code">nullptr_t</code> is <code class="literal">"nullptr"</code>. </p><p> <span class="emphasis"><em>30.10.2.1 [fs.conform.9945]</em></span>, <span class="emphasis"><em>30.10.2.2 [fs.conform.os]</em></span> diff --git a/libstdc++-v3/doc/xml/manual/status_cxx2011.xml b/libstdc++-v3/doc/xml/manual/status_cxx2011.xml index 334f8440743f..869327d35b84 100644 --- a/libstdc++-v3/doc/xml/manual/status_cxx2011.xml +++ b/libstdc++-v3/doc/xml/manual/status_cxx2011.xml @@ -2613,6 +2613,11 @@ the GCC 13 release series. <code>what()</code> returns <literal>"bad_weak_ptr"</literal>. </para> + <para> + <emphasis>20.8.11.1 [func.wrap.badcall]</emphasis> + <code>what()</code> returns <literal>"bad_function_call"</literal>. + </para> + <para> <emphasis>20.8.9.1.3 [func.bind.place]/1</emphasis> There are 29 placeholders defined and the placeholder types are diff --git a/libstdc++-v3/doc/xml/manual/status_cxx2017.xml b/libstdc++-v3/doc/xml/manual/status_cxx2017.xml index f2de117f9e15..43ccef253785 100644 --- a/libstdc++-v3/doc/xml/manual/status_cxx2017.xml +++ b/libstdc++-v3/doc/xml/manual/status_cxx2017.xml @@ -2918,7 +2918,13 @@ since C++14 and the implementation is complete. </para> <para> - <emphasis>23.12.5.2 [memory.resource.pool.options]</emphasis> + <emphasis>23.8.2 [any.bad_any_cast]</emphasis> + <code>what()</code> returns <literal>"bad any_cast"</literal>. + </para> + + <para> + <emphasis>23.12.5 [mem.res.pool.options]</emphasis>, + <emphasis>23.12.5 [mem.res.pool.mem]</emphasis> Let S equal <code>numeric_limits<size_t>::digits</code>. The limit for maximum number of blocks in a chunk is given by <inlineequation><mathphrase>2<superscript>N</superscript>-1</mathphrase></inlineequation>, @@ -2931,7 +2937,7 @@ since C++14 and the implementation is complete. </para> <para> - <emphasis>23.12.6.1 [memory.resource.monotonic.buffer.ctor]</emphasis> + <emphasis>23.12.6.1 [mem.res.monotonic.buffer.ctor]</emphasis> The default <code>next_buffer_size</code> is <code>128 * sizeof(void*)</code>. The default growth factor is <code>1.5</code>. </para> @@ -2981,8 +2987,13 @@ since C++14 and the implementation is complete. <para> <emphasis>29.9.5 [sf.cmath]</emphasis> - The effect of calling the mathematical special functions with large - inputs should be documented here. + Calling the mathematical special functions with large inputs is supported + but the results may be imprecise. + </para> + + <para> + <emphasis>30.7.5.2.3 [ostream.inserters]</emphasis> + NTCTS for <code>nullptr_t</code> is <literal>"nullptr"</literal>. </para> <para>