]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
libstdc++: allow defining version FTMs without standard-named macros
authorArsen Arsenović <arsen@aarsen.me>
Wed, 26 Mar 2025 11:26:39 +0000 (12:26 +0100)
committerJonathan Wakely <redi@gcc.gnu.org>
Fri, 4 Apr 2025 08:58:54 +0000 (09:58 +0100)
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.

libstdc++-v3/include/bits/version.def
libstdc++-v3/include/bits/version.tpl

index 1468c0491b71c4da5a4536324bd734256e817b65..8569d9fa0added188f2db42b1db40db64a91d121 100644 (file)
@@ -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.
index dd5f8518da14bd9a947fdb9350829ad8e8e36449..ccda71d6bcfe53fe1a5ce905ca8d161c625aa851 100644 (file)
@@ -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