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 <jwakely@redhat.com>
Signed-off-by: Tomasz Kamiński <tkaminsk@redhat.com>
(cherry picked from commit 39d7c4d42a)
This commit is contained in:
Tomasz Kamiński 2025-09-05 16:08:12 +02:00
parent 9e1e285549
commit 128f1602a0
3 changed files with 34 additions and 8 deletions

View File

@ -254,6 +254,9 @@ the GCC 13 release series.
</p><p> </p><p>
<span class="emphasis"><em>20.7.2.0 [util.smartptr.weakptr]</em></span> <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>. <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> </p><p>
<span class="emphasis"><em>20.8.9.1.3 [func.bind.place]/1</em></span> There are 29 <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 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>, <code class="literal">"std::visit: variant is valueless"</code>,
or <code class="literal">"std::visit&lt;R&gt;: variant is valueless"</code>. or <code class="literal">"std::visit&lt;R&gt;: variant is valueless"</code>.
</p><p> </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&lt;size_t&gt;::digits</code>. Let S equal <code class="code">numeric_limits&lt;size_t&gt;::digits</code>.
The limit for maximum number of blocks in a chunk is given by The limit for maximum number of blocks in a chunk is given by
<span class="mathphrase">2<sup>N</sup>-1</span>, <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 &gt; 16</span>, otherwise 3072 when <span class="mathphrase">S &gt; 16</span>,
otherwise 768. otherwise 768.
</p><p> </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 <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>. The default growth factor is <code class="code">1.5</code>.
</p><p> </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. races depends on the target C library that provides the function.
</p><p> </p><p>
<span class="emphasis"><em>29.9.5 [sf.cmath]</em></span> <span class="emphasis"><em>29.9.5 [sf.cmath]</em></span>
The effect of calling the mathematical special functions with large Calling the mathematical special functions with large inputs is supported
inputs should be documented here. 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> </p><p>
<span class="emphasis"><em>30.10.2.1 [fs.conform.9945]</em></span>, <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> <span class="emphasis"><em>30.10.2.2 [fs.conform.os]</em></span>

View File

@ -2613,6 +2613,11 @@ the GCC 13 release series.
<code>what()</code> returns <literal>"bad_weak_ptr"</literal>. <code>what()</code> returns <literal>"bad_weak_ptr"</literal>.
</para> </para>
<para>
<emphasis>20.8.11.1 [func.wrap.badcall]</emphasis>
<code>what()</code> returns <literal>"bad_function_call"</literal>.
</para>
<para> <para>
<emphasis>20.8.9.1.3 [func.bind.place]/1</emphasis> There are 29 <emphasis>20.8.9.1.3 [func.bind.place]/1</emphasis> There are 29
placeholders defined and the placeholder types are placeholders defined and the placeholder types are

View File

@ -2918,7 +2918,13 @@ since C++14 and the implementation is complete.
</para> </para>
<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&lt;size_t&gt;::digits</code>. Let S equal <code>numeric_limits&lt;size_t&gt;::digits</code>.
The limit for maximum number of blocks in a chunk is given by The limit for maximum number of blocks in a chunk is given by
<inlineequation><mathphrase>2<superscript>N</superscript>-1</mathphrase></inlineequation>, <inlineequation><mathphrase>2<superscript>N</superscript>-1</mathphrase></inlineequation>,
@ -2931,7 +2937,7 @@ since C++14 and the implementation is complete.
</para> </para>
<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 <code>next_buffer_size</code> is <code>128 * sizeof(void*)</code>.
The default growth factor is <code>1.5</code>. The default growth factor is <code>1.5</code>.
</para> </para>
@ -2981,8 +2987,13 @@ since C++14 and the implementation is complete.
<para> <para>
<emphasis>29.9.5 [sf.cmath]</emphasis> <emphasis>29.9.5 [sf.cmath]</emphasis>
The effect of calling the mathematical special functions with large Calling the mathematical special functions with large inputs is supported
inputs should be documented here. 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>
<para> <para>