I have double checked that implementation-defined behavior in the [compliance] (whether the implementation is freestanding) and [stringbuf.const] (initialization of sequence pointers) are indeed null, and there are no corresponding entires in earlier standards.
libstdc++-v3/ChangeLog: * doc/html/manual/status.html: Regenerate. * doc/xml/manual/status_cxx2020.xml: Add more entires. Reviewed-by: Jonathan Wakely <jwak...@redhat.com> Signed-off-by: Tomasz Kamiński <tkami...@redhat.com> --- v2 applies changes from the review. Pushed to trunk. libstdc++-v3/doc/html/manual/status.html | 21 ++++++++++++++ .../doc/xml/manual/status_cxx2020.xml | 29 +++++++++++++++++++ 2 files changed, 50 insertions(+) diff --git a/libstdc++-v3/doc/html/manual/status.html b/libstdc++-v3/doc/html/manual/status.html index 208025edaa3..164faebbf37 100644 --- a/libstdc++-v3/doc/html/manual/status.html +++ b/libstdc++-v3/doc/html/manual/status.html @@ -1766,12 +1766,27 @@ and <code class="function">chrono::parse</code> is supported since 14.1. <a class="link" href="status.html#iso.2017.specific" title="Implementation Specific Behavior">C++ 2017 Implementation Specific Behavior</a>. This section only documents behaviour which is new in the 2020 standard. + </p><p> + <span class="emphasis"><em>16.4.2.4 [compliance]</em></span> The implementation is + freestanding if the <code class="code">-ffreestanding</code> compiler flag is used, + and hosted otherwise. </p><p> <span class="emphasis"><em>16.4.2.4 [compliance]</em></span> The support for always lock-free integral atomic types and presence of <code class="code">atomic_signed_lock_free</code> and <code class="code">atomic_unsigned_lock_free</code> type aliases depends on the target. + </p><p> + <span class="emphasis"><em>27.5.11 [time.duration.io]</em></span> + The <code class="literal">"μs"</code> (<code class="literal">"\u00b5\u0073"</code>) is used + for <code class="code">std::micro</code> <code class="code">Period::type</code> if the macro + <code class="code">_GLIBCXX_USE_ALT_MICROSECONDS_SUFFIX</code> is defined to a value + other than zero before inclusion of the <code class="code">chrono</code> header, + <code class="literal">"us"</code> is used otherwise. + </p><p> + <span class="emphasis"><em>29.8.2.2 [stringbuf.cons]</em></span> Sequence pointers are + initialized to null pointers by the + <code class="code">basic_stringbuf(ios_base::openmode)</code> constructor. </p><p> <span class="emphasis"><em>31.7.1 [atomics.ref.generic.general]</em></span>, <span class="emphasis"><em>31.7.3 [atomics.ref.int]</em></span>, @@ -1796,6 +1811,12 @@ and <code class="function">chrono::parse</code> is supported since 14.1. <span class="emphasis"><em>31.7.5 [atomics.ref.pointer]</em></span> The value of <code class="code">required_alignment</code> member is equal to <code class="code">alignof(value_type)</code>. + </p><p> + <span class="emphasis"><em>32.7.3 [thread.sema.cnt]</em></span> The value of default + argument for the <code class="code">least_max_value</code> parameter depends on the + target operating system and platform, however the value of + <code class="code">counting_semaphore<>::max()</code> is greater than or equal + to <code class="code">numeric_limits<int>::max()</code>. </p></div></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="status.iso.2023"></a>C++ 2023</h3></div></div></div><p> In this implementation the <code class="literal">-std=gnu++23</code> or <code class="literal">-std=c++23</code> flag must be used to enable language diff --git a/libstdc++-v3/doc/xml/manual/status_cxx2020.xml b/libstdc++-v3/doc/xml/manual/status_cxx2020.xml index dca4caac91e..9cee44fd438 100644 --- a/libstdc++-v3/doc/xml/manual/status_cxx2020.xml +++ b/libstdc++-v3/doc/xml/manual/status_cxx2020.xml @@ -1464,6 +1464,12 @@ and <function>chrono::parse</function> is supported since 14.1. the 2020 standard. </para> + <para> + <emphasis>16.4.2.4 [compliance]</emphasis> The implementation is + freestanding if the <code>-ffreestanding</code> compiler flag is used, + and hosted otherwise. + </para> + <para> <emphasis>16.4.2.4 [compliance]</emphasis> The support for always lock-free integral atomic types and presence of @@ -1472,6 +1478,21 @@ and <function>chrono::parse</function> is supported since 14.1. target. </para> + <para> + <emphasis>27.5.11 [time.duration.io]</emphasis> + The <literal>"μs"</literal> (<literal>"\u00b5\u0073"</literal>) is used + for <code>std::micro</code> <code>Period::type</code> if the macro + <code>_GLIBCXX_USE_ALT_MICROSECONDS_SUFFIX</code> is defined to a value + other than zero before inclusion of the <code>chrono</code> header, + <literal>"us"</literal> is used otherwise. + </para> + + <para> + <emphasis>29.8.2.2 [stringbuf.cons]</emphasis> Sequence pointers are + initialized to null pointers by the + <code>basic_stringbuf(ios_base::openmode)</code> constructor. + </para> + <para> <emphasis>31.7.1 [atomics.ref.generic.general]</emphasis>, <emphasis>31.7.3 [atomics.ref.int]</emphasis>, @@ -1504,6 +1525,14 @@ and <function>chrono::parse</function> is supported since 14.1. <code>alignof(value_type)</code>. </para> + <para> + <emphasis>32.7.3 [thread.sema.cnt]</emphasis> The value of default + argument for the <code>least_max_value</code> parameter depends on the + target operating system and platform, however the value of + <code>counting_semaphore<>::max()</code> is greater than or equal + to <code>numeric_limits<int>::max()</code>. + </para> + </section> </section> -- 2.51.0