https://gcc.gnu.org/g:6b7e447503d147e22fa7f38395574beae91b3d8c

commit r15-9194-g6b7e447503d147e22fa7f38395574beae91b3d8c
Author: Arsen Arsenović <ar...@aarsen.me>
Date:   Wed Mar 26 12:26:39 2025 +0100

    libstdc++: allow defining version FTMs without standard-named macros
    
    This is useful to provide libstdc++-internal-only macros.
    
    libstdc++-v3/ChangeLog:
    
            * include/bits/version.tpl: Implement no_stdname.
            * include/bits/version.def: Document no_stdname.

Diff:
---
 libstdc++-v3/include/bits/version.def | 4 +++-
 libstdc++-v3/include/bits/version.tpl | 6 ++++--
 2 files changed, 7 insertions(+), 3 deletions(-)

diff --git a/libstdc++-v3/include/bits/version.def 
b/libstdc++-v3/include/bits/version.def
index 1468c0491b71..8569d9fa0add 100644
--- a/libstdc++-v3/include/bits/version.def
+++ b/libstdc++-v3/include/bits/version.def
@@ -30,6 +30,7 @@ AutoGen Definitions version.tpl;
 // ftms = {
 //   name = FTM NAME;
 //   [stdname = FTM STANDARD MACRO NAME;]
+//   [no_stdname = true;]
 //   values = {
 //     v = VALUE FOR FTM IF MATCHING;
 //     [extra_cond = STRING;]
@@ -56,7 +57,8 @@ AutoGen Definitions version.tpl;
 
 // stdname configures the name of the *standard* macro emitted, i.e. it
 // replaces only the __cpp_lib_ macro in the emitted definition.  Defaults to
-// __cpp_lib_${name}
+// __cpp_lib_${name}.  If no_stdname exists (with any value), the stdname
+// define is not emitted.
 
 // N.B This list needs to be in topological sort order, as later entries in
 // this list can and do use the earlier entries.
diff --git a/libstdc++-v3/include/bits/version.tpl 
b/libstdc++-v3/include/bits/version.tpl
index dd5f8518da14..ccda71d6bcfe 100644
--- a/libstdc++-v3/include/bits/version.tpl
+++ b/libstdc++-v3/include/bits/version.tpl
@@ -143,13 +143,15 @@ h
 
 }*/# /*{(unless (first-for?) "el")}*/if /*{(generate-cond)}*/
 #  define __glibcxx_/*{name}*/ /*{v}*/L
-#  if defined(__glibcxx_want_all) || defined(__glibcxx_want_/*{name}*/)
+#  if defined(__glibcxx_want_all) || defined(__glibcxx_want_/*{name}*/)/*{
+ IF (not (exist? "no_stdname")) }*/
 #   define /*{
 ;; Compute the name for this FTM based on stdname/name.
 (if (exist? "stdname")
     (get "stdname")
     (format #f "__cpp_lib_~a" (get "name")))
-}*/ /*{v}*/L
+}*/ /*{v}*/L/*{
+ ENDIF no_std_name }*/
 #  endif
 /*{ ENDFOR values
   }*/# endif

Reply via email to