From 128f1602a043d71dc107c12abbf15cda74f91516 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tomasz=20Kami=C5=84ski?= Date: Fri, 5 Sep 2025 16:08:12 +0200 Subject: [PATCH] libstdc++: Document remaining C++17 implementation-defined behavior. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 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 Signed-off-by: Tomasz KamiƄski (cherry picked from commit 39d7c4d42a764a86644198a517f58a94f467cdbd) --- libstdc++-v3/doc/html/manual/status.html | 18 ++++++++++++++---- .../doc/xml/manual/status_cxx2011.xml | 5 +++++ .../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.

20.7.2.0 [util.smartptr.weakptr] what() returns "bad_weak_ptr". +

+ 20.8.11.1 [func.wrap.badcall] + what() returns "bad_function_call".

20.8.9.1.3 [func.bind.place]/1 There are 29 placeholders defined and the placeholder types are @@ -1054,7 +1057,11 @@ since C++14 and the implementation is complete. "std::visit: variant is valueless", or "std::visit<R>: variant is valueless".

- 23.12.5.2 [memory.resource.pool.options] + 23.8.2 [any.bad_any_cast] + what() returns "bad any_cast". +

+ 23.12.5 [mem.res.pool.options], + 23.12.5 [mem.res.pool.mem] Let S equal numeric_limits<size_t>::digits. The limit for maximum number of blocks in a chunk is given by 2N-1, @@ -1065,7 +1072,7 @@ since C++14 and the implementation is complete. otherwise 3072 when S > 16, otherwise 768.

- 23.12.6.1 [memory.resource.monotonic.buffer.ctor] + 23.12.6.1 [mem.res.monotonic.buffer.ctor] The default next_buffer_size is 128 * sizeof(void*). The default growth factor is 1.5.

@@ -1100,8 +1107,11 @@ since C++14 and the implementation is complete. races depends on the target C library that provides the function.

29.9.5 [sf.cmath] - 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. +

+ 30.7.5.2.3 [ostream.inserters] + NTCTS for nullptr_t is "nullptr".

30.10.2.1 [fs.conform.9945], 30.10.2.2 [fs.conform.os] 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. what() returns "bad_weak_ptr". + + 20.8.11.1 [func.wrap.badcall] + what() returns "bad_function_call". + + 20.8.9.1.3 [func.bind.place]/1 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. - 23.12.5.2 [memory.resource.pool.options] + 23.8.2 [any.bad_any_cast] + what() returns "bad any_cast". + + + + 23.12.5 [mem.res.pool.options], + 23.12.5 [mem.res.pool.mem] Let S equal numeric_limits<size_t>::digits. The limit for maximum number of blocks in a chunk is given by 2N-1, @@ -2931,7 +2937,7 @@ since C++14 and the implementation is complete. - 23.12.6.1 [memory.resource.monotonic.buffer.ctor] + 23.12.6.1 [mem.res.monotonic.buffer.ctor] The default next_buffer_size is 128 * sizeof(void*). The default growth factor is 1.5. @@ -2981,8 +2987,13 @@ since C++14 and the implementation is complete. 29.9.5 [sf.cmath] - 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. + + + + 30.7.5.2.3 [ostream.inserters] + NTCTS for nullptr_t is "nullptr".