1
0
mirror of https://sourceware.org/git/glibc.git synced 2025-08-05 19:35:52 +03:00
Files
glibc/conform/data/string.h-data
Collin Funk d18213c699 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>
2025-04-10 18:39:05 +00:00

74 lines
2.7 KiB
Plaintext

macro-constant NULL == 0
type size_t
#if defined XOPEN2K8 || defined POSIX2008
type locale_t
#endif
#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)
function int memcmp (const void*, const void*, size_t)
function {void*} memcpy (void*, const void*, size_t)
function {void*} memmove (void*, const void*, size_t)
function {void*} memset (void*, int, size_t)
#if defined XOPEN2K8 || defined POSIX2008
function {char*} stpcpy (char*, const char*)
function {char*} stpncpy (char*, const char*, size_t)
#endif
function {char*} strcat (char*, const char*)
function {char*} strchr (const char*, int)
function int strcmp (const char*, const char*)
function int strcoll (const char*, const char*)
#if defined XOPEN2K8 || defined POSIX2008
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 ISO23 && !defined XPG4 && !defined POSIX && !defined POSIX2008
function {char*} strdup (const char*)
#endif
function {char*} strerror (int)
#if defined XOPEN2K || defined XOPEN2K8 || defined POSIX2008
function int strerror_r (int, char*, size_t)
#endif
#if defined XOPEN2K8 || defined POSIX2008
function {char*} strerror_l (int, locale_t)
#endif
function size_t strlen (const char*)
function {char*} strncat (char*, const char*, size_t)
function int strncmp (const char*, const char*, size_t)
function {char*} strncpy (char*, const char*, size_t)
#if defined XOPEN2K8 || defined POSIX2008
function {char*} strndup (const char*, size_t)
function size_t strnlen (const char*, size_t)
#endif
function {char*} strpbrk (const char*, const char*)
function {char*} strrchr (const char*, int)
#if defined XOPEN2K8 || defined POSIX2008
function {char*} strsignal (int)
#endif
function size_t strspn (const char*, const char*)
function {char*} strstr (const char*, const char*)
function {char*} strtok (char*, const char*)
#if defined POSIX || defined UNIX98 || defined XOPEN2K || defined XOPEN2K8 || defined POSIX2008
function {char*} strtok_r (char*, const char*, char**)
#endif
function size_t strxfrm (char*, const char*, size_t)
#if defined XOPEN2K8 || defined POSIX2008
function size_t strxfrm_l (char*, const char*, size_t, locale_t)
#endif
#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 && !defined ISO23
allow *_t
#endif