conformtest: Clean up / correct / expand C99 and C11 expectations.

This commit is contained in:
Joseph Myers 2012-11-07 19:36:48 +00:00
parent 01f34a3bd8
commit 05bcf62afb
13 changed files with 596 additions and 555 deletions

288
ChangeLog
View File

@ -1,3 +1,291 @@
2012-11-07 Joseph Myers <joseph@codesourcery.com>
* conform/conformtest.pl: Preprocess allow-header data with -x c
instead of from stdin.
(@headers): Add stdalign.h, stdbool.h and stdnoreturn.h.
* conform/data/complex.h-data [C99-based standards] (cerf): Allow.
[C99-based standards] (cerfc): Likewise.
[C99-based standards] (cexp2): Likewise.
[C99-based standards] (cexpm1): Likewise.
[C99-based standards] (clog10): Likewise.
[C99-based standards] (clog1p): Likewise.
[C99-based standards] (clog2): Likewise.
[C99-based standards] (clgamma): Likewise.
[C99-based standards] (ctgamma): Likewise.
[C99-based standards] (cerff): Likewise.
[C99-based standards] (cerfcf): Likewise.
[C99-based standards] (cexp2f): Likewise.
[C99-based standards] (cexpm1f): Likewise.
[C99-based standards] (clog10f): Likewise.
[C99-based standards] (clog1pf): Likewise.
[C99-based standards] (clog2f): Likewise.
[C99-based standards] (clgammaf): Likewise.
[C99-based standards] (ctgammaf): Likewise.
[C99-based standards] (cerfl): Likewise.
[C99-based standards] (cerfcl): Likewise.
[C99-based standards] (cexp2l): Likewise.
[C99-based standards] (cexpm1l): Likewise.
[C99-based standards] (clog10l): Likewise.
[C99-based standards] (clog1pl): Likewise.
[C99-based standards] (clog2l): Likewise.
[C99-based standards] (clgammal): Likewise.
[C99-based standards] (ctgammal): Likewise.
* conform/data/inttypes.h-data [C99-based standards]: Include
stdint.h-data. Remove all expectations for stdint.h contents.
[C99-based standards] (PRI*): Do not allow.
[C99-based standards] (SCN*): Likewise.
[C99-based standards] (*_t): Likewise.
[C99-based-standards] (PRId8): Expect macro.
[C99-based-standards] (PRIi8): Likewise.
[C99-based-standards] (PRIo8): Likewise.
[C99-based-standards] (PRIu8): Likewise.
[C99-based-standards] (PRIx8): Likewise.
[C99-based-standards] (PRIX8): Likewise.
[C99-based-standards] (SCNd8): Likewise.
[C99-based-standards] (SCNi8): Likewise.
[C99-based-standards] (SCNo8): Likewise.
[C99-based-standards] (SCNu8): Likewise.
[C99-based-standards] (SCNx8): Likewise.
[C99-based-standards] (PRIdLEAST8): Likewise.
[C99-based-standards] (PRIiLEAST8): Likewise.
[C99-based-standards] (PRIoLEAST8): Likewise.
[C99-based-standards] (PRIuLEAST8): Likewise.
[C99-based-standards] (PRIxLEAST8): Likewise.
[C99-based-standards] (PRIXLEAST8): Likewise.
[C99-based-standards] (SCNdLEAST8): Likewise.
[C99-based-standards] (SCNiLEAST8): Likewise.
[C99-based-standards] (SCNoLEAST8): Likewise.
[C99-based-standards] (SCNuLEAST8): Likewise.
[C99-based-standards] (SCNxLEAST8): Likewise.
[C99-based-standards] (PRIdFAST8): Likewise.
[C99-based-standards] (PRIiFAST8): Likewise.
[C99-based-standards] (PRIoFAST8): Likewise.
[C99-based-standards] (PRIuFAST8): Likewise.
[C99-based-standards] (PRIxFAST8): Likewise.
[C99-based-standards] (PRIXFAST8): Likewise.
[C99-based-standards] (SCNdFAST8): Likewise.
[C99-based-standards] (SCNiFAST8): Likewise.
[C99-based-standards] (SCNoFAST8): Likewise.
[C99-based-standards] (SCNuFAST8): Likewise.
[C99-based-standards] (SCNxFAST8): Likewise.
[C99-based-standards] (PRId16): Likewise.
[C99-based-standards] (PRIi16): Likewise.
[C99-based-standards] (PRIo16): Likewise.
[C99-based-standards] (PRIu16): Likewise.
[C99-based-standards] (PRIx16): Likewise.
[C99-based-standards] (PRIX16): Likewise.
[C99-based-standards] (SCNd16): Likewise.
[C99-based-standards] (SCNi16): Likewise.
[C99-based-standards] (SCNo16): Likewise.
[C99-based-standards] (SCNu16): Likewise.
[C99-based-standards] (SCNx16): Likewise.
[C99-based-standards] (PRIdLEAST16): Likewise.
[C99-based-standards] (PRIiLEAST16): Likewise.
[C99-based-standards] (PRIoLEAST16): Likewise.
[C99-based-standards] (PRIuLEAST16): Likewise.
[C99-based-standards] (PRIxLEAST16): Likewise.
[C99-based-standards] (PRIXLEAST16): Likewise.
[C99-based-standards] (SCNdLEAST16): Likewise.
[C99-based-standards] (SCNiLEAST16): Likewise.
[C99-based-standards] (SCNoLEAST16): Likewise.
[C99-based-standards] (SCNuLEAST16): Likewise.
[C99-based-standards] (SCNxLEAST16): Likewise.
[C99-based-standards] (PRIdFAST16): Likewise.
[C99-based-standards] (PRIiFAST16): Likewise.
[C99-based-standards] (PRIoFAST16): Likewise.
[C99-based-standards] (PRIuFAST16): Likewise.
[C99-based-standards] (PRIxFAST16): Likewise.
[C99-based-standards] (PRIXFAST16): Likewise.
[C99-based-standards] (SCNdFAST16): Likewise.
[C99-based-standards] (SCNiFAST16): Likewise.
[C99-based-standards] (SCNoFAST16): Likewise.
[C99-based-standards] (SCNuFAST16): Likewise.
[C99-based-standards] (SCNxFAST16): Likewise.
[C99-based-standards] (PRId32): Likewise.
[C99-based-standards] (PRIi32): Likewise.
[C99-based-standards] (PRIo32): Likewise.
[C99-based-standards] (PRIu32): Likewise.
[C99-based-standards] (PRIx32): Likewise.
[C99-based-standards] (PRIX32): Likewise.
[C99-based-standards] (SCNd32): Likewise.
[C99-based-standards] (SCNi32): Likewise.
[C99-based-standards] (SCNo32): Likewise.
[C99-based-standards] (SCNu32): Likewise.
[C99-based-standards] (SCNx32): Likewise.
[C99-based-standards] (PRIdLEAST32): Likewise.
[C99-based-standards] (PRIiLEAST32): Likewise.
[C99-based-standards] (PRIoLEAST32): Likewise.
[C99-based-standards] (PRIuLEAST32): Likewise.
[C99-based-standards] (PRIxLEAST32): Likewise.
[C99-based-standards] (PRIXLEAST32): Likewise.
[C99-based-standards] (SCNdLEAST32): Likewise.
[C99-based-standards] (SCNiLEAST32): Likewise.
[C99-based-standards] (SCNoLEAST32): Likewise.
[C99-based-standards] (SCNuLEAST32): Likewise.
[C99-based-standards] (SCNxLEAST32): Likewise.
[C99-based-standards] (PRIdFAST32): Likewise.
[C99-based-standards] (PRIiFAST32): Likewise.
[C99-based-standards] (PRIoFAST32): Likewise.
[C99-based-standards] (PRIuFAST32): Likewise.
[C99-based-standards] (PRIxFAST32): Likewise.
[C99-based-standards] (PRIXFAST32): Likewise.
[C99-based-standards] (SCNdFAST32): Likewise.
[C99-based-standards] (SCNiFAST32): Likewise.
[C99-based-standards] (SCNoFAST32): Likewise.
[C99-based-standards] (SCNuFAST32): Likewise.
[C99-based-standards] (SCNxFAST32): Likewise.
[C99-based-standards] (PRId64): Likewise.
[C99-based-standards] (PRIi64): Likewise.
[C99-based-standards] (PRIo64): Likewise.
[C99-based-standards] (PRIu64): Likewise.
[C99-based-standards] (PRIx64): Likewise.
[C99-based-standards] (PRIX64): Likewise.
[C99-based-standards] (SCNd64): Likewise.
[C99-based-standards] (SCNi64): Likewise.
[C99-based-standards] (SCNo64): Likewise.
[C99-based-standards] (SCNu64): Likewise.
[C99-based-standards] (SCNx64): Likewise.
[C99-based-standards] (PRIdLEAST64): Likewise.
[C99-based-standards] (PRIiLEAST64): Likewise.
[C99-based-standards] (PRIoLEAST64): Likewise.
[C99-based-standards] (PRIuLEAST64): Likewise.
[C99-based-standards] (PRIxLEAST64): Likewise.
[C99-based-standards] (PRIXLEAST64): Likewise.
[C99-based-standards] (SCNdLEAST64): Likewise.
[C99-based-standards] (SCNiLEAST64): Likewise.
[C99-based-standards] (SCNoLEAST64): Likewise.
[C99-based-standards] (SCNuLEAST64): Likewise.
[C99-based-standards] (SCNxLEAST64): Likewise.
[C99-based-standards] (PRIdFAST64): Likewise.
[C99-based-standards] (PRIiFAST64): Likewise.
[C99-based-standards] (PRIoFAST64): Likewise.
[C99-based-standards] (PRIuFAST64): Likewise.
[C99-based-standards] (PRIxFAST64): Likewise.
[C99-based-standards] (PRIXFAST64): Likewise.
[C99-based-standards] (SCNdFAST64): Likewise.
[C99-based-standards] (SCNiFAST64): Likewise.
[C99-based-standards] (SCNoFAST64): Likewise.
[C99-based-standards] (SCNuFAST64): Likewise.
[C99-based-standards] (SCNxFAST64): Likewise.
[C99-based-standards] (PRIdMAX): Likewise.
[C99-based-standards] (PRIiMAX): Likewise.
[C99-based-standards] (PRIoMAX): Likewise.
[C99-based-standards] (PRIuMAX): Likewise.
[C99-based-standards] (PRIxMAX): Likewise.
[C99-based-standards] (PRIXMAX): Likewise.
[C99-based-standards] (SCNdMAX): Likewise.
[C99-based-standards] (SCNiMAX): Likewise.
[C99-based-standards] (SCNoMAX): Likewise.
[C99-based-standards] (SCNuMAX): Likewise.
[C99-based-standards] (SCNxMAX): Likewise.
[C99-based-standards] (PRIdPTR): Likewise.
[C99-based-standards] (PRIiPTR): Likewise.
[C99-based-standards] (PRIoPTR): Likewise.
[C99-based-standards] (PRIuPTR): Likewise.
[C99-based-standards] (PRIxPTR): Likewise.
[C99-based-standards] (PRIXPTR): Likewise.
[C99-based-standards] (SCNdPTR): Likewise.
[C99-based-standards] (SCNiPTR): Likewise.
[C99-based-standards] (SCNoPTR): Likewise.
[C99-based-standards] (SCNuPTR): Likewise.
[C99-based-standards] (SCNxPTR): Likewise.
* conform/data/iso646.h-data [ISO C standards] (*_t): Do not
allow.
* conform/data/stdint.h-data: Update comments to clarify
requirements.
[C99-based standards] (INT8_MIN): Use macro-int-constant. Specify
type.
[C99-based standards] (INT8_MAX): Likewise.
[C99-based standards] (INT16_MIN): Likewise.
[C99-based standards] (INT16_MAX): Likewise.
[C99-based standards] (INT32_MIN): Likewise.
[C99-based standards] (INT32_MAX): Likewise.
[C99-based standards] (INT64_MIN): Likewise.
[C99-based standards] (INT64_MAX): Likewise.
[C99-based standards] (UINT8_MAX): Likewise.
[C99-based standards] (UINT16_MAX): Likewise.
[C99-based standards] (UINT32_MAX): Likewise.
[C99-based standards] (UINT64_MAX): Likewise.
[C99-based standards] (INT_LEAST8_MIN): Likewise.
[C99-based standards] (INT_LEAST8_MAX): Likewise.
[C99-based standards] (INT_LEAST16_MIN): Likewise.
[C99-based standards] (INT_LEAST16_MAX): Likewise.
[C99-based standards] (INT_LEAST32_MIN): Likewise.
[C99-based standards] (INT_LEAST32_MAX): Likewise.
[C99-based standards] (INT_LEAST64_MIN): Likewise.
[C99-based standards] (INT_LEAST64_MAX): Likewise.
[C99-based standards] (UINT_LEAST8_MAX): Likewise.
[C99-based standards] (UINT_LEAST16_MAX): Likewise.
[C99-based standards] (UINT_LEAST32_MAX): Likewise.
[C99-based standards] (UINT_LEAST64_MAX): Likewise.
[C99-based standards] (INT_FAST8_MIN): Likewise.
[C99-based standards] (INT_FAST8_MAX): Likewise.
[C99-based standards] (INT_FAST16_MIN): Likewise.
[C99-based standards] (INT_FAST16_MAX): Likewise.
[C99-based standards] (INT_FAST32_MIN): Likewise.
[C99-based standards] (INT_FAST32_MAX): Likewise.
[C99-based standards] (INT_FAST64_MIN): Likewise.
[C99-based standards] (INT_FAST64_MAX): Likewise.
[C99-based standards] (UINT_FAST8_MAX): Likewise.
[C99-based standards] (UINT_FAST16_MAX): Likewise.
[C99-based standards] (UINT_FAST32_MAX): Likewise.
[C99-based standards] (UINT_FAST64_MAX): Likewise.
[C99-based standards] (INTPTR_MIN): Likewise.
[C99-based standards] (INTPTR_MAX): Likewise.
[C99-based standards] (UINTPTR_MAX): Likewise.
[C99-based standards] (INTMAX_MIN): Likewise.
[C99-based standards] (INTMAX_MAX): Likewise.
[C99-based standards] (UINTMAX_MAX): Likewise.
[C99-based standards] (PTRDIFF_MIN): Likewise.
[C99-based standards] (PTRDIFF_MAX): Likewise.
[C99-based standards] (SIG_ATOMIC_MAX): Likewise.
[C99-based standards] (SIZE_MAX): Likewise.
[C99-based standards] (WCHAR_MAX): Likewise.
[C99-based standards] (WINT_MAX): Likewise.
[C99-based standards] (SIG_ATOMIC_MIN): Likewise. Do not specify
constraint on value.
[C99-based standards] (WCHAR_MIN): Likewise.
[C99-based standards] (WINT_MIN): Likewise.
[C99-based standards] (*_t): Allow.
* conform/data/tgmath.h-data [XOPEN2K || POSIX2008]: Change
condition to [!ISO && !POSIX && !XPG3 && !XPG4 && !UNIX98].
Include math.h-data and complex.h-data. Remove all expectations
of math.h and complex.h contents.
* conform/data/uchar.h-data [ISO11] (c16rtomb): Remove stray "16"
at end of line.
* conform/data/wchar.h-data [!ISO && !POSIX && !XPG3 && !XPG4]
(struct tm): Expect tag.
[C99-based-standards] (wcstof): Expect function.
[C99-based-standards] (wcstold): Likewise.
[C99-based-standards] (wcstoll): Likewise.
[C99-based-standards] (wcstoull): Likewise.
[!ISO && !POSIX && !XPG3 && !XPG4] (WCHAR_MIN): Use
macro-int-constant. Specify type.
[!ISO && !POSIX && !XPG3 && !XPG4] (WCHAR_MAX): Likewise. Specify
constraint on value.
[!ISO && !POSIX && !XPG3 && !XPG4] (WEOF): Use macro-constant.
Specify type.
[!ISO && !POSIX && !XPG3 && !XPG4] (NULL): Use macro-constant.
Specify value.
[ISO C standards]: Do not allow headers.
[!ISO && !POSIX && !XPG3 && !XPG4] (wcs*): Change to
wcs[abcdefghijklmnopqrstuvwxyz]*.
[ISO C standards] (*_t): Do not allow.
* conform/data/wctype.h-data [C99-based standards] (iswblank):
Expect function.
[XOPEN2K8 || POSIX2008] (iswblank_l): Likewise.
[!ISO && !POSIX && !XPG3 && !XPG4] (WEOF): Use macro-constant.
Specify type.
[ISO C standards]: Do not allow headers.
[!ISO && !POSIX && !XPG3 && !XPG4] (is*): Change to
is[abcdefghijklmnopqrstuvwxyz]*.
[!ISO && !POSIX && !XPG3 && !XPG4] (to*): Change to
to[abcdefghijklmnopqrstuvwxyz]*.
[ISO C standards] (*_t): Do not allow.
* conform/data/stdalign.h-data: New file.
* conform/data/stdbool.h-data: Likewise.
* conform/data/stdnoreturn.h-data: Likewise.
2012-11-07 Andreas Jaeger <aj@suse.de>
[BZ #14809]

View File

@ -20,16 +20,16 @@ if (@headers == ()) {
"sys/stat.h", "sys/socket.h", "sys/shm.h", "sys/sem.h",
"sys/select.h", "sys/resource.h", "sys/msg.h", "sys/mman.h",
"sys/ipc.h", "syslog.h", "stropts.h", "strings.h", "string.h",
"stdlib.h", "stdio.h", "stdint.h", "stddef.h", "stdarg.h",
"spawn.h", "signal.h", "setjmp.h", "semaphore.h", "search.h",
"sched.h", "regex.h", "pwd.h", "pthread.h", "poll.h",
"nl_types.h", "netinet/tcp.h", "netinet/in.h", "net/if.h",
"netdb.h", "ndbm.h", "mqueue.h", "monetary.h", "math.h",
"locale.h", "libgen.h", "limits.h", "langinfo.h", "iso646.h",
"inttypes.h", "iconv.h", "grp.h", "glob.h", "ftw.h", "fnmatch.h",
"fmtmsg.h", "float.h", "fenv.h", "fcntl.h", "errno.h", "dlfcn.h",
"dirent.h", "ctype.h", "cpio.h", "complex.h", "assert.h",
"arpa/inet.h", "aio.h");
"stdnoreturn.h", "stdlib.h", "stdio.h", "stdint.h", "stddef.h",
"stdbool.h", "stdarg.h", "stdalign.h", "spawn.h", "signal.h",
"setjmp.h", "semaphore.h", "search.h", "sched.h", "regex.h",
"pwd.h", "pthread.h", "poll.h", "nl_types.h", "netinet/tcp.h",
"netinet/in.h", "net/if.h", "netdb.h", "ndbm.h", "mqueue.h",
"monetary.h", "math.h", "locale.h", "libgen.h", "limits.h",
"langinfo.h", "iso646.h", "inttypes.h", "iconv.h", "grp.h",
"glob.h", "ftw.h", "fnmatch.h", "fmtmsg.h", "float.h", "fenv.h",
"fcntl.h", "errno.h", "dlfcn.h", "dirent.h", "ctype.h", "cpio.h",
"complex.h", "assert.h", "arpa/inet.h", "aio.h");
}
$CFLAGS{"ISO"} = "-ansi";
@ -777,7 +777,7 @@ while ($#headers >= 0) {
while ($#allowheader >= 0) {
my($ah) = pop @allowheader;
open (ALLOW, "$CC -E -D$standard - < data/$ah-data |");
open (ALLOW, "$CC -E -D$standard -x c data/$ah-data |");
acontrol: while (<ALLOW>) {
chop;
next acontrol if (/^#/);

View File

@ -79,4 +79,35 @@ macro-function {double complex} CMPLX (double, double)
macro-function {float complex} CMPLXF (float, float)
macro-function {long double complex} CMPLXL (long double, long double)
# endif
allow cerf
allow cerfc
allow cexp2
allow cexpm1
allow clog10
allow clog1p
allow clog2
allow clgamma
allow ctgamma
allow cerff
allow cerfcf
allow cexp2f
allow cexpm1f
allow clog10f
allow clog1pf
allow clog2f
allow clgammaf
allow ctgammaf
allow cerfl
allow cerfcl
allow cexp2l
allow cexpm1l
allow clog10l
allow clog1pl
allow clog2l
allow clgammal
allow ctgammal
#endif

View File

@ -1,14 +1,5 @@
#if !defined ISO && !defined POSIX && !defined XPG3 && !defined XPG4 && !defined UNIX98
type int8_t
type int16_t
type int32_t
type int64_t
type uint8_t
type uint16_t
type uint32_t
type uint64_t
type intptr_t
type uintptr_t
#include "stdint.h-data"
type imaxdiv_t
element imaxdiv_t intmax_t rem
@ -21,125 +12,166 @@ function uintmax_t strtoumax (const char*, char**, int)
function intmax_t wcstoimax (const __gwchar_t*, __gwchar_t**, int)
function uintmax_t wcstoumax (const __gwchar_t*, __gwchar_t**, int)
allow PRI*
allow SCN*
allow *_t
macro PRId8
macro PRIi8
macro PRIo8
macro PRIu8
macro PRIx8
macro PRIX8
macro SCNd8
macro SCNi8
macro SCNo8
macro SCNu8
macro SCNx8
macro PRIdLEAST8
macro PRIiLEAST8
macro PRIoLEAST8
macro PRIuLEAST8
macro PRIxLEAST8
macro PRIXLEAST8
macro SCNdLEAST8
macro SCNiLEAST8
macro SCNoLEAST8
macro SCNuLEAST8
macro SCNxLEAST8
macro PRIdFAST8
macro PRIiFAST8
macro PRIoFAST8
macro PRIuFAST8
macro PRIxFAST8
macro PRIXFAST8
macro SCNdFAST8
macro SCNiFAST8
macro SCNoFAST8
macro SCNuFAST8
macro SCNxFAST8
// Now the content of <stdint.h>. Update this whenever <stdint.h> changed.
type int8_t
type int16_t
type int32_t
type int64_t
type uint8_t
type uint16_t
type uint32_t
type uint64_t
macro PRId16
macro PRIi16
macro PRIo16
macro PRIu16
macro PRIx16
macro PRIX16
macro SCNd16
macro SCNi16
macro SCNo16
macro SCNu16
macro SCNx16
macro PRIdLEAST16
macro PRIiLEAST16
macro PRIoLEAST16
macro PRIuLEAST16
macro PRIxLEAST16
macro PRIXLEAST16
macro SCNdLEAST16
macro SCNiLEAST16
macro SCNoLEAST16
macro SCNuLEAST16
macro SCNxLEAST16
macro PRIdFAST16
macro PRIiFAST16
macro PRIoFAST16
macro PRIuFAST16
macro PRIxFAST16
macro PRIXFAST16
macro SCNdFAST16
macro SCNiFAST16
macro SCNoFAST16
macro SCNuFAST16
macro SCNxFAST16
type int_least8_t
type int_least16_t
type int_least32_t
type int_least64_t
type uint_least8_t
type uint_least16_t
type uint_least32_t
type uint_least64_t
macro PRId32
macro PRIi32
macro PRIo32
macro PRIu32
macro PRIx32
macro PRIX32
macro SCNd32
macro SCNi32
macro SCNo32
macro SCNu32
macro SCNx32
macro PRIdLEAST32
macro PRIiLEAST32
macro PRIoLEAST32
macro PRIuLEAST32
macro PRIxLEAST32
macro PRIXLEAST32
macro SCNdLEAST32
macro SCNiLEAST32
macro SCNoLEAST32
macro SCNuLEAST32
macro SCNxLEAST32
macro PRIdFAST32
macro PRIiFAST32
macro PRIoFAST32
macro PRIuFAST32
macro PRIxFAST32
macro PRIXFAST32
macro SCNdFAST32
macro SCNiFAST32
macro SCNoFAST32
macro SCNuFAST32
macro SCNxFAST32
type int_fast8_t
type int_fast16_t
type int_fast32_t
type int_fast64_t
type uint_fast8_t
type uint_fast16_t
type uint_fast32_t
type uint_fast64_t
macro PRId64
macro PRIi64
macro PRIo64
macro PRIu64
macro PRIx64
macro PRIX64
macro SCNd64
macro SCNi64
macro SCNo64
macro SCNu64
macro SCNx64
macro PRIdLEAST64
macro PRIiLEAST64
macro PRIoLEAST64
macro PRIuLEAST64
macro PRIxLEAST64
macro PRIXLEAST64
macro SCNdLEAST64
macro SCNiLEAST64
macro SCNoLEAST64
macro SCNuLEAST64
macro SCNxLEAST64
macro PRIdFAST64
macro PRIiFAST64
macro PRIoFAST64
macro PRIuFAST64
macro PRIxFAST64
macro PRIXFAST64
macro SCNdFAST64
macro SCNiFAST64
macro SCNoFAST64
macro SCNuFAST64
macro SCNxFAST64
type intptr_t
type uintptr_t
macro PRIdMAX
macro PRIiMAX
macro PRIoMAX
macro PRIuMAX
macro PRIxMAX
macro PRIXMAX
macro SCNdMAX
macro SCNiMAX
macro SCNoMAX
macro SCNuMAX
macro SCNxMAX
type intmax_t
type uintmax_t
macro PRIdPTR
macro PRIiPTR
macro PRIoPTR
macro PRIuPTR
macro PRIxPTR
macro PRIXPTR
macro SCNdPTR
macro SCNiPTR
macro SCNoPTR
macro SCNuPTR
macro SCNxPTR
constant INT8_MIN == -128
constant INT8_MAX == 127
constant INT16_MIN == -32768
constant INT16_MAX == 32767
constant INT32_MIN == -2147483647-1
constant INT32_MAX == 2147483647
constant INT64_MIN == -9223372036854775807LL-1
constant INT64_MAX == 9223372036854775807LL
constant UINT8_MAX == 255
constant UINT16_MAX == 65535
constant UINT32_MAX == 4294967295U
constant UINT64_MAX == 18446744073709551615ULL
constant INT_LEAST8_MIN <= -128
constant INT_LEAST8_MAX >= 127
constant INT_LEAST16_MIN <= -32768
constant INT_LEAST16_MAX >= 32767
constant INT_LEAST32_MIN <= -2147483647-1
constant INT_LEAST32_MAX >= 2147483647
constant INT_LEAST64_MIN <= -9223372036854775807LL-1
constant INT_LEAST64_MAX >= 9223372036854775807LL
constant UINT_LEAST8_MAX >= 255
constant UINT_LEAST16_MAX >= 65535
constant UINT_LEAST32_MAX >= 4294967295U
constant UINT_LEAST64_MAX >= 18446744073709551615ULL
constant INT_FAST8_MIN <= -128
constant INT_FAST8_MAX >= 127
constant INT_FAST16_MIN <= -32768
constant INT_FAST16_MAX >= 32767
constant INT_FAST32_MIN <= -2147483647-1
constant INT_FAST32_MAX >= 2147483647
constant INT_FAST64_MIN <= -9223372036854775807LL-1
constant INT_FAST64_MAX >= 9223372036854775807LL
constant UINT_FAST8_MAX >= 255
constant UINT_FAST16_MAX >= 65535
constant UINT_FAST32_MAX >= 4294967295U
constant UINT_FAST64_MAX >= 18446744073709551615ULL
constant INTPTR_MIN <= -32768
constant INTPTR_MAX >= 32767
constant UINTPTR_MAX >= 65535
constant INTMAX_MIN <= -9223372036854775807LL-1
constant INTMAX_MAX >= 9223372036854775807LL
constant UINTMAX_MAX >= 18446744073709551615ULL
constant PTRDIFF_MIN <= -65535
constant PTRDIFF_MAX >= 65535
constant SIG_ATOMIC_MIN <= -127
constant SIG_ATOMIC_MAX >= 127
constant SIZE_MAX >= 65535
constant WCHAR_MIN <= -127
constant WCHAR_MAX >= 127
constant WINT_MIN <= -127
constant WINT_MAX >= 127
macro INT8_C
macro INT16_C
macro INT32_C
macro INT64_C
macro UINT8_C
macro UINT16_C
macro UINT32_C
macro UINT64_C
macro INTMAX_C
macro UINTMAX_C
// The following expressions are not entirely correct but the current
// poorfnmatch implementation doesn't grok the right form.
allow INT*
allow UINT*
allow PRI[Xa-z]*
allow SCN[Xa-z]*
#endif

View File

@ -11,5 +11,7 @@ macro or_eq
macro xor
macro xor_eq
#if !defined ISO && !defined ISO99 && !defined ISO11
allow *_t
#endif
#endif

View File

@ -0,0 +1,6 @@
#if defined ISO11
macro alignas
macro alignof
macro-int-constant __alignas_is_defined {int} == 1
macro-int-constant __alignof_is_defined {int} == 1
#endif

View File

@ -0,0 +1,10 @@
#if !defined ISO && !defined POSIX && !defined XPG3 && !defined XPG4 && !defined UNIX98
macro bool
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
allow *_t
#endif
#endif

View File

@ -1,4 +1,5 @@
#if !defined ISO && !defined POSIX && !defined XPG3 && !defined XPG4 && !defined UNIX98
// The requirements for some types and corresponding macros are from POSIX.
type int8_t
type int16_t
type int32_t
@ -32,71 +33,71 @@ type uintptr_t
type intmax_t
type uintmax_t
constant INT8_MIN == -128
constant INT8_MAX == 127
constant INT16_MIN == -32768
constant INT16_MAX == 32767
constant INT32_MIN == -2147483647-1
constant INT32_MAX == 2147483647
constant INT64_MIN == -9223372036854775807LL-1
constant INT64_MAX == 9223372036854775807LL
macro-int-constant INT8_MIN {promoted:int8_t} == -128
macro-int-constant INT8_MAX {promoted:int8_t} == 127
macro-int-constant INT16_MIN {promoted:int16_t} == -32768
macro-int-constant INT16_MAX {promoted:int16_t} == 32767
macro-int-constant INT32_MIN {promoted:int32_t} == -2147483647-1
macro-int-constant INT32_MAX {promoted:int32_t} == 2147483647
macro-int-constant INT64_MIN {promoted:int64_t} == -9223372036854775807LL-1
macro-int-constant INT64_MAX {promoted:int64_t} == 9223372036854775807LL
constant UINT8_MAX == 255
constant UINT16_MAX == 65535
constant UINT32_MAX == 4294967295U
constant UINT64_MAX == 18446744073709551615ULL
macro-int-constant UINT8_MAX {promoted:uint8_t} == 255
macro-int-constant UINT16_MAX {promoted:uint16_t} == 65535
macro-int-constant UINT32_MAX {promoted:uint32_t} == 4294967295U
macro-int-constant UINT64_MAX {promoted:uint64_t} == 18446744073709551615ULL
constant INT_LEAST8_MIN <= -128
constant INT_LEAST8_MAX >= 127
constant INT_LEAST16_MIN <= -32768
constant INT_LEAST16_MAX >= 32767
constant INT_LEAST32_MIN <= -2147483647-1
constant INT_LEAST32_MAX >= 2147483647
constant INT_LEAST64_MIN <= -9223372036854775807LL-1
constant INT_LEAST64_MAX >= 9223372036854775807LL
macro-int-constant INT_LEAST8_MIN {promoted:int_least8_t} <= -128
macro-int-constant INT_LEAST8_MAX {promoted:int_least8_t} >= 127
macro-int-constant INT_LEAST16_MIN {promoted:int_least16_t} <= -32768
macro-int-constant INT_LEAST16_MAX {promoted:int_least16_t} >= 32767
macro-int-constant INT_LEAST32_MIN {promoted:int_least32_t} <= -2147483647-1
macro-int-constant INT_LEAST32_MAX {promoted:int_least32_t} >= 2147483647
macro-int-constant INT_LEAST64_MIN {promoted:int_least64_t} <= -9223372036854775807LL-1
macro-int-constant INT_LEAST64_MAX {promoted:int_least64_t} >= 9223372036854775807LL
constant UINT_LEAST8_MAX >= 255
constant UINT_LEAST16_MAX >= 65535
constant UINT_LEAST32_MAX >= 4294967295U
constant UINT_LEAST64_MAX >= 18446744073709551615ULL
macro-int-constant UINT_LEAST8_MAX {promoted:uint_least8_t} >= 255
macro-int-constant UINT_LEAST16_MAX {promoted:uint_least16_t} >= 65535
macro-int-constant UINT_LEAST32_MAX {promoted:uint_least32_t} >= 4294967295U
macro-int-constant UINT_LEAST64_MAX {promoted:uint_least64_t} >= 18446744073709551615ULL
constant INT_FAST8_MIN <= -128
constant INT_FAST8_MAX >= 127
constant INT_FAST16_MIN <= -32768
constant INT_FAST16_MAX >= 32767
constant INT_FAST32_MIN <= -2147483647-1
constant INT_FAST32_MAX >= 2147483647
constant INT_FAST64_MIN <= -9223372036854775807LL-1
constant INT_FAST64_MAX >= 9223372036854775807LL
macro-int-constant INT_FAST8_MIN {promoted:int_fast8_t} <= -128
macro-int-constant INT_FAST8_MAX {promoted:int_fast8_t} >= 127
macro-int-constant INT_FAST16_MIN {promoted:int_fast16_t} <= -32768
macro-int-constant INT_FAST16_MAX {promoted:int_fast16_t} >= 32767
macro-int-constant INT_FAST32_MIN {promoted:int_fast32_t} <= -2147483647-1
macro-int-constant INT_FAST32_MAX {promoted:int_fast32_t} >= 2147483647
macro-int-constant INT_FAST64_MIN {promoted:int_fast64_t} <= -9223372036854775807LL-1
macro-int-constant INT_FAST64_MAX {promoted:int_fast64_t} >= 9223372036854775807LL
constant UINT_FAST8_MAX >= 255
constant UINT_FAST16_MAX >= 65535
constant UINT_FAST32_MAX >= 4294967295U
constant UINT_FAST64_MAX >= 18446744073709551615ULL
macro-int-constant UINT_FAST8_MAX {promoted:uint_fast8_t} >= 255
macro-int-constant UINT_FAST16_MAX {promoted:uint_fast16_t} >= 65535
macro-int-constant UINT_FAST32_MAX {promoted:uint_fast32_t} >= 4294967295U
macro-int-constant UINT_FAST64_MAX {promoted:uint_fast64_t} >= 18446744073709551615ULL
constant INTPTR_MIN <= -32768
constant INTPTR_MAX >= 32767
macro-int-constant INTPTR_MIN {promoted:intptr_t} <= -32768
macro-int-constant INTPTR_MAX {promoted:intptr_t} >= 32767
constant UINTPTR_MAX >= 65535
macro-int-constant UINTPTR_MAX {promoted:uintptr_t} >= 65535
constant INTMAX_MIN <= -9223372036854775807LL-1
constant INTMAX_MAX >= 9223372036854775807LL
macro-int-constant INTMAX_MIN {promoted:intmax_t} <= -9223372036854775807LL-1
macro-int-constant INTMAX_MAX {promoted:intmax_t} >= 9223372036854775807LL
constant UINTMAX_MAX >= 18446744073709551615ULL
macro-int-constant UINTMAX_MAX {promoted:uintmax_t} >= 18446744073709551615ULL
constant PTRDIFF_MIN <= -65535
constant PTRDIFF_MAX >= 65535
macro-int-constant PTRDIFF_MIN {promoted:__PTRDIFF_TYPE__} <= -65535
macro-int-constant PTRDIFF_MAX {promoted:__PTRDIFF_TYPE__} >= 65535
constant SIG_ATOMIC_MIN <= -127
constant SIG_ATOMIC_MAX >= 127
macro-int-constant SIG_ATOMIC_MIN {promoted:__SIG_ATOMIC_TYPE__}
macro-int-constant SIG_ATOMIC_MAX {promoted:__SIG_ATOMIC_TYPE__} >= 127
constant SIZE_MAX >= 65535
macro-int-constant SIZE_MAX {promoted:__SIZE_TYPE__} >= 65535
constant WCHAR_MIN <= -127
constant WCHAR_MAX >= 127
macro-int-constant WCHAR_MIN {promoted:__WCHAR_TYPE__}
macro-int-constant WCHAR_MAX {promoted:__WCHAR_TYPE__} >= 127
constant WINT_MIN <= -127
constant WINT_MAX >= 127
macro-int-constant WINT_MIN {promoted:__WINT_TYPE__}
macro-int-constant WINT_MAX {promoted:__WINT_TYPE__} >= 127
macro INT8_C
macro INT16_C
@ -110,7 +111,9 @@ macro INTMAX_C
macro UINTMAX_C
// The following expressions are not entirely correct but the current
// fnamtch implementation doesn't grok the right form.
// poorfnmatch implementation doesn't grok the right forms (INT*_MAX,
// INT*_MIN, INT*_C, UINT*_MAX, UINT*_MIN, UINT*_C, int*_t, uint*_t).
allow INT*
allow UINT*
allow *_t
#endif

View File

@ -0,0 +1,3 @@
#if defined ISO11
macro noreturn
#endif

View File

@ -1,364 +1,7 @@
#if defined XOPEN2K || defined POSIX2008
// <math.h>
macro fpclassify
macro isfinite
macro isinf
macro isnan
macro isnormal
macro signbit
macro isgreater
macro isgreaterequal
macro isless
macro islessequal
macro islessgreater
macro isunordered
#if !defined ISO && !defined POSIX && !defined XPG3 && !defined XPG4 && !defined UNIX98
#include "math.h-data"
#include "complex.h-data"
#ifndef POSIX2008
constant M_E
constant M_LOG2E
constant M_LOG10E
constant M_LN2
constant M_LN10
constant M_PI
constant M_PI_2
constant M_PI_4
constant M_1_PI
constant M_2_PI
constant M_2_SQRTPI
constant M_SQRT2
constant M_SQRT1_2
constant MAXFLOAT
#endif
constant HUGE_VAL
constant HUGE_VALF
constant HUGE_VALL
constant INFINITY
constant NAN
macro FP_INFINITE
macro FP_NAN
macro FP_NORMAL
macro FP_SUBNORMAL
macro FP_ZERO
optional-macro FP_FAST_FMA
optional-macro FP_FAST_FMAF
optional-macro FP_FAST_FMAL
constant FP_ILOGB0
constant FP_ILOGBNAN
macro MATH_ERRNO == 1
macro MATH_ERREXCEPT == 2
macro math_errhandling
function double acos (double)
function double asin (double)
function double atan (double)
function double atan2 (double, double)
function double ceil (double)
function double copysign (double, double)
function double cos (double)
function double cosh (double)
function double exp (double)
function double exp2 (double)
function double fabs (double)
function double floor (double)
function double fmod (double, double)
function double frexp (double, int*)
function double ldexp (double, int)
function double log (double)
function double log10 (double)
function double log2 (double)
function double modf (double, double*)
function double pow (double, double)
function double sin (double)
function double sinh (double)
function double sqrt (double)
function double tan (double)
function double tanh (double)
function double erf (double)
function double erfc (double)
#if defined XPG3 || defined XPG4 || defined UNIX98
function double gamma (double)
#endif
function double hypot (double, double)
#if !defined POSIX && !defined POSIX2008
function double j0 (double)
function double j1 (double)
function double jn (int, double)
#endif
function double lgamma (double)
function double tgamma (double)
#if !defined POSIX && !defined POSIX2008
function double y0 (double)
function double y1 (double)
function double yn (int, double)
#endif
function double acosh (double)
function double asinh (double)
function double atanh (double)
function double cbrt (double)
function double expm1 (double)
function int ilogb (double)
function double log1p (double)
function double logb (double)
function double nextafter (double, double)
function double nexttoward (double, long double)
function double nearbyint (double)
function double remainder (double, double)
function double rint (double)
function double round (double)
function double trunc (double)
function long lrint (double)
function {long long} llrint (double)
function long lround (double)
function {long long} llround (double)
function double remquo (double, double, int*)
#if defined XPG3 && defined XPG4 && defined UNIX98 && defined XOPEN2K
function double scalb (double, double)
#endif
function double scalbn (double, int)
function double scalbln (double, long)
function double fdim (double, double)
function double fmax (double, double)
function double fmin (double, double)
function double fma (double, double, double)
function double nan (const char*)
// variable signgam
allow signgam
function float acosf (float)
function float asinf (float)
function float atanf (float)
function float atan2f (float, float)
function float ceilf (float)
function float copysignf (float, float)
function float cosf (float)
function float coshf (float)
function float expf (float)
function float exp2f (float)
function float fabsf (float)
function float floorf (float)
function float fmodf (float, float)
function float frexpf (float, int*)
function float ldexpf (float, int)
function float logf (float)
function float log10f (float)
function float log2f (float)
function float modff (float, float*)
function float powf (float, float)
function float sinf (float)
function float sinhf (float)
function float sqrtf (float)
function float tanf (float)
function float tanhf (float)
function float erff (float)
function float erfcf (float)
#if defined XPG3 || defined XPG4 || defined UNIX98
function float gammaf (float)
#endif
function float hypotf (float, float)
#if !defined POSIX && !defined POSIX2008
function float j0f (float)
function float j1f (float)
function float jnf (int, float)
#endif
function float lgammaf (float)
function float tgammaf (float)
#if !defined POSIX && !defined POSIX2008
function float y0f (float)
function float y1f (float)
function float ynf (int, float)
#endif
function float acoshf (float)
function float asinhf (float)
function float atanhf (float)
function float cbrtf (float)
function float expm1f (float)
function int ilogbf (float)
function float log1pf (float)
function float logbf (float)
function float nextafterf (float, float)
function float nexttowardf (float, long double)
function float nearbyintf (float)
function float remainderf (float, float)
function float rintf (float)
function float roundf (float)
function float truncf (float)
function long lrintf (float)
function {long long} llrintf (float)
function long lroundf (float)
function {long long} llroundf (float)
function float remquof (float, float, int*)
#if defined XPG3 && defined XPG4 && defined UNIX98 && defined XOPEN2K
function float scalbf (float, float)
#endif
function float scalbnf (float, int)
function float scalblnf (float, long)
function float fdimf (float, float)
function float fmaxf (float, float)
function float fminf (float, float)
function float fmaf (float, float, float)
function float nanf (const char*)
function {long double} acosl (long double)
function {long double} asinl (long double)
function {long double} atanl (long double)
function {long double} atan2l (long double, long double)
function {long double} ceill (long double)
function {long double} copysignl (long double, long double)
function {long double} cosl (long double)
function {long double} coshl (long double)
function {long double} expl (long double)
function {long double} exp2l (long double)
function {long double} fabsl (long double)
function {long double} floorl (long double)
function {long double} fmodl (long double, long double)
function {long double} frexpl (long double, int*)
function {long double} ldexpl (long double, int)
function {long double} logl (long double)
function {long double} log10l (long double)
function {long double} log2l (long double)
function {long double} modfl (long double, long double*)
function {long double} powl (long double, long double)
function {long double} sinl (long double)
function {long double} sinhl (long double)
function {long double} sqrtl (long double)
function {long double} tanl (long double)
function {long double} tanhl (long double)
function {long double} erfl (long double)
function {long double} erfcl (long double)
#if defined XPG3 || defined XPG4 || defined UNIX98
function {long double} gammal (long double)
#endif
function {long double} hypotl (long double, long double)
#if !defined POSIX && !defined POSIX2008
function {long double} j0l (long double)
function {long double} j1l (long double)
function {long double} jnl (int, long double)
#endif
function {long double} lgammal (long double)
function {long double} tgammal (long double)
#if !defined POSIX && !defined POSIX2008
function {long double} y0l (long double)
function {long double} y1l (long double)
function {long double} ynl (int, long double)
#endif
function {long double} acoshl (long double)
function {long double} asinhl (long double)
function {long double} atanhl (long double)
function {long double} cbrtl (long double)
function {long double} expm1l (long double)
function int ilogbl (long double)
function {long double} log1pl (long double)
function {long double} logbl (long double)
function {long double} nextafterl (long double, long double)
function {long double} nexttowardl (long double, long double)
function {long double} nearbyintl (long double)
function {long double} remainderl (long double, long double)
function {long double} rintl (long double)
function {long double} roundl (long double)
function {long double} truncl (long double)
function long lrintl (long double)
function {long long} llrintl (long double)
function long lroundl (long double)
function {long long} llroundl (long double)
function {long double} remquol (long double, long double, int*)
#if defined XPG3 && defined XPG4 && defined UNIX98 && defined XOPEN2K
function {long double} scalbl (long double, long double)
#endif
function {long double} scalbnl (long double, int)
function {long double} scalblnl (long double, long)
function {long double} fdiml (long double, long double)
function {long double} fmaxl (long double, long double)
function {long double} fminl (long double, long double)
function {long double} fmal (long double, long double, long double)
function {long double} nanl (const char*)
allow *_t
allow FP_*
// <complex.h>
macro complex
macro _Complex_I
optional-macro imaginary
optional-macro _Imaginary_I
macro I
function double cabs (double complex)
function {double complex} cacos (double complex)
function {double complex} cacosh (double complex)
function double carg (double complex)
function {double complex} casin (double complex)
function {double complex} casinh (double complex)
function {double complex} catan (double complex)
function {double complex} catanh (double complex)
function {double complex} ccos (double complex)
function {double complex} ccosh (double complex)
function {double complex} cexp (double complex)
function double cimag (double complex)
function {double complex} clog (double complex)
function {double complex} conj (double complex)
function {double complex} cpow (double complex, double complex)
function {double complex} cproj (double complex)
function double creal (double complex)
function {double complex} csin (double complex)
function {double complex} csinh (double complex)
function {double complex} csqrt (double complex)
function {double complex} ctan (double complex)
function {double complex} ctanh (double complex)
function float cabsf (float complex)
function {float complex} cacosf (float complex)
function {float complex} cacoshf (float complex)
function float cargf (float complex)
function {float complex} casinf (float complex)
function {float complex} casinhf (float complex)
function {float complex} catanf (float complex)
function {float complex} catanhf (float complex)
function {float complex} ccosf (float complex)
function {float complex} ccoshf (float complex)
function {float complex} cexpf (float complex)
function float cimagf (float complex)
function {float complex} clogf (float complex)
function {float complex} conjf (float complex)
function {float complex} cpowf (float complex, float complex)
function {float complex} cprojf (float complex)
function float crealf (float complex)
function {float complex} csinf (float complex)
function {float complex} csinhf (float complex)
function {float complex} csqrtf (float complex)
function {float complex} ctanf (float complex)
function {float complex} ctanhf (float complex)
function {long double} cabsl (long double complex)
function {long double complex} cacosl (long double complex)
function {long double complex} cacoshl (long double complex)
function {long double} cargl (long double complex)
function {long double complex} casinhl (long double complex)
function {long double complex} casinl (long double complex)
function {long double complex} catanhl (long double complex)
function {long double complex} catanl (long double complex)
function {long double complex} ccoshl (long double complex)
function {long double complex} ccosl (long double complex)
function {long double complex} cexpl (long double complex)
function {long double} cimagl (long double complex)
function {long double complex} clogl (long double complex)
function {long double complex} conjl (long double complex)
function {long double complex} cpowl (long double complex, long double complex)
function {long double complex} cprojl (long double complex)
function {long double} creall (long double complex)
function {long double complex} csinhl (long double complex)
function {long double complex} csinl (long double complex)
function {long double complex} csqrtl (long double complex)
function {long double complex} ctanhl (long double complex)
function {long double complex} ctanl (long double complex)
// <tgmath.h>
macro acos
macro asin
macro atan

View File

@ -5,7 +5,7 @@ type char16_t
type char32_t
function size_t mbrtoc16 (char16_t *, const char *, size_t, mbstate_t *)
function size_t c16rtomb (char *, char16_t, mbstate_t *)16
function size_t c16rtomb (char *, char16_t, mbstate_t *)
function size_t mbrtoc32 (char32_t *, const char *, size_t, mbstate_t *)
function size_t c32rtomb (char *, char32_t, mbstate_t *)

View File

@ -14,6 +14,7 @@ type size_t
# if defined XOPEN2K8 || defined POSIX2008
type locale_t
# endif
tag {struct tm}
function wint_t btowc (int)
function int fwprintf (FILE*, const wchar_t*, ...)
@ -104,9 +105,19 @@ function size_t wcsrtombs (char*, const wchar_t**, size_t, mbstate_t*)
function size_t wcsspn (const wchar_t*, const wchar_t*)
function {wchar_t*} wcsstr (const wchar_t*, const wchar_t*)
function double wcstod (const wchar_t*, wchar_t**)
# ifndef UNIX98
function float wcstof (const wchar_t*, wchar_t**)
function {long double} wcstold (const wchar_t*, wchar_t**)
# endif
function {wchar_t*} wcstok (wchar_t*, const wchar_t*, wchar_t**)
function {long int} wcstol (const wchar_t*, wchar_t**, int)
# ifndef UNIX98
function {long long int} wcstoll (const wchar_t*, wchar_t**, int)
# endif
function {unsigned long int} wcstoul (const wchar_t*, wchar_t**, int)
# ifndef UNIX98
function {unsigned long long int} wcstoull (const wchar_t*, wchar_t**, int)
# endif
# if defined UNIX98 || defined XOPEN2K
function {wchar_t*} wcswcs (const wchar_t*, const wchar_t*)
# endif
@ -130,11 +141,12 @@ function {wchar_t*} wmemset (wchar_t*, wchar_t, size_t)
function int wprintf (const wchar_t*, ...)
function int wscanf (const wchar_t*, ...)
macro WCHAR_MAX
macro WCHAR_MIN
macro WEOF
macro NULL
macro-int-constant WCHAR_MIN {promoted:wchar_t}
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
allow-header ctype.h
allow-header stdio.h
allow-header stdarg.h
@ -142,7 +154,10 @@ allow-header stdlib.h
allow-header string.h
allow-header stddef.h
allow-header time.h
#endif
allow wcs*
allow wcs[abcdefghijklmnopqrstuvwxyz]*
#if !defined ISO && !defined ISO99 && !defined ISO11
allow *_t
#endif
#endif

View File

@ -8,6 +8,9 @@ type locale_t
function int iswalnum (wint_t)
function int iswalpha (wint_t)
# ifndef UNIX98
function int iswblank (wint_t)
# endif
function int iswcntrl (wint_t)
function int iswdigit (wint_t)
function int iswgraph (wint_t)
@ -26,6 +29,7 @@ function wctype_t wctype (const char*)
# if defined XOPEN2K8 || defined POSIX2008
function int iswalnum_l (wint_t, locale_t)
function int iswalpha_l (wint_t, locale_t)
function int iswblank_l (wint_t, locale_t)
function int iswcntrl_l (wint_t, locale_t)
function int iswdigit_l (wint_t, locale_t)
function int iswgraph_l (wint_t, locale_t)
@ -43,8 +47,9 @@ function wctrans_t wctrans_l (const char*, locale_t)
function wctype_t wctype_l (const char*, locale_t)
# endif
macro WEOF
macro-constant WEOF {wint_t}
#if !defined ISO && !defined ISO99 && !defined ISO11
allow-header ctype.h
allow-header stdio.h
allow-header stdarg.h
@ -53,8 +58,11 @@ allow-header string.h
allow-header stddef.h
allow-header time.h
allow-header wchar.h
#endif
allow is*
allow to*
allow is[abcdefghijklmnopqrstuvwxyz]*
allow to[abcdefghijklmnopqrstuvwxyz]*
#if !defined ISO && !defined ISO99 && !defined ISO11
allow *_t
#endif
#endif