On Mon, 08 Sep 2025 at 11:29 +0200, Tomasz Kamiński wrote:
Also introduce Implementation Specific Behavior section for C++20.

libstdc++-v3/ChangeLog:

        * doc/html/index.html: Regenerated.
        * doc/html/manual/index.html: Regenerated.
        * doc/html/manual/intro.html: Regenerated.
        * doc/html/manual/status.html: Regenatered.
        * doc/xml/manual/status_cxx2020.xml: Add iso.2020.specific
        section with atomic_ref documentation.

OK for trunk, should I backport it to 13/14/15 like previous changes?

OK for trunk with some typos fixed (see below), no need to backport it
though.

diff --git a/libstdc++-v3/doc/xml/manual/status_cxx2020.xml 
b/libstdc++-v3/doc/xml/manual/status_cxx2020.xml
index 0e3e4c3de7f..c41096103bc 100644
--- a/libstdc++-v3/doc/xml/manual/status_cxx2020.xml
+++ b/libstdc++-v3/doc/xml/manual/status_cxx2020.xml
@@ -1453,4 +1453,56 @@ time zones and UTC are supported since 13.1,
and <function>chrono::parse</function> is supported since 14.1.
</para>

+<section xml:id="iso.2020.specific" xreflabel="Implementation 
Specific"><info><title>Implementation Specific Behavior</title></info>
+
+   <para>For behaviour which is also specified by previous standards,
+      see <link linkend="iso.1998.specific">C++ 1998/2003 Implementation
+      Specific Behavior</link>, <link linkend="iso.2011.specific">C++
+      2011 Implementation Specific Behavior</link>, and
+      <link linkend="iso.2017.specific">C++ 2017 Implementation Specific
+      Behavior</link>. This section only documents behaviour which is new in
+      the 2020 standard.
+   </para>
+
+   <para>
+      <emphasis>16.4.2.4 [compliance]</emphasis>
+      The support for always lock-free integral atomic types and presence of
+      <code>atomic_signed_lock_free</code> and
+      <code>atomic_unsigned_lock_free</code> type aliases depends on the
+      target.
+   </para>
+
+   <para>
+      <emphasis>31.7.1 [atomics.ref.generic.general]</emphasis>,
+      <emphasis>31.7.3 [atomics.ref.int]</emphasis>,
+      <emphasis>31.7.4 [atomics.ref.float]</emphasis>,
+      <emphasis>31.7.5 [atomics.ref.pointer]</emphasis>
+      The values of <code>is_always_lock_free</code> members, depend on the

No need for a comma after "members"

+      target and cannot be listed here.
+   </para>
+
+   <para>
+      <emphasis>31.7.1 [atomics.ref.generic.general]</emphasis>
+      If <code>sizeof(T)</code> is equal to either <code>1</code>,
+      <code>2</code>, <code>4</code>, <code>8</code>, or <code>16</code>,
+      then the value of <code>required_alignment</code> member is equal to
+      maximum of <code>alignof(T)</code> and <code>sizeof(T)</code>.

"the maximum of"

+      Otherwise <code>required_alignment</code> value is 
<code>alignof(T)</code>.
+   </para>
+
+   <para>
+      <emphasis>31.7.3 [atomics.ref.int]</emphasis>
+      The value of <code>required_alignment</code> member is equal to maximum

"the maximum of"

+      of <code>alignof(value_type)</code> and <code>sizeof(value_type)</code>.
+   </para>
+
+   <para>
+      <emphasis>31.7.4 [atomics.ref.float]</emphasis>,
+      <emphasis>31.7.5 [atomics.ref.pointer]</emphasis>
+      The value of <code>required_alignment</code> member is equal to
+      <code>alignof(value_type)</code>.
+   </para>

Reply via email to