On Mon, 22 Dec 2025 at 11:06, Tomasz Kamiński <[email protected]> wrote:
>
> The _GLIBCXX_USE_OLD_GENERATE_CANONICAL was introduced by
> r16-6177-g866bc8a9214b1d that implemented P0952R2 [1] resolution
> for LWG2524 as DR against C++20.
>
> The _GLIBCXX_USE_VARIANT_CXX17_OLD_ABI was introduced by
> r16-6301-gb3c167b61fd75f that resovled PR112591.
>
> [1] https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2023/p0952r2.html
>
> libstdc++-v3/ChangeLog:
>
>         * doc/html/manual/using_macros.html: Regenerate.
>         * doc/xml/manual/using.xml: Add entries for
>         _GLIBCXX_USE_OLD_GENERATE_CANONICAL and
>         _GLIBCXX_USE_VARIANT_CXX17_OLD_ABI.
> ---
> OK for trunk?
>
>  .../doc/html/manual/using_macros.html         | 12 +++++++++++
>  libstdc++-v3/doc/xml/manual/using.xml         | 20 +++++++++++++++++++
>  2 files changed, 32 insertions(+)
>
> diff --git a/libstdc++-v3/doc/html/manual/using_macros.html 
> b/libstdc++-v3/doc/html/manual/using_macros.html
> index c1406ec76f7..08649c1dfaa 100644
> --- a/libstdc++-v3/doc/html/manual/using_macros.html
> +++ b/libstdc++-v3/doc/html/manual/using_macros.html
> @@ -137,4 +137,16 @@
>         When not defined, durations, time points, and calendar types are
>         available for freestanding, but the standard clocks and the time zone
>         database are not (because they require OS support).
> +      </p></dd><dt><span class="term"><code 
> class="code">_GLIBCXX_USE_OLD_GENERATE_CANONICAL</code></span></dt><dd><p>
> +       Undefined by default. When defined <code 
> class="code">generate_canonical</code>
> +       reverts to algorithm used by before implementation of
> +       <a class="link" 
> href="https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2023/p0952r2.html"; 
> target="_top">P0952
> +       A new specification for std::generate_canonical</a> in GCC-16.
> +      </p></dd><dt><span class="term"><code 
> class="code">_GLIBCXX_USE_VARIANT_CXX17_OLD_ABI</code></span></dt><dd><p>
> +       Undefined by default. When defined <code class="code">variant</code> 
> in C++17
> +       mode will revert to non-conforming implementation used prior
> +       resolution of
> +       <a class="link" 
> href="https://gcc.gnu.org/bugzilla/show_bug.cgi?id=112591"; 
> target="_top">PR112591</a>
> +       in GCC-16.
> +       Has no impact for C++20 or later modes.
>        </p></dd></dl></div></div><div class="navfooter"><hr /><table 
> width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a 
> accesskey="p" href="using_headers.html">Prev</a> </td><td width="20%" 
> align="center"><a accesskey="u" href="using.html">Up</a></td><td width="40%" 
> align="right"> <a accesskey="n" 
> href="using_dual_abi.html">Next</a></td></tr><tr><td width="40%" align="left" 
> valign="top">Headers </td><td width="20%" align="center"><a accesskey="h" 
> href="../index.html">Home</a></td><td width="40%" align="right" valign="top"> 
> Dual ABI</td></tr></table></div></body></html>
> \ No newline at end of file
> diff --git a/libstdc++-v3/doc/xml/manual/using.xml 
> b/libstdc++-v3/doc/xml/manual/using.xml
> index bec5419d587..0a9f9f6e46c 100644
> --- a/libstdc++-v3/doc/xml/manual/using.xml
> +++ b/libstdc++-v3/doc/xml/manual/using.xml
> @@ -1343,6 +1343,26 @@ g++ -Winvalid-pch -I. -include stdc++.h -H -g -O2 
> hello.cc -o test.exe
>         database are not (because they require OS support).
>        </para>
>      </listitem></varlistentry>
> +    
> <varlistentry><term><code>_GLIBCXX_USE_OLD_GENERATE_CANONICAL</code></term>
> +    <listitem>
> +      <para>
> +       Undefined by default. When defined <code>generate_canonical</code>
> +       reverts to algorithm used by before implementation of

"reverts to the algorithm used prior to the implementation of"

> +       <link xmlns:xlink="http://www.w3.org/1999/xlink"; 
> xlink:href="https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2023/p0952r2.html";>P0952
> +       A new specification for std::generate_canonical</link> in GCC-16.
> +      </para>
> +    </listitem></varlistentry>
> +    
> <varlistentry><term><code>_GLIBCXX_USE_VARIANT_CXX17_OLD_ABI</code></term>
> +    <listitem>
> +      <para>
> +       Undefined by default. When defined <code>variant</code> in C++17
> +       mode will revert to non-conforming implementation used prior

"mode will revert to the non-conforming implementation used prior to the"

OK with those two changes (and don't forget to regenerate the HTML).
Thanks for updating the docs with this.

> +       resolution of
> +       <link xmlns:xlink="http://www.w3.org/1999/xlink"; 
> xlink:href="https://gcc.gnu.org/bugzilla/show_bug.cgi?id=112591";>PR112591</link>
> +       in GCC-16.
> +       Has no impact for C++20 or later modes.
> +      </para>
> +    </listitem></varlistentry>
>      </variablelist>
>
>    </section>
> --
> 2.52.0
>

Reply via email to