[glibc] conform: Add initial support for C23.

Joseph Myers jsm28@sourceware.org
Thu Apr 10 18:40:12 GMT 2025


https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=d18213c6997a058a68bc2547dcb43cf77bc4504f

commit d18213c6997a058a68bc2547dcb43cf77bc4504f
Author: Collin Funk <collin.funk1@gmail.com>
Date:   Fri Apr 4 20:48:25 2025 -0700

    conform: Add initial support for C23.
    
    Hi Joseph,
    
    As we discussed, this patch just makes C23 include every check that is
    performed by C11.
    
    I tested the commit by adding the ISO23 Make and Python variables to be
    the same as ISO11.  So the only difference was compiling with -DISO23
    instead of -DISO11.  And changed the temporary directories to instead
    use the format f'/tmp/glibc-{self.standard}-{self.header}'.  Then I used
    a shell script to run 'cmp' on each file in the ISO11 and ISO23
    directories for each header to make sure they were the same.
    
    -- 8< --
    
    Make C23 checks include every test that is performed by C11.  Done by
    running the following command:
    
    find conform -name '*.h-data' | xargs sed -i \
      -e 's| !defined ISO11| !defined ISO11 \&\& !defined ISO23|g' \
      -e 's| defined ISO11| defined ISO11 \|\| defined ISO23|g' \
      -e 's|ifdef ISO11|if defined ISO11 \|\| defined ISO23|g' \
      -e 's|ifndef ISO11|if !defined ISO11 \&\& !defined ISO23|g'
    
    Signed-off-by: Collin Funk <collin.funk1@gmail.com>

Diff:
---
 conform/data/aio.h-data          |  2 +-
 conform/data/arpa/inet.h-data    |  2 +-
 conform/data/assert.h-data       |  4 +--
 conform/data/complex.h-data      |  2 +-
 conform/data/cpio.h-data         |  2 +-
 conform/data/ctype.h-data        |  4 +--
 conform/data/dirent.h-data       |  2 +-
 conform/data/dlfcn.h-data        |  2 +-
 conform/data/errno.h-data        |  2 +-
 conform/data/fcntl.h-data        |  2 +-
 conform/data/fenv.h-data         |  2 +-
 conform/data/float.h-data        |  4 +--
 conform/data/fmtmsg.h-data       |  2 +-
 conform/data/fnmatch.h-data      |  2 +-
 conform/data/ftw.h-data          |  2 +-
 conform/data/glob.h-data         |  2 +-
 conform/data/grp.h-data          |  2 +-
 conform/data/iconv.h-data        |  2 +-
 conform/data/iso646.h-data       |  2 +-
 conform/data/langinfo.h-data     |  2 +-
 conform/data/libgen.h-data       |  2 +-
 conform/data/limits.h-data       |  4 +--
 conform/data/locale.h-data       |  4 +--
 conform/data/math.h-data         | 10 +++----
 conform/data/monetary.h-data     |  2 +-
 conform/data/mqueue.h-data       |  2 +-
 conform/data/ndbm.h-data         |  2 +-
 conform/data/net/if.h-data       |  2 +-
 conform/data/netdb.h-data        |  2 +-
 conform/data/netinet/in.h-data   |  2 +-
 conform/data/nl_types.h-data     |  2 +-
 conform/data/poll.h-data         |  2 +-
 conform/data/pthread.h-data      |  2 +-
 conform/data/pwd.h-data          |  2 +-
 conform/data/regex.h-data        |  2 +-
 conform/data/sched.h-data        |  2 +-
 conform/data/search.h-data       |  2 +-
 conform/data/semaphore.h-data    |  2 +-
 conform/data/setjmp.h-data       |  8 +++---
 conform/data/signal.h-data       |  8 +++---
 conform/data/spawn.h-data        |  2 +-
 conform/data/stdalign.h-data     |  2 +-
 conform/data/stdarg.h-data       |  4 +--
 conform/data/stdbool.h-data      |  2 +-
 conform/data/stddef.h-data       |  4 +--
 conform/data/stdio.h-data        | 20 +++++++-------
 conform/data/stdlib.h-data       | 60 ++++++++++++++++++++--------------------
 conform/data/stdnoreturn.h-data  |  2 +-
 conform/data/string.h-data       |  8 +++---
 conform/data/strings.h-data      |  2 +-
 conform/data/sys/ipc.h-data      |  2 +-
 conform/data/sys/mman.h-data     |  2 +-
 conform/data/sys/msg.h-data      |  2 +-
 conform/data/sys/resource.h-data |  2 +-
 conform/data/sys/select.h-data   |  2 +-
 conform/data/sys/sem.h-data      |  2 +-
 conform/data/sys/shm.h-data      |  2 +-
 conform/data/sys/socket.h-data   |  2 +-
 conform/data/sys/stat.h-data     |  2 +-
 conform/data/sys/statvfs.h-data  |  2 +-
 conform/data/sys/time.h-data     |  2 +-
 conform/data/sys/timeb.h-data    |  2 +-
 conform/data/sys/times.h-data    |  2 +-
 conform/data/sys/types.h-data    |  2 +-
 conform/data/sys/uio.h-data      |  2 +-
 conform/data/sys/un.h-data       |  2 +-
 conform/data/sys/utsname.h-data  |  2 +-
 conform/data/sys/wait.h-data     |  2 +-
 conform/data/syslog.h-data       |  2 +-
 conform/data/tar.h-data          |  2 +-
 conform/data/termios.h-data      |  2 +-
 conform/data/threads.h-data      |  2 +-
 conform/data/time.h-data         |  6 ++--
 conform/data/uchar.h-data        |  2 +-
 conform/data/ucontext.h-data     |  2 +-
 conform/data/ulimit.h-data       |  2 +-
 conform/data/unistd.h-data       |  2 +-
 conform/data/utime.h-data        |  2 +-
 conform/data/utmpx.h-data        |  2 +-
 conform/data/wchar.h-data        | 18 ++++++------
 conform/data/wctype.h-data       |  4 +--
 conform/data/wordexp.h-data      |  2 +-
 82 files changed, 151 insertions(+), 151 deletions(-)

diff --git a/conform/data/aio.h-data b/conform/data/aio.h-data
index adb291b6e1..7801faa0c6 100644
--- a/conform/data/aio.h-data
+++ b/conform/data/aio.h-data
@@ -1,4 +1,4 @@
-#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined XPG4 && !defined XPG42
+#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined ISO23 && !defined XPG4 && !defined XPG42
 type {struct aiocb}
 
 // Test elements of the AIO control struct.
diff --git a/conform/data/arpa/inet.h-data b/conform/data/arpa/inet.h-data
index 040b8212c7..c514690141 100644
--- a/conform/data/arpa/inet.h-data
+++ b/conform/data/arpa/inet.h-data
@@ -1,4 +1,4 @@
-#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined POSIX && !defined XPG4
+#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined ISO23 && !defined POSIX && !defined XPG4
 // in_port_t should have exactly 16 bits
 type in_port_t
 // in_addr_t should have exactly 32 bits
diff --git a/conform/data/assert.h-data b/conform/data/assert.h-data
index acdfef99e1..2344ee3237 100644
--- a/conform/data/assert.h-data
+++ b/conform/data/assert.h-data
@@ -1,9 +1,9 @@
 macro assert
 
-#ifdef ISO11
+#if defined ISO11 || defined ISO23
 macro static_assert
 #endif
 
-#if !defined ISO && !defined ISO99 && !defined ISO11
+#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined ISO23
 allow *_t
 #endif
diff --git a/conform/data/complex.h-data b/conform/data/complex.h-data
index 4af7757bd7..0c267e47a3 100644
--- a/conform/data/complex.h-data
+++ b/conform/data/complex.h-data
@@ -74,7 +74,7 @@ function {long double complex} csqrtl (long double complex)
 function {long double complex} ctanhl (long double complex)
 function {long double complex} ctanl (long double complex)
 
-# if defined ISO11
+# if defined ISO11 || defined ISO23
 macro-function {double complex} CMPLX (double, double)
 macro-function {float complex} CMPLXF (float, float)
 macro-function {long double complex} CMPLXL (long double, long double)
diff --git a/conform/data/cpio.h-data b/conform/data/cpio.h-data
index ac7d40fd5e..ab91f2c07f 100644
--- a/conform/data/cpio.h-data
+++ b/conform/data/cpio.h-data
@@ -1,4 +1,4 @@
-#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined POSIX
+#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined ISO23 && !defined POSIX
 constant C_IRUSR == 0000400
 constant C_IWUSR == 0000200
 constant C_IXUSR == 0000100
diff --git a/conform/data/ctype.h-data b/conform/data/ctype.h-data
index 7e10794e46..84426f99fa 100644
--- a/conform/data/ctype.h-data
+++ b/conform/data/ctype.h-data
@@ -16,7 +16,7 @@ function int toupper (int)
 function int isblank (int)
 #endif
 
-#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined POSIX && !defined POSIX2008
+#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined ISO23 && !defined POSIX && !defined POSIX2008
 function int isascii (int)
 function int toascii (int)
 
@@ -46,6 +46,6 @@ function int toupper_l (int, locale_t)
 allow is[abcdefghijklmnopqrstuvwxyz]*
 allow to[abcdefghijklmnopqrstuvwxyz]*
 
-#if !defined ISO && !defined ISO99 && !defined ISO11
+#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined ISO23
 allow *_t
 #endif
diff --git a/conform/data/dirent.h-data b/conform/data/dirent.h-data
index be7ad06fd8..e7acdebc7b 100644
--- a/conform/data/dirent.h-data
+++ b/conform/data/dirent.h-data
@@ -1,4 +1,4 @@
-#if !defined ISO && !defined ISO99 && !defined ISO11
+#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined ISO23
 type DIR
 
 type {struct dirent}
diff --git a/conform/data/dlfcn.h-data b/conform/data/dlfcn.h-data
index b6658ae8ca..e85288933c 100644
--- a/conform/data/dlfcn.h-data
+++ b/conform/data/dlfcn.h-data
@@ -1,4 +1,4 @@
-#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined POSIX && !defined XPG4 && !defined XPG42
+#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined ISO23 && !defined POSIX && !defined XPG4 && !defined XPG42
 macro RTLD_LAZY
 macro RTLD_NOW
 macro RTLD_GLOBAL
diff --git a/conform/data/errno.h-data b/conform/data/errno.h-data
index 12730ba974..c7b5f7fdba 100644
--- a/conform/data/errno.h-data
+++ b/conform/data/errno.h-data
@@ -7,7 +7,7 @@ macro-int-constant ERANGE {int} > 0
 // variable int errno
 allow errno
 
-#if !defined ISO && !defined ISO99 && !defined ISO11
+#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined ISO23
 macro-int-constant E2BIG {int} > 0
 macro-int-constant EACCES {int} > 0
 # if !defined POSIX
diff --git a/conform/data/fcntl.h-data b/conform/data/fcntl.h-data
index ffa4a351fb..8491ca671d 100644
--- a/conform/data/fcntl.h-data
+++ b/conform/data/fcntl.h-data
@@ -1,4 +1,4 @@
-#if !defined ISO && !defined ISO99 && !defined ISO11
+#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined ISO23
 constant F_DUPFD
 constant F_GETFD
 constant F_SETFD
diff --git a/conform/data/fenv.h-data b/conform/data/fenv.h-data
index 280b72864c..b3f674cc09 100644
--- a/conform/data/fenv.h-data
+++ b/conform/data/fenv.h-data
@@ -30,7 +30,7 @@ function int feholdexcept (fenv_t*)
 function int fesetenv (const fenv_t*)
 function int feupdateenv (const fenv_t *)
 
-#if !defined ISO && !defined ISO99 && !defined ISO11
+#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined ISO23
 allow *_t
 #endif
 #endif
diff --git a/conform/data/float.h-data b/conform/data/float.h-data
index 7b98fc0344..54784246d2 100644
--- a/conform/data/float.h-data
+++ b/conform/data/float.h-data
@@ -43,7 +43,7 @@ macro-int-constant DECIMAL_DIG >= 10
 macro-int-constant FLT_EVAL_METHOD
 #endif
 
-#if defined ISO11
+#if defined ISO11 || defined ISO23
 macro-int-constant DBL_HAS_SUBNORM
 macro-int-constant FLT_HAS_SUBNORM
 macro-int-constant LDBL_HAS_SUBNORM
@@ -57,6 +57,6 @@ macro-constant FLT_TRUE_MIN <= 1E-37
 macro-constant LDBL_TRUE_MIN <= 1E-37
 #endif
 
-#if !defined ISO && !defined ISO99 && !defined ISO11
+#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined ISO23
 allow *_t
 #endif
diff --git a/conform/data/fmtmsg.h-data b/conform/data/fmtmsg.h-data
index c1b18ad4a4..16d000365f 100644
--- a/conform/data/fmtmsg.h-data
+++ b/conform/data/fmtmsg.h-data
@@ -1,4 +1,4 @@
-#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined POSIX && !defined POSIX2008 && !defined XPG4
+#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined ISO23 && !defined POSIX && !defined POSIX2008 && !defined XPG4
 macro MM_HARD
 constant MM_HARD
 
diff --git a/conform/data/fnmatch.h-data b/conform/data/fnmatch.h-data
index 12a9a4ac2e..e63a46936d 100644
--- a/conform/data/fnmatch.h-data
+++ b/conform/data/fnmatch.h-data
@@ -1,4 +1,4 @@
-#if !defined ISO && !defined ISO99 && !defined ISO11
+#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined ISO23
 constant FNM_NOMATCH
 constant FNM_PATHNAME
 constant FNM_PERIOD
diff --git a/conform/data/ftw.h-data b/conform/data/ftw.h-data
index 340334bfd4..5c8568fd60 100644
--- a/conform/data/ftw.h-data
+++ b/conform/data/ftw.h-data
@@ -1,4 +1,4 @@
-#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined POSIX && !defined POSIX2008
+#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined ISO23 && !defined POSIX && !defined POSIX2008
 # ifndef XPG4
 type {struct FTW}
 element {struct FTW} int base
diff --git a/conform/data/glob.h-data b/conform/data/glob.h-data
index eca83937af..3b5a99927d 100644
--- a/conform/data/glob.h-data
+++ b/conform/data/glob.h-data
@@ -1,4 +1,4 @@
-#if !defined ISO && !defined ISO99 && !defined ISO11
+#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined ISO23
 #ifdef POSIX
 # define size_t __size_t
 #endif
diff --git a/conform/data/grp.h-data b/conform/data/grp.h-data
index 1688444586..428329bbea 100644
--- a/conform/data/grp.h-data
+++ b/conform/data/grp.h-data
@@ -1,4 +1,4 @@
-#if !defined ISO && !defined ISO99 && !defined ISO11
+#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined ISO23
 #ifdef POSIX
 # define gid_t __gid_t
 #endif
diff --git a/conform/data/iconv.h-data b/conform/data/iconv.h-data
index 79fb2d6def..8700fc61b2 100644
--- a/conform/data/iconv.h-data
+++ b/conform/data/iconv.h-data
@@ -1,4 +1,4 @@
-#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined POSIX
+#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined ISO23 && !defined POSIX
 type iconv_t
 # if defined XOPEN2K8 || defined POSIX2008
 type size_t
diff --git a/conform/data/iso646.h-data b/conform/data/iso646.h-data
index 9e307f734d..713c3a4827 100644
--- a/conform/data/iso646.h-data
+++ b/conform/data/iso646.h-data
@@ -11,7 +11,7 @@ macro or_eq
 macro xor
 macro xor_eq
 
-#if !defined ISO && !defined ISO99 && !defined ISO11
+#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined ISO23
 allow *_t
 #endif
 #endif
diff --git a/conform/data/langinfo.h-data b/conform/data/langinfo.h-data
index 6bbb3872a0..4bd90f2e95 100644
--- a/conform/data/langinfo.h-data
+++ b/conform/data/langinfo.h-data
@@ -1,4 +1,4 @@
-#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined POSIX
+#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined ISO23 && !defined POSIX
 constant CODESET
 constant D_T_FMT
 constant D_FMT
diff --git a/conform/data/libgen.h-data b/conform/data/libgen.h-data
index e9eb5fafc9..aee71bb160 100644
--- a/conform/data/libgen.h-data
+++ b/conform/data/libgen.h-data
@@ -1,4 +1,4 @@
-#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined POSIX && !defined POSIX2008 && !defined XPG4
+#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined ISO23 && !defined POSIX && !defined POSIX2008 && !defined XPG4
 function {char*} basename (char*)
 function {char*} dirname (char*)
 
diff --git a/conform/data/limits.h-data b/conform/data/limits.h-data
index 23114a5fa0..4160f961cd 100644
--- a/conform/data/limits.h-data
+++ b/conform/data/limits.h-data
@@ -20,13 +20,13 @@ macro-int-constant UINT_MAX {unsigned int} >= 4294967295U
 macro-int-constant LONG_MAX {long int} >= 2147483647L
 macro-int-constant LONG_MIN {long int} <= -2147483647L
 macro-int-constant ULONG_MAX {unsigned long int} >= 4294967295UL
-#if defined ISO99 || defined ISO11 || defined XOPEN2K8 || defined POSIX2008
+#if defined ISO99 || defined ISO11 || defined ISO23 || defined XOPEN2K8 || defined POSIX2008
 macro-int-constant LLONG_MIN {long long int} <= -9223372036854775807ll
 macro-int-constant LLONG_MAX {long long int} >= 9223372036854775807ll
 macro-int-constant ULLONG_MAX {unsigned long long int} >= 18446744073709551615ull
 #endif
 
-#if !defined ISO && !defined ISO99 && !defined ISO11
+#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined ISO23
 // if these values exist, we should check the minimal value
 allow AIO_LISTIO_MAX
 allow AIO_MAX
diff --git a/conform/data/locale.h-data b/conform/data/locale.h-data
index 266264ac6d..df28e44a0d 100644
--- a/conform/data/locale.h-data
+++ b/conform/data/locale.h-data
@@ -31,7 +31,7 @@ macro-constant NULL == 0
 macro-int-constant LC_ALL
 macro-int-constant LC_COLLATE
 macro-int-constant LC_CTYPE
-#if !defined ISO && !defined ISO99 && !defined ISO11
+#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined ISO23
 macro-int-constant LC_MESSAGES
 #endif
 macro-int-constant LC_MONETARY
@@ -62,7 +62,7 @@ function locale_t uselocale (locale_t)
 #endif
 
 allow LC_[ABCDEFGHIJKLMNOPQRSTUVWXYZ]*
-#if !defined ISO && !defined ISO99 && !defined ISO11
+#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined ISO23
 allow *_t
 #endif
 #if defined XOPEN2K8 || defined POSIX2008
diff --git a/conform/data/math.h-data b/conform/data/math.h-data
index 0c50755792..d177e9bdf8 100644
--- a/conform/data/math.h-data
+++ b/conform/data/math.h-data
@@ -21,7 +21,7 @@ type double_t
 function int isnan (double)
 # endif
 
-# if !defined ISO99 && !defined ISO11 && !defined POSIX2008
+# if !defined ISO99 && !defined ISO11 && !defined ISO23 && !defined POSIX2008
 constant M_E
 constant M_LOG2E
 constant M_LOG10E
@@ -104,7 +104,7 @@ function double gamma (double)
 #endif
 #if !defined ISO && !defined POSIX
 function double hypot (double, double)
-# if !defined ISO99 && !defined ISO11 && !defined POSIX && !defined POSIX2008
+# if !defined ISO99 && !defined ISO11 && !defined ISO23 && !defined POSIX && !defined POSIX2008
 function double j0 (double)
 function double j1 (double)
 function double jn (int, double)
@@ -113,7 +113,7 @@ function double lgamma (double)
 # if !defined XPG4 && !defined XPG42 && !defined UNIX98
 function double tgamma (double)
 # endif
-# if !defined ISO99 && !defined ISO11 && !defined POSIX && !defined POSIX2008
+# if !defined ISO99 && !defined ISO11 && !defined ISO23 && !defined POSIX && !defined POSIX2008
 function double y0 (double)
 function double y1 (double)
 function double yn (int, double)
@@ -157,7 +157,7 @@ function double nan (const char*)
 #  endif
 # endif
 
-# if !defined ISO99 && !defined ISO11 && !defined POSIX && !defined POSIX2008
+# if !defined ISO99 && !defined ISO11 && !defined ISO23 && !defined POSIX && !defined POSIX2008
 // variable signgam
 allow signgam
 # endif
@@ -327,7 +327,7 @@ allow tanl
 allow tanhl
 #endif
 
-#if !defined ISO && !defined ISO99 && !defined ISO11
+#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined ISO23
 allow *_t
 #endif
 #if !defined ISO && !defined POSIX && !defined XPG4 && !defined XPG42 && !defined UNIX98
diff --git a/conform/data/monetary.h-data b/conform/data/monetary.h-data
index 4f0cb9b681..7a87041764 100644
--- a/conform/data/monetary.h-data
+++ b/conform/data/monetary.h-data
@@ -1,4 +1,4 @@
-#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined POSIX
+#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined ISO23 && !defined POSIX
 type size_t
 type ssize_t
 # if defined XOPEN2K8 || defined POSIX2008
diff --git a/conform/data/mqueue.h-data b/conform/data/mqueue.h-data
index 42ccd8551e..6b5c15d596 100644
--- a/conform/data/mqueue.h-data
+++ b/conform/data/mqueue.h-data
@@ -1,4 +1,4 @@
-#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined XPG4 && !defined XPG42
+#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined ISO23 && !defined XPG4 && !defined XPG42
 // should test for not an array type.
 type mqd_t
 
diff --git a/conform/data/ndbm.h-data b/conform/data/ndbm.h-data
index 2ee7a59253..1aa4423eca 100644
--- a/conform/data/ndbm.h-data
+++ b/conform/data/ndbm.h-data
@@ -1,4 +1,4 @@
-#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined POSIX && !defined POSIX2008 && !defined XPG4
+#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined ISO23 && !defined POSIX && !defined POSIX2008 && !defined XPG4
 type datum
 element datum {void*} dptr
 element datum size_t dsize
diff --git a/conform/data/net/if.h-data b/conform/data/net/if.h-data
index 8a4d89c067..98e1bd796a 100644
--- a/conform/data/net/if.h-data
+++ b/conform/data/net/if.h-data
@@ -1,4 +1,4 @@
-#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined POSIX && !defined XPG4 && !defined XPG42 && !defined UNIX98
+#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined ISO23 && !defined POSIX && !defined XPG4 && !defined XPG42 && !defined UNIX98
 type {struct if_nameindex}
 
 element {struct if_nameindex} {unsigned int} if_index
diff --git a/conform/data/netdb.h-data b/conform/data/netdb.h-data
index c6d8b70a0d..a6484ac984 100644
--- a/conform/data/netdb.h-data
+++ b/conform/data/netdb.h-data
@@ -1,4 +1,4 @@
-#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined POSIX && !defined XPG4
+#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined ISO23 && !defined POSIX && !defined XPG4
 optional-type in_port_t
 optional-type in_addr_t
 
diff --git a/conform/data/netinet/in.h-data b/conform/data/netinet/in.h-data
index ccc74db608..ad1d0b3e1e 100644
--- a/conform/data/netinet/in.h-data
+++ b/conform/data/netinet/in.h-data
@@ -1,4 +1,4 @@
-#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined POSIX && !defined XPG4
+#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined ISO23 && !defined POSIX && !defined XPG4
 type in_port_t
 type in_addr_t
 
diff --git a/conform/data/nl_types.h-data b/conform/data/nl_types.h-data
index 67a0d7a198..90ba794b82 100644
--- a/conform/data/nl_types.h-data
+++ b/conform/data/nl_types.h-data
@@ -1,4 +1,4 @@
-#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined POSIX
+#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined ISO23 && !defined POSIX
 type nl_catd
 type nl_item
 
diff --git a/conform/data/poll.h-data b/conform/data/poll.h-data
index f7ebb91715..d99c7762f4 100644
--- a/conform/data/poll.h-data
+++ b/conform/data/poll.h-data
@@ -1,4 +1,4 @@
-#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined POSIX && !defined XPG4
+#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined ISO23 && !defined POSIX && !defined XPG4
 type {struct pollfd}
 element {struct pollfd} int fd
 element {struct pollfd} {short int} events
diff --git a/conform/data/pthread.h-data b/conform/data/pthread.h-data
index 6b10499458..09bf527515 100644
--- a/conform/data/pthread.h-data
+++ b/conform/data/pthread.h-data
@@ -1,4 +1,4 @@
-#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined XPG4 && !defined XPG42
+#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined ISO23 && !defined XPG4 && !defined XPG42
 constant PTHREAD_CANCEL_ASYNCHRONOUS
 constant PTHREAD_CANCEL_ENABLE
 constant PTHREAD_CANCEL_DEFERRED
diff --git a/conform/data/pwd.h-data b/conform/data/pwd.h-data
index e86433d6a7..b2f8cbf924 100644
--- a/conform/data/pwd.h-data
+++ b/conform/data/pwd.h-data
@@ -1,4 +1,4 @@
-#if !defined ISO && !defined ISO99 && !defined ISO11
+#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined ISO23
 #ifdef POSIX
 # define uid_t __uid_t
 # define gid_t __gid_t
diff --git a/conform/data/regex.h-data b/conform/data/regex.h-data
index 04f9034f81..602f2093b6 100644
--- a/conform/data/regex.h-data
+++ b/conform/data/regex.h-data
@@ -1,4 +1,4 @@
-#if !defined ISO && !defined ISO99 && !defined ISO11
+#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined ISO23
 type regex_t
 element regex_t size_t re_nsub
 
diff --git a/conform/data/sched.h-data b/conform/data/sched.h-data
index 63e5eb2567..639f129855 100644
--- a/conform/data/sched.h-data
+++ b/conform/data/sched.h-data
@@ -1,4 +1,4 @@
-#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined XPG4 && !defined XPG42
+#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined ISO23 && !defined XPG4 && !defined XPG42
 # if defined POSIX || defined UNIX98
 #  include "time.h-data"
 # else
diff --git a/conform/data/search.h-data b/conform/data/search.h-data
index e99f7e6c1d..240be297fc 100644
--- a/conform/data/search.h-data
+++ b/conform/data/search.h-data
@@ -1,4 +1,4 @@
-#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined POSIX && !defined POSIX2008
+#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined ISO23 && !defined POSIX && !defined POSIX2008
 type ENTRY
 type {struct entry}
 element {struct entry} {char*} key
diff --git a/conform/data/semaphore.h-data b/conform/data/semaphore.h-data
index 066c2f721b..18afd1689a 100644
--- a/conform/data/semaphore.h-data
+++ b/conform/data/semaphore.h-data
@@ -1,4 +1,4 @@
-#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined XPG4 && !defined XPG42
+#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined ISO23 && !defined XPG4 && !defined XPG42
 type sem_t
 
 constant SEM_FAILED
diff --git a/conform/data/setjmp.h-data b/conform/data/setjmp.h-data
index af28ddb59a..37bd9bd7d7 100644
--- a/conform/data/setjmp.h-data
+++ b/conform/data/setjmp.h-data
@@ -1,10 +1,10 @@
 type jmp_buf
-#if !defined ISO && !defined ISO99 && !defined ISO11
+#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined ISO23
 type sigjmp_buf
 #endif
 
 function void longjmp (jmp_buf, int)
-#if !defined ISO && !defined ISO99 && !defined ISO11
+#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined ISO23
 function void siglongjmp (sigjmp_buf, int)
 # if !defined POSIX && !defined POSIX2008
 function void _longjmp (jmp_buf, int)
@@ -12,13 +12,13 @@ function void _longjmp (jmp_buf, int)
 #endif
 
 macro-function int setjmp (jmp_buf)
-#if !defined ISO && !defined ISO99 && !defined ISO11
+#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined ISO23
 macro-function int sigsetjmp (sigjmp_buf, int)
 # if !defined POSIX && !defined POSIX2008
 macro-function int _setjmp (jmp_buf)
 # endif
 #endif
 
-#if !defined ISO && !defined ISO99 && !defined ISO11
+#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined ISO23
 allow *_t
 #endif
diff --git a/conform/data/signal.h-data b/conform/data/signal.h-data
index 3b00b76076..4beb3d8515 100644
--- a/conform/data/signal.h-data
+++ b/conform/data/signal.h-data
@@ -1,15 +1,15 @@
 macro-constant SIG_DFL {void(*)(int)}
 macro-constant SIG_ERR {void(*)(int)}
-#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined POSIX && !defined POSIX2008
+#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined ISO23 && !defined POSIX && !defined POSIX2008
 macro-constant SIG_HOLD {void(*)(int)}
 #endif
 macro-constant SIG_IGN {void(*)(int)}
 
 type sig_atomic_t
-#if !defined ISO && !defined ISO99 && !defined ISO11
+#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined ISO23
 type sigset_t
 #endif
-#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined POSIX
+#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined ISO23 && !defined POSIX
 type pid_t
 #elif defined POSIX
 # define pid_t __pid_t
@@ -68,7 +68,7 @@ macro-int-constant SIGTERM {int} > 0
 function void (*signal (int, void(*)(int)))(int)
 function int raise (int)
 
-#if !defined ISO && !defined ISO99 && !defined ISO11
+#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined ISO23
 macro-int-constant SIGALRM {int} > 0
 macro-int-constant SIGHUP {int} > 0
 macro-int-constant SIGKILL {int} > 0
diff --git a/conform/data/spawn.h-data b/conform/data/spawn.h-data
index be69922669..47b709bf52 100644
--- a/conform/data/spawn.h-data
+++ b/conform/data/spawn.h-data
@@ -1,4 +1,4 @@
-#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined POSIX && !defined XPG4 && !defined XPG42 && !defined UNIX98
+#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined ISO23 && !defined POSIX && !defined XPG4 && !defined XPG42 && !defined UNIX98
 type posix_spawnattr_t
 type posix_spawn_file_actions_t
 # if defined XOPEN2K8 || defined POSIX2008
diff --git a/conform/data/stdalign.h-data b/conform/data/stdalign.h-data
index edc2310e98..62eb704f93 100644
--- a/conform/data/stdalign.h-data
+++ b/conform/data/stdalign.h-data
@@ -1,4 +1,4 @@
-#if defined ISO11
+#if defined ISO11 || defined ISO23
 macro alignas
 macro alignof
 macro-int-constant __alignas_is_defined {int} == 1
diff --git a/conform/data/stdarg.h-data b/conform/data/stdarg.h-data
index 53addb91fa..c753745b31 100644
--- a/conform/data/stdarg.h-data
+++ b/conform/data/stdarg.h-data
@@ -5,10 +5,10 @@ macro va_start
 macro va_arg
 macro va_end
 
-#if defined ISO99 || defined ISO11 || defined XOPEN2K || defined POSIX2008 || defined XOPEN2K8
+#if defined ISO99 || defined ISO11 || defined ISO23 || defined XOPEN2K || defined POSIX2008 || defined XOPEN2K8
 macro va_copy
 #endif
 
-#if !defined ISO && !defined ISO99 && !defined ISO11
+#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined ISO23
 allow *_t
 #endif
diff --git a/conform/data/stdbool.h-data b/conform/data/stdbool.h-data
index a030e9cffe..2a5a08fc60 100644
--- a/conform/data/stdbool.h-data
+++ b/conform/data/stdbool.h-data
@@ -4,7 +4,7 @@ macro-int-constant true {int} == 1
 macro-int-constant false {int} == 0
 macro-int-constant __bool_true_false_are_defined {int} == 1
 
-#if !defined ISO && !defined ISO99 && !defined ISO11
+#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined ISO23
 allow *_t
 #endif
 #endif
diff --git a/conform/data/stddef.h-data b/conform/data/stddef.h-data
index 9ded4f1ca0..c7a80a83d7 100644
--- a/conform/data/stddef.h-data
+++ b/conform/data/stddef.h-data
@@ -6,10 +6,10 @@ type ptrdiff_t
 type wchar_t
 type size_t
 
-#if defined ISO11
+#if defined ISO11 || defined ISO23
 type max_align_t
 #endif
 
-#if !defined ISO && !defined ISO99 && !defined ISO11
+#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined ISO23
 allow *_t
 #endif
diff --git a/conform/data/stdio.h-data b/conform/data/stdio.h-data
index 3ef2460661..1be80b47b0 100644
--- a/conform/data/stdio.h-data
+++ b/conform/data/stdio.h-data
@@ -6,7 +6,7 @@ macro-int-constant _IOFBF
 macro-int-constant _IOLBF
 macro-int-constant _IONBF
 
-#if !defined ISO && !defined ISO99 && !defined ISO11
+#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined ISO23
 constant L_ctermid
 # if !defined XOPEN2K && !defined XOPEN2K8 && !defined POSIX2008
 #  ifdef POSIX
@@ -28,7 +28,7 @@ macro-int-constant EOF < 0
 
 macro-constant NULL == 0
 
-#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined POSIX && !defined POSIX2008
+#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined ISO23 && !defined POSIX && !defined POSIX2008
 constant P_tmpdir
 #endif
 
@@ -38,7 +38,7 @@ macro stderr {FILE *}
 
 type FILE
 type fpos_t
-#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined POSIX
+#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined ISO23 && !defined POSIX
 type va_list
 #else
 #define va_list __gnuc_va_list
@@ -50,7 +50,7 @@ type ssize_t
 #endif
 
 function void clearerr (FILE*)
-#if !defined ISO && !defined ISO99 && !defined ISO11
+#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined ISO23
 function {char*} ctermid (char*)
 # if defined XPG4 || defined XPG42 || defined UNIX98
 function {char*} cuserid (char*)
@@ -60,7 +60,7 @@ function {char*} cuserid (char*)
 function int dprintf (int, const char*, ...)
 #endif
 function int fclose (FILE*)
-#if !defined ISO && !defined ISO99 && !defined ISO11
+#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined ISO23
 function {FILE*} fdopen (int, const char*)
 #endif
 function int feof (FILE*)
@@ -69,7 +69,7 @@ function int fflush (FILE*)
 function int fgetc (FILE*)
 function int fgetpos (FILE*, fpos_t*)
 function {char*} fgets (char*, int, FILE*)
-#if !defined ISO && !defined ISO99 && !defined ISO11
+#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined ISO23
 function int fileno (FILE*)
 #endif
 #if defined POSIX || defined UNIX98 || defined XOPEN2K || defined XOPEN2K8 || defined POSIX2008
@@ -112,7 +112,7 @@ function ssize_t getline (char**, size_t*, FILE*)
 #if defined XPG4 || defined XPG42 || defined UNIX98
 function int getopt (int, char *const[], const char *)
 #endif
-#if !defined ISO11
+#if !defined ISO11 && !defined ISO23
 function {char*} gets (char*)
 #endif
 #if defined XPG4 || defined XPG42 || defined UNIX98
@@ -121,11 +121,11 @@ function int getw (FILE*)
 #if defined XOPEN2K8 || defined POSIX2008
 function {FILE*} open_memstream (char**, size_t*)
 #endif
-#if !defined ISO && !defined ISO99 && !defined ISO11
+#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined ISO23
 function int pclose (FILE*)
 #endif
 function void perror (const char*)
-#if !defined ISO && !defined ISO99 && !defined ISO11
+#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined ISO23
 function {FILE*} popen (const char*, const char*)
 #endif
 function int printf (const char*, ...)
@@ -178,7 +178,7 @@ function int vsprintf (char*, const char*, va_list)
 function int vsscanf (const char*, const char*, va_list)
 #endif
 
-#if !defined ISO && !defined ISO99 && !defined ISO11
+#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined ISO23
 #if !defined POSIX && !defined XOPEN2K && !defined XOPEN2K8 && !defined POSIX2008
 variable {char*} optarg
 variable int opterr
diff --git a/conform/data/stdlib.h-data b/conform/data/stdlib.h-data
index 6913828196..0f6da09166 100644
--- a/conform/data/stdlib.h-data
+++ b/conform/data/stdlib.h-data
@@ -12,7 +12,7 @@ macro-constant NULL == 0
 macro-int-constant RAND_MAX >= 32767
 macro MB_CUR_MAX
 
-#if defined ISO99 || defined ISO11 || defined XOPEN2K || defined XOPEN2K8 || defined POSIX2008
+#if defined ISO99 || defined ISO11 || defined ISO23 || defined XOPEN2K || defined XOPEN2K8 || defined POSIX2008
 type lldiv_t
 element lldiv_t {long long} quot
 element lldiv_t {long long} rem
@@ -20,7 +20,7 @@ element lldiv_t {long long} rem
 type size_t
 type wchar_t
 
-#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined POSIX
+#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined ISO23 && !defined POSIX
 constant WNOHANG
 constant WUNTRACED
 
@@ -35,16 +35,16 @@ macro WTERMSIG
 #if !defined ISO && !defined XPG4 && !defined XPG42 && !defined UNIX98 && !defined POSIX
 function void _Exit (int)
 #endif
-#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined XPG4 && !defined POSIX && !defined POSIX2008
+#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined ISO23 && !defined XPG4 && !defined POSIX && !defined POSIX2008
 function long a64l (const char*)
 #endif
 function void abort (void)
 function int abs (int)
-#if defined ISO11
+#if defined ISO11 || defined ISO23
 function {void *} aligned_alloc (size_t, size_t)
 #endif
 function int atexit (void(*)(void))
-#if defined ISO11
+#if defined ISO11 || defined ISO23
 function int at_quick_exit (void (*) (void))
 #endif
 function double atof (const char*)
@@ -56,13 +56,13 @@ function {long long} atoll (const char*)
 function {void*} bsearch (const void*, const void*, size_t, size_t, int(*)(const void*, const void*))
 function {void*} calloc (size_t, size_t)
 function div_t div (int, int)
-#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined POSIX && !defined POSIX2008
+#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined ISO23 && !defined POSIX && !defined POSIX2008
 function double drand48 (void)
 #endif
 #if defined XPG42 || defined UNIX98 || defined XOPEN2K
 function {char*} ecvt (double, int, int*, int*)
 #endif
-#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined POSIX && !defined POSIX2008
+#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined ISO23 && !defined POSIX && !defined POSIX2008
 function double erand48 (unsigned short int[3])
 #endif
 function void exit (int)
@@ -74,21 +74,21 @@ function void free (void*)
 function {char*} gcvt (double, int, char*)
 #endif
 function {char*} getenv (const char*)
-#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined XPG4 && !defined POSIX
+#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined ISO23 && !defined XPG4 && !defined POSIX
 function int getsubopt (char**, char *const*, char**)
 #endif
-#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined XPG4 && !defined POSIX && !defined POSIX2008
+#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined ISO23 && !defined XPG4 && !defined POSIX && !defined POSIX2008
 function int grantpt (int)
 function {char*} initstate (unsigned int, char*, size_t)
 #endif
-#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined POSIX && !defined POSIX2008
+#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined ISO23 && !defined POSIX && !defined POSIX2008
 function {long int} jrand48 (unsigned short int[3])
 #endif
-#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined XPG4 && !defined POSIX && !defined POSIX2008
+#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined ISO23 && !defined XPG4 && !defined POSIX && !defined POSIX2008
 function {char*} l64a (long)
 #endif
 function {long int} labs (long int)
-#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined POSIX && !defined POSIX2008
+#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined ISO23 && !defined POSIX && !defined POSIX2008
 function void lcong48 (unsigned short int[7])
 #endif
 function ldiv_t ldiv (long int, long int)
@@ -96,7 +96,7 @@ function ldiv_t ldiv (long int, long int)
 function {long long} llabs (long long)
 function lldiv_t lldiv (long long, long long)
 #endif
-#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined POSIX && !defined POSIX2008
+#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined ISO23 && !defined POSIX && !defined POSIX2008
 function {long int} lrand48 (void)
 #endif
 function {void*} malloc (size_t)
@@ -106,13 +106,13 @@ function int mbtowc (wchar_t*, const char*, size_t)
 #if defined XOPEN2K8 || defined POSIX2008
 function {char*} mkdtemp (char*)
 #endif
-#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined XPG4 && !defined POSIX && !defined XOPEN2K8 && !defined POSIX2008
+#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined ISO23 && !defined XPG4 && !defined POSIX && !defined XOPEN2K8 && !defined POSIX2008
 function {char*} mktemp (char*)
 #endif
-#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined XPG4 && !defined POSIX
+#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined ISO23 && !defined XPG4 && !defined POSIX
 function int mkstemp (char*)
 #endif
-#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined POSIX && !defined POSIX2008
+#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined ISO23 && !defined POSIX && !defined POSIX2008
 function {long int} mrand48 (void)
 function {long int} nrand48 (unsigned short int[3])
 #endif
@@ -122,41 +122,41 @@ function int posix_memalign (void**, size_t, size_t)
 #if defined XOPEN2K || defined XOPEN2K8
 function int posix_openpt (int)
 #endif
-#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined XPG4 && !defined POSIX && !defined POSIX2008
+#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined ISO23 && !defined XPG4 && !defined POSIX && !defined POSIX2008
 function {char*} ptsname (int)
 #endif
-#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined POSIX && !defined POSIX2008
+#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined ISO23 && !defined POSIX && !defined POSIX2008
 function int putenv (char*)
 #endif
 function void qsort (void*, size_t, size_t, int(*)(const void*, const void*))
-#if defined ISO11
+#if defined ISO11 || defined ISO23
 function void quick_exit (int)
 #endif
 function int rand (void)
 #if defined POSIX || defined UNIX98 || defined XOPEN2K || defined XOPEN2K8 || defined POSIX2008
 function int rand_r (unsigned int*)
 #endif
-#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined XPG4 && !defined POSIX && !defined POSIX2008
+#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined ISO23 && !defined XPG4 && !defined POSIX && !defined POSIX2008
 function long random (void)
 #endif
 function {void*} realloc (void*, size_t)
-#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined XPG4 && !defined POSIX && !defined POSIX2008
+#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined ISO23 && !defined XPG4 && !defined POSIX && !defined POSIX2008
 function {char*} realpath (const char*, char*)
 #endif
-#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined POSIX && !defined POSIX2008
+#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined ISO23 && !defined POSIX && !defined POSIX2008
 function {unsigned short int*} seed48 (unsigned short int[3])
 #endif
-#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined POSIX && !defined XPG4 && !defined XPG42 && !defined UNIX98
+#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined ISO23 && !defined POSIX && !defined XPG4 && !defined XPG42 && !defined UNIX98
 function int setenv (const char*, const char*, int)
 #endif
-#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined XPG4 && !defined POSIX && !defined POSIX2008
+#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined ISO23 && !defined XPG4 && !defined POSIX && !defined POSIX2008
 function {char*} setstate (char*)
 #endif
 function void srand (unsigned int)
-#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined POSIX && !defined POSIX2008
+#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined ISO23 && !defined POSIX && !defined POSIX2008
 function void srand48 (long int)
 #endif
-#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined XPG4 && !defined POSIX && !defined POSIX2008
+#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined ISO23 && !defined XPG4 && !defined POSIX && !defined POSIX2008
 function void srandom (unsigned)
 #endif
 function double strtod (const char*, char**)
@@ -174,10 +174,10 @@ function int system (const char*)
 #if defined XPG42 || defined UNIX98
 function int ttyslot (void)
 #endif
-#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined XPG4 && !defined POSIX && !defined POSIX2008
+#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined ISO23 && !defined XPG4 && !defined POSIX && !defined POSIX2008
 function int unlockpt (int)
 #endif
-#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined POSIX && !defined XPG4 && !defined XPG42 && !defined UNIX98
+#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined ISO23 && !defined POSIX && !defined XPG4 && !defined XPG42 && !defined UNIX98
 function int unsetenv (const char*)
 #endif
 #if defined XPG42 || defined UNIX98
@@ -186,7 +186,7 @@ function {void*} valloc (size_t)
 function size_t wcstombs (char*, const wchar_t*, size_t)
 function int wctomb (char*, wchar_t)
 
-#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined POSIX
+#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined ISO23 && !defined POSIX
 allow-header stddef.h
 allow-header limits.h
 allow-header math.h
@@ -194,6 +194,6 @@ allow-header sys/wait.h
 #endif
 
 allow str[abcdefghijklmnopqrstuvwxyz]*
-#if !defined ISO && !defined ISO99 && !defined ISO11
+#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined ISO23
 allow *_t
 #endif
diff --git a/conform/data/stdnoreturn.h-data b/conform/data/stdnoreturn.h-data
index 77b9a589d8..fa83c4f558 100644
--- a/conform/data/stdnoreturn.h-data
+++ b/conform/data/stdnoreturn.h-data
@@ -1,3 +1,3 @@
-#if defined ISO11
+#if defined ISO11 || defined ISO23
 macro noreturn
 #endif
diff --git a/conform/data/string.h-data b/conform/data/string.h-data
index e06f941498..8cda133428 100644
--- a/conform/data/string.h-data
+++ b/conform/data/string.h-data
@@ -5,7 +5,7 @@ type size_t
 type locale_t
 #endif
 
-#if !defined ISO && !defined ISO99 & !defined ISO11 && !defined POSIX && !defined POSIX2008
+#if !defined ISO && !defined ISO99 & !defined ISO11 && !defined ISO23 && !defined POSIX && !defined POSIX2008
 function {void*} memccpy (void*, const void*, int, size_t)
 #endif
 function {void*} memchr (const void*, int, size_t)
@@ -27,7 +27,7 @@ function int strcoll_l (const char*, const char*, locale_t)
 #endif
 function {char*} strcpy (char*, const char*)
 function size_t strcspn (const char*, const char*)
-#if !defined ISO && !defined ISO99 & !defined ISO11 && !defined XPG4 && !defined POSIX && !defined POSIX2008
+#if !defined ISO && !defined ISO99 & !defined ISO11 && !defined ISO23 && !defined XPG4 && !defined POSIX && !defined POSIX2008
 function {char*} strdup (const char*)
 #endif
 function {char*} strerror (int)
@@ -61,13 +61,13 @@ function size_t strxfrm (char*, const char*, size_t)
 function size_t strxfrm_l (char*, const char*, size_t, locale_t)
 #endif
 
-#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined POSIX
+#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined ISO23 && !defined POSIX
 allow-header stddef.h
 #endif
 
 allow str[abcdefghijklmnopqrstuvwxyz]*
 allow mem[abcdefghijklmnopqrstuvwxyz]*
 allow wcs[abcdefghijklmnopqrstuvwxyz]*
-#if !defined ISO && !defined ISO99 && !defined ISO11
+#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined ISO23
 allow *_t
 #endif
diff --git a/conform/data/strings.h-data b/conform/data/strings.h-data
index 13827ebed9..b5d352ff32 100644
--- a/conform/data/strings.h-data
+++ b/conform/data/strings.h-data
@@ -1,4 +1,4 @@
-#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined POSIX && !defined XPG4
+#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined ISO23 && !defined POSIX && !defined XPG4
 # if !defined XOPEN2K8 && !defined POSIX2008
 function int bcmp (const void*, const void*, size_t)
 function void bcopy (const void*, void*, size_t)
diff --git a/conform/data/sys/ipc.h-data b/conform/data/sys/ipc.h-data
index 1364b07e87..e157257e8a 100644
--- a/conform/data/sys/ipc.h-data
+++ b/conform/data/sys/ipc.h-data
@@ -1,4 +1,4 @@
-#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined POSIX && !defined POSIX2008
+#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined ISO23 && !defined POSIX && !defined POSIX2008
 type {struct ipc_perm}
 
 // Bug 23082: uid/gid/cuid/cgid/mode have type unsigned short instead of uid_t and mode_t.
diff --git a/conform/data/sys/mman.h-data b/conform/data/sys/mman.h-data
index a74388338e..b742b900d6 100644
--- a/conform/data/sys/mman.h-data
+++ b/conform/data/sys/mman.h-data
@@ -1,4 +1,4 @@
-#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined XPG4
+#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined ISO23 && !defined XPG4
 constant PROT_READ
 constant PROT_WRITE
 constant PROT_EXEC
diff --git a/conform/data/sys/msg.h-data b/conform/data/sys/msg.h-data
index f5e9f1c82a..93df6fd656 100644
--- a/conform/data/sys/msg.h-data
+++ b/conform/data/sys/msg.h-data
@@ -1,4 +1,4 @@
-#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined POSIX && !defined POSIX2008
+#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined ISO23 && !defined POSIX && !defined POSIX2008
 type {struct msqid_ds}
 
 type msgqnum_t
diff --git a/conform/data/sys/resource.h-data b/conform/data/sys/resource.h-data
index cedbee1a40..ba247e3d26 100644
--- a/conform/data/sys/resource.h-data
+++ b/conform/data/sys/resource.h-data
@@ -1,4 +1,4 @@
-#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined POSIX && !defined POSIX2008 && !defined XPG4
+#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined ISO23 && !defined POSIX && !defined POSIX2008 && !defined XPG4
 constant PRIO_PROCESS
 constant PRIO_PGRP
 constant PRIO_USER
diff --git a/conform/data/sys/select.h-data b/conform/data/sys/select.h-data
index 44d63ebd2d..9406eaea0c 100644
--- a/conform/data/sys/select.h-data
+++ b/conform/data/sys/select.h-data
@@ -1,4 +1,4 @@
-#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined POSIX && !defined XPG4 && !defined XPG42 && !defined UNIX98
+#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined ISO23 && !defined POSIX && !defined XPG4 && !defined XPG42 && !defined UNIX98
 type time_t
 type suseconds_t
 
diff --git a/conform/data/sys/sem.h-data b/conform/data/sys/sem.h-data
index a36ab1bd91..f34541c447 100644
--- a/conform/data/sys/sem.h-data
+++ b/conform/data/sys/sem.h-data
@@ -1,4 +1,4 @@
-#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined POSIX && !defined POSIX2008
+#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined ISO23 && !defined POSIX && !defined POSIX2008
 constant SEM_UNDO
 
 constant GETNCNT
diff --git a/conform/data/sys/shm.h-data b/conform/data/sys/shm.h-data
index 778b194f50..a9d2539e47 100644
--- a/conform/data/sys/shm.h-data
+++ b/conform/data/sys/shm.h-data
@@ -1,4 +1,4 @@
-#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined POSIX && !defined POSIX2008
+#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined ISO23 && !defined POSIX && !defined POSIX2008
 constant SHM_RDONLY
 symbol SHMLBA
 constant SHM_RND
diff --git a/conform/data/sys/socket.h-data b/conform/data/sys/socket.h-data
index 8796c57570..d00504bd31 100644
--- a/conform/data/sys/socket.h-data
+++ b/conform/data/sys/socket.h-data
@@ -1,4 +1,4 @@
-#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined POSIX && !defined XPG4
+#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined ISO23 && !defined POSIX && !defined XPG4
 type socklen_t
 
 type sa_family_t
diff --git a/conform/data/sys/stat.h-data b/conform/data/sys/stat.h-data
index 03be4814ec..ba80a5adc6 100644
--- a/conform/data/sys/stat.h-data
+++ b/conform/data/sys/stat.h-data
@@ -1,4 +1,4 @@
-#if !defined ISO && !defined ISO99 && !defined ISO11
+#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined ISO23
 
 #if !defined POSIX && !defined POSIX2008 && !defined XPG4 && !defined XPG42
 type blkcnt_t
diff --git a/conform/data/sys/statvfs.h-data b/conform/data/sys/statvfs.h-data
index 2a74813e3d..712fbcf47a 100644
--- a/conform/data/sys/statvfs.h-data
+++ b/conform/data/sys/statvfs.h-data
@@ -1,4 +1,4 @@
-#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined POSIX && !defined XPG4
+#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined ISO23 && !defined POSIX && !defined XPG4
 type {struct statvfs}
 
 element {struct statvfs} {unsigned long} f_bsize
diff --git a/conform/data/sys/time.h-data b/conform/data/sys/time.h-data
index 30523e1af4..df5b6b9730 100644
--- a/conform/data/sys/time.h-data
+++ b/conform/data/sys/time.h-data
@@ -1,4 +1,4 @@
-#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined POSIX && !defined POSIX2008 && !defined XPG4
+#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined ISO23 && !defined POSIX && !defined POSIX2008 && !defined XPG4
 type {struct timeval}
 
 element {struct timeval} time_t tv_sec
diff --git a/conform/data/sys/timeb.h-data b/conform/data/sys/timeb.h-data
index 9638f73c8f..a1db569621 100644
--- a/conform/data/sys/timeb.h-data
+++ b/conform/data/sys/timeb.h-data
@@ -1,4 +1,4 @@
-#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined POSIX && !defined XPG4 && !defined POSIX2008 && !defined XOPEN2K8
+#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined ISO23 && !defined POSIX && !defined XPG4 && !defined POSIX2008 && !defined XOPEN2K8
 type {struct timeb}
 
 element {struct timeb} time_t time
diff --git a/conform/data/sys/times.h-data b/conform/data/sys/times.h-data
index c93357b793..c4c3edf814 100644
--- a/conform/data/sys/times.h-data
+++ b/conform/data/sys/times.h-data
@@ -1,4 +1,4 @@
-#if !defined ISO && !defined ISO99 && !defined ISO11
+#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined ISO23
 type {struct tms}
 
 element {struct tms} clock_t tms_utime
diff --git a/conform/data/sys/types.h-data b/conform/data/sys/types.h-data
index cc28eb76d4..3330f9e195 100644
--- a/conform/data/sys/types.h-data
+++ b/conform/data/sys/types.h-data
@@ -1,4 +1,4 @@
-#if !defined ISO && !defined ISO99 && !defined ISO11
+#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined ISO23
 #if !defined POSIX
 # if !defined XPG4 && !defined XPG42
 type blkcnt_t
diff --git a/conform/data/sys/uio.h-data b/conform/data/sys/uio.h-data
index b9fc66177c..6da312c9dd 100644
--- a/conform/data/sys/uio.h-data
+++ b/conform/data/sys/uio.h-data
@@ -1,4 +1,4 @@
-#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined POSIX && !defined XPG4 && !defined POSIX2008
+#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined ISO23 && !defined POSIX && !defined XPG4 && !defined POSIX2008
 type {struct iovec}
 
 element {struct iovec} {void*} iov_base
diff --git a/conform/data/sys/un.h-data b/conform/data/sys/un.h-data
index 08bf9bcfd7..8114024c8c 100644
--- a/conform/data/sys/un.h-data
+++ b/conform/data/sys/un.h-data
@@ -1,4 +1,4 @@
-#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined POSIX && !defined XPG4
+#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined ISO23 && !defined POSIX && !defined XPG4
 type {struct sockaddr_un}
 
 element {struct sockaddr_un} sa_family_t sun_family
diff --git a/conform/data/sys/utsname.h-data b/conform/data/sys/utsname.h-data
index 82f7f397ca..f9045e38fb 100644
--- a/conform/data/sys/utsname.h-data
+++ b/conform/data/sys/utsname.h-data
@@ -1,4 +1,4 @@
-#if !defined ISO && !defined ISO99 && !defined ISO11
+#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined ISO23
 type {struct utsname}
 
 element {struct utsname} char sysname []
diff --git a/conform/data/sys/wait.h-data b/conform/data/sys/wait.h-data
index a6713461ea..5998748a23 100644
--- a/conform/data/sys/wait.h-data
+++ b/conform/data/sys/wait.h-data
@@ -1,4 +1,4 @@
-#if !defined ISO && !defined ISO99 && !defined ISO11
+#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined ISO23
 #ifdef  POSIX
 # define pid_t __pid_t
 #endif
diff --git a/conform/data/syslog.h-data b/conform/data/syslog.h-data
index 6604d76d3e..f72734d8f9 100644
--- a/conform/data/syslog.h-data
+++ b/conform/data/syslog.h-data
@@ -1,4 +1,4 @@
-#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined POSIX && !defined POSIX2008 && !defined XPG4
+#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined ISO23 && !defined POSIX && !defined POSIX2008 && !defined XPG4
 constant LOG_PID
 constant LOG_CONS
 constant LOG_NDELAY
diff --git a/conform/data/tar.h-data b/conform/data/tar.h-data
index 8477860e57..43b2d0555c 100644
--- a/conform/data/tar.h-data
+++ b/conform/data/tar.h-data
@@ -1,4 +1,4 @@
-#if !defined ISO && !defined ISO99 && !defined ISO11
+#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined ISO23
 macro-str TMAGIC "ustar"
 macro-int-constant TMAGLEN {int} == 6
 macro-str TVERSION "00"
diff --git a/conform/data/termios.h-data b/conform/data/termios.h-data
index bb2092bb6f..87fbcb9565 100644
--- a/conform/data/termios.h-data
+++ b/conform/data/termios.h-data
@@ -1,4 +1,4 @@
-#if !defined ISO && !defined ISO99 && !defined ISO11
+#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined ISO23
 type cc_t
 type speed_t
 type tcflag_t
diff --git a/conform/data/threads.h-data b/conform/data/threads.h-data
index 406e497726..a6ba414fb9 100644
--- a/conform/data/threads.h-data
+++ b/conform/data/threads.h-data
@@ -1,4 +1,4 @@
-#if defined ISO11
+#if defined ISO11 || defined ISO23
 
 macro ONCE_FLAG_INIT
 macro thread_local
diff --git a/conform/data/time.h-data b/conform/data/time.h-data
index 9c1c19596e..3b2846cd07 100644
--- a/conform/data/time.h-data
+++ b/conform/data/time.h-data
@@ -1,7 +1,7 @@
 macro-constant NULL == 0
 macro CLOCKS_PER_SEC {clock_t}
 
-#ifdef ISO11
+#if defined ISO11 || defined ISO23
 macro-int-constant TIME_UTC > 0
 #endif
 
@@ -38,11 +38,11 @@ function {char*} ctime (const time_t*)
 function {struct tm*} gmtime (const time_t*)
 function {struct tm*} localtime (const time_t*)
 function size_t strftime (char*, size_t, const char*, const struct tm*)
-#if defined ISO11
+#if defined ISO11 || defined ISO23
 function int timespec_get (struct timespec *, int)
 #endif
 
-#if !defined ISO && !defined ISO99 && !defined ISO11
+#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined ISO23
 # if !defined XOPEN2K && !defined XOPEN2K8 && !defined POSIX2008
 symbol CLK_TCK
 # endif
diff --git a/conform/data/uchar.h-data b/conform/data/uchar.h-data
index ef27617bc4..14718adf50 100644
--- a/conform/data/uchar.h-data
+++ b/conform/data/uchar.h-data
@@ -1,4 +1,4 @@
-#if defined ISO11
+#if defined ISO11 || defined ISO23
 type mbstate_t
 type size_t
 type char16_t
diff --git a/conform/data/ucontext.h-data b/conform/data/ucontext.h-data
index e3dcb3014b..414635f664 100644
--- a/conform/data/ucontext.h-data
+++ b/conform/data/ucontext.h-data
@@ -1,4 +1,4 @@
-#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined POSIX && !defined XPG4 && !defined POSIX2008 && !defined XOPEN2K8
+#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined ISO23 && !defined POSIX && !defined XPG4 && !defined POSIX2008 && !defined XOPEN2K8
 type mcontext_t
 
 type ucontext_t
diff --git a/conform/data/ulimit.h-data b/conform/data/ulimit.h-data
index 1e5e5b471d..fbe3ec25f4 100644
--- a/conform/data/ulimit.h-data
+++ b/conform/data/ulimit.h-data
@@ -1,4 +1,4 @@
-#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined POSIX && !defined POSIX2008
+#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined ISO23 && !defined POSIX && !defined POSIX2008
 constant UL_GETFSIZE
 constant UL_SETFSIZE
 
diff --git a/conform/data/unistd.h-data b/conform/data/unistd.h-data
index aa070528e8..b4531868fd 100644
--- a/conform/data/unistd.h-data
+++ b/conform/data/unistd.h-data
@@ -1,4 +1,4 @@
-#if !defined ISO && !defined ISO99 && !defined ISO11
+#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined ISO23
 #ifdef POSIX
 # define uid_t __uid_t
 # define gid_t __gid_t
diff --git a/conform/data/utime.h-data b/conform/data/utime.h-data
index e3201651c1..2ca26efab2 100644
--- a/conform/data/utime.h-data
+++ b/conform/data/utime.h-data
@@ -1,4 +1,4 @@
-#if !defined ISO && !defined ISO99 && !defined ISO11
+#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined ISO23
 #ifdef POSIX
 # define time_t __time_t
 #endif
diff --git a/conform/data/utmpx.h-data b/conform/data/utmpx.h-data
index cfe2a08634..28ad96a486 100644
--- a/conform/data/utmpx.h-data
+++ b/conform/data/utmpx.h-data
@@ -1,4 +1,4 @@
-#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined POSIX && !defined POSIX2008 && !defined XPG4
+#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined ISO23 && !defined POSIX && !defined POSIX2008 && !defined XPG4
 type {struct utmpx}
 
 element {struct utmpx} char ut_user []
diff --git a/conform/data/wchar.h-data b/conform/data/wchar.h-data
index 243321090d..4c8a2e3c82 100644
--- a/conform/data/wchar.h-data
+++ b/conform/data/wchar.h-data
@@ -1,11 +1,11 @@
 #if !defined ISO && !defined POSIX && !defined XPG4 && !defined XPG42
 type wchar_t
 type wint_t
-# if !defined ISO99 && !defined ISO11 && !defined POSIX2008
+# if !defined ISO99 && !defined ISO11 && !defined ISO23 && !defined POSIX2008
 type wctype_t
 # endif
 type mbstate_t
-# if !defined ISO99 && !defined ISO11
+# if !defined ISO99 && !defined ISO11 && !defined ISO23
 type FILE
 # else
 #  define FILE __FILE
@@ -15,7 +15,7 @@ type size_t
 type locale_t
 # endif
 tag {struct tm}
-# if !defined ISO99 && !defined ISO11 && !defined UNIX98
+# if !defined ISO99 && !defined ISO11 && !defined ISO23 && !defined UNIX98
 type va_list
 # else
 #  define va_list __gnuc_va_list
@@ -24,7 +24,7 @@ type va_list
 function wint_t btowc (int)
 function int fwprintf (FILE*, const wchar_t*, ...)
 function int fwscanf (FILE*, const wchar_t*, ...)
-# if !defined ISO99 && !defined ISO11 && !defined POSIX2008
+# if !defined ISO99 && !defined ISO11 && !defined ISO23 && !defined POSIX2008
 function int iswalnum (wint_t)
 function int iswalpha (wint_t)
 function int iswcntrl (wint_t)
@@ -59,7 +59,7 @@ function wint_t putwc (wchar_t, FILE*)
 function wint_t putwchar (wchar_t)
 function int swprintf (wchar_t*, size_t, const wchar_t*, ...)
 function int swscanf (const wchar_t*, const wchar_t*, ...)
-# if !defined ISO99 && !defined ISO11 && !defined POSIX2008
+# if !defined ISO99 && !defined ISO11 && !defined ISO23 && !defined POSIX2008
 function wint_t towlower (wint_t)
 function wint_t towupper (wint_t)
 # endif
@@ -132,7 +132,7 @@ function {unsigned long long int} wcstoull (const wchar_t*, wchar_t**, int)
 # if defined UNIX98 || defined XOPEN2K
 function {wchar_t*} wcswcs (const wchar_t*, const wchar_t*)
 # endif
-# if !defined ISO99 && !defined ISO11 && !defined POSIX && !defined POSIX2008
+# if !defined ISO99 && !defined ISO11 && !defined ISO23 && !defined POSIX && !defined POSIX2008
 function int wcswidth (const wchar_t*, size_t)
 # endif
 function size_t wcsxfrm (wchar_t*, const wchar_t*, size_t)
@@ -140,7 +140,7 @@ function size_t wcsxfrm (wchar_t*, const wchar_t*, size_t)
 function size_t wcsxfrm_l (wchar_t*, const wchar_t*, size_t, locale_t)
 # endif
 function int wctob (wint_t)
-# if !defined ISO99 && !defined ISO11 && !defined POSIX2008
+# if !defined ISO99 && !defined ISO11 && !defined ISO23 && !defined POSIX2008
 function wctype_t wctype (const char*)
 function int wcwidth (wchar_t)
 # endif
@@ -157,7 +157,7 @@ macro-int-constant WCHAR_MAX {promoted:wchar_t} >= 127
 macro-constant WEOF {wint_t}
 macro-constant NULL == 0
 
-#if !defined ISO && !defined ISO99 && !defined ISO11
+#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined ISO23
 allow-header ctype.h
 allow-header stdio.h
 allow-header stdarg.h
@@ -168,7 +168,7 @@ allow-header time.h
 #endif
 
 allow wcs[abcdefghijklmnopqrstuvwxyz]*
-#if !defined ISO && !defined ISO99 && !defined ISO11
+#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined ISO23
 allow *_t
 #endif
 #endif
diff --git a/conform/data/wctype.h-data b/conform/data/wctype.h-data
index 944fe6efab..f939f3c652 100644
--- a/conform/data/wctype.h-data
+++ b/conform/data/wctype.h-data
@@ -49,7 +49,7 @@ function wctype_t wctype_l (const char*, locale_t)
 
 macro-constant WEOF {wint_t}
 
-#if !defined ISO && !defined ISO99 && !defined ISO11
+#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined ISO23
 allow-header ctype.h
 allow-header stdio.h
 allow-header stdarg.h
@@ -62,7 +62,7 @@ allow-header wchar.h
 
 allow is[abcdefghijklmnopqrstuvwxyz]*
 allow to[abcdefghijklmnopqrstuvwxyz]*
-#if !defined ISO && !defined ISO99 && !defined ISO11
+#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined ISO23
 allow *_t
 #endif
 #endif
diff --git a/conform/data/wordexp.h-data b/conform/data/wordexp.h-data
index 0d96d68edc..eed4754e0c 100644
--- a/conform/data/wordexp.h-data
+++ b/conform/data/wordexp.h-data
@@ -1,4 +1,4 @@
-#if !defined ISO && !defined ISO99 && !defined ISO11
+#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined ISO23
 type wordexp_t
 
 element wordexp_t size_t we_wordc


More information about the Glibc-cvs mailing list