about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog159
-rw-r--r--conform/data/assert.h-data2
-rw-r--r--conform/data/ctype.h-data12
-rw-r--r--conform/data/errno.h-data162
-rw-r--r--conform/data/float.h-data82
-rw-r--r--conform/data/limits.h-data43
-rw-r--r--conform/data/stddef.h-data8
7 files changed, 322 insertions, 146 deletions
diff --git a/ChangeLog b/ChangeLog
index c5eabf180e..fcd2bcad1a 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,164 @@
 2012-05-01  Joseph Myers  <joseph@codesourcery.com>
 
+	* conform/data/assert.h-data [ISO || ISO99 || ISO11] (*_t): Do not
+	allow.
+	* conform/data/ctype.h-data [C99-based standards] (isblank):
+	Expect function.
+	(is*): Change to is[abcdefghijklmnopqrstuvwxyz]*.
+	(to*): Change to to[abcdefghijklmnopqrstuvwxyz]*.
+	[ISO || ISO99 || ISO11] (*_t): Do not allow.
+	* conform/data/errno.h-data (EDOM): Use macro-int-constant.
+	Specify type.  Require positive value.
+	(EILSEQ): Likewise.
+	(ERANGE): Likewise.
+	[ISO || POSIX] (EILSEQ): Do not expect.
+	[!ISO && !ISO99 && !ISO11] (E2BIG): Use macro-int-constant.
+	Specify type.  Require positive value.
+	[!ISO && !ISO99 && !ISO11] (EACCES): Likewise.
+	[!ISO && !ISO99 && !ISO11] (EADDRINUSE): Likewise.
+	[!ISO && !ISO99 && !ISO11] (EADDRNOTAVAIL): Likewise.
+	[!ISO && !ISO99 && !ISO11] (EAFNOSUPPORT): Likewise.
+	[!ISO && !ISO99 && !ISO11] (EAGAIN): Likewise.
+	[!ISO && !ISO99 && !ISO11] (EALREADY): Likewise.
+	[!ISO && !ISO99 && !ISO11] (EBADF): Likewise.
+	[!ISO && !ISO99 && !ISO11] (EBADMSG): Likewise.
+	[!ISO && !ISO99 && !ISO11] (EBUSY): Likewise.
+	[!ISO && !ISO99 && !ISO11] (ECANCELED): Likewise.
+	[!ISO && !ISO99 && !ISO11] (ECHILD): Likewise.
+	[!ISO && !ISO99 && !ISO11] (ECONNABORTED): Likewise.
+	[!ISO && !ISO99 && !ISO11] (ECONNREFUSED): Likewise.
+	[!ISO && !ISO99 && !ISO11] (ECONNRESET): Likewise.
+	[!ISO && !ISO99 && !ISO11] (EDEADLK): Likewise.
+	[!ISO && !ISO99 && !ISO11] (EDESTADDRREQ): Likewise.
+	[!ISO && !ISO99 && !ISO11] (EDQUOT): Likewise.
+	[!ISO && !ISO99 && !ISO11] (EEXIST): Likewise.
+	[!ISO && !ISO99 && !ISO11] (EFAULT): Likewise.
+	[!ISO && !ISO99 && !ISO11] (EFBIG): Likewise.
+	[!ISO && !ISO99 && !ISO11] (EHOSTUNREACH): Likewise.
+	[!ISO && !ISO99 && !ISO11] (EIDRM): Likewise.
+	[!ISO && !ISO99 && !ISO11] (EINPROGRESS): Likewise.
+	[!ISO && !ISO99 && !ISO11] (EINTR): Likewise.
+	[!ISO && !ISO99 && !ISO11] (EINVAL): Likewise.
+	[!ISO && !ISO99 && !ISO11] (EIO): Likewise.
+	[!ISO && !ISO99 && !ISO11] (EISCONN): Likewise.
+	[!ISO && !ISO99 && !ISO11] (EISDIR): Likewise.
+	[!ISO && !ISO99 && !ISO11] (ELOOP): Likewise.
+	[!ISO && !ISO99 && !ISO11] (EMFILE): Likewise.
+	[!ISO && !ISO99 && !ISO11] (EMLINK): Likewise.
+	[!ISO && !ISO99 && !ISO11] (EMSGSIZE): Likewise.
+	[!ISO && !ISO99 && !ISO11] (EMULTIHOP): Likewise.
+	[!ISO && !ISO99 && !ISO11] (ENAMETOOLONG): Likewise.
+	[!ISO && !ISO99 && !ISO11] (ENETDOWN): Likewise.
+	[!ISO && !ISO99 && !ISO11] (ENETUNREACH): Likewise.
+	[!ISO && !ISO99 && !ISO11] (ENFILE): Likewise.
+	[!ISO && !ISO99 && !ISO11] (ENOBUFS): Likewise.
+	[!ISO && !ISO99 && !ISO11] (ENODATA): Likewise.
+	[!ISO && !ISO99 && !ISO11] (ENODEV): Likewise.
+	[!ISO && !ISO99 && !ISO11] (ENOENT): Likewise.
+	[!ISO && !ISO99 && !ISO11] (ENOEXEC): Likewise.
+	[!ISO && !ISO99 && !ISO11] (ENOLCK): Likewise.
+	[!ISO && !ISO99 && !ISO11] (ENOLINK): Likewise.
+	[!ISO && !ISO99 && !ISO11] (ENOMEM): Likewise.
+	[!ISO && !ISO99 && !ISO11] (ENOMSG): Likewise.
+	[!ISO && !ISO99 && !ISO11] (ENOPROTOOPT): Likewise.
+	[!ISO && !ISO99 && !ISO11] (ENOSPC): Likewise.
+	[!ISO && !ISO99 && !ISO11] (ENOSR): Likewise.
+	[!ISO && !ISO99 && !ISO11] (ENOSTR): Likewise.
+	[!ISO && !ISO99 && !ISO11] (ENOSYS): Likewise.
+	[!ISO && !ISO99 && !ISO11] (ENOTCONN): Likewise.
+	[!ISO && !ISO99 && !ISO11] (ENOTDIR): Likewise.
+	[!ISO && !ISO99 && !ISO11] (ENOTEMPTY): Likewise.
+	[!ISO && !ISO99 && !ISO11] (ENOTSOCK): Likewise.
+	[!ISO && !ISO99 && !ISO11] (ENOTSUP): Likewise.
+	[!ISO && !ISO99 && !ISO11] (ENOTTY): Likewise.
+	[!ISO && !ISO99 && !ISO11] (ENXIO): Likewise.
+	[!ISO && !ISO99 && !ISO11] (EOPNOTSUPP): Likewise.
+	[!ISO && !ISO99 && !ISO11] (EOVERFLOW): Likewise.
+	[!ISO && !ISO99 && !ISO11] (EPERM): Likewise.
+	[!ISO && !ISO99 && !ISO11] (EPIPE): Likewise.
+	[!ISO && !ISO99 && !ISO11] (EPROTO): Likewise.
+	[!ISO && !ISO99 && !ISO11] (EPROTONOSUPPORT): Likewise.
+	[!ISO && !ISO99 && !ISO11] (EPROTOTYPE): Likewise.
+	[!ISO && !ISO99 && !ISO11] (EROFS): Likewise.
+	[!ISO && !ISO99 && !ISO11] (ESPIPE): Likewise.
+	[!ISO && !ISO99 && !ISO11] (ESRCH): Likewise.
+	[!ISO && !ISO99 && !ISO11] (ESTALE): Likewise.
+	[!ISO && !ISO99 && !ISO11] (ETIME): Likewise.
+	[!ISO && !ISO99 && !ISO11] (ETIMEDOUT): Likewise.
+	[!ISO && !ISO99 && !ISO11] (ETXTBSY): Likewise.
+	[!ISO && !ISO99 && !ISO11] (EWOULDBLOCK): Likewise.
+	[!ISO && !ISO99 && !ISO11] (EXDEV): Likewise.
+	[XOPEN2K8 || defined POSIX2008] (ENOTRECOVERABLE): Likewise.
+	[XOPEN2K8 || defined POSIX2008] (EOWNERDEAD): Likewise.
+	* conform/data/float.h-data (FLT_RADIX): Use macro-int-constant.
+	Require >= 2.
+	(FLT_ROUNDS): Expect as macro, not constant.
+	(FLT_MANT_DIG): Use macro-int-constant.
+	(DBL_MANT_DIG): Likewise.
+	(LDBL_MANT_DIG): Likewise.
+	(FLT_DIG): Likewise.
+	(DBL_DIG): Likewise.
+	(LDBL_DIG): Likewise.
+	(FLT_MIN_EXP): Use macro-int-constant.  Require < 0.
+	(DBL_MIN_EXP): Likewise.
+	(LDBL_MIN_EXP): Likewise.
+	(FLT_MAX_EXP): Use macro-int-constant.
+	(DBL_MAX_EXP): Likewise.
+	(LDBL_MAX_EXP): Likewise.
+	(FLT_MAX_10_EXP): Likewise.
+	(DBL_MAX_10_EXP): Likewise.
+	(LDBL_MAX_10_EXP): Likewise.
+	(FLT_MAX): Use macro-constant.
+	(DBL_MAX): Likewise.
+	(LDBL_MAX): Likewise.
+	(FLT_EPSILON): Use macro-constant.  Give upper bound.
+	(DBL_EPSILON): Likewise.
+	(LDBL_EPSILON): Likewise.
+	(FLT_MIN): Likewise.
+	(DBL_MIN): Likewise.
+	(LDBL_MIN): Likewise.
+	[C99-based standards] (DECIMAL_DIG): Use macro-int-constant.
+	[C99-based standards] (FLT_EVAL_METHOD): Likewise.
+	[ISO11] (DBL_HAS_SUBNORM): Use macro-int-constant.
+	[ISO11] (FLT_HAS_SUBNORM): Likewise.
+	[ISO11] (LDBL_HAS_SUBNORM): Likewise.
+	[ISO11] (DBL_DECIMAL_DIG): Likewise.
+	[ISO11] (FLT_DECIMAL_DIG): Likewise.
+	[ISO11] (LDBL_DECIMAL_DIG): Likewise.
+	[ISO11] (DBL_TRUE_MIN): Use macro-constant.
+	[ISO11] (FLT_TRUE_MIN): Likewise.
+	[ISO11] (LDBL_TRUE_MIN): Likewise.
+	[ISO || ISO99 || ISO11] (*_t): Do not allow.
+	* conform/data/limits.h-data (CHAR_BIT): Use macro-int-constant.
+	(SCHAR_MIN): Use macro-int-constant.  Specify type.
+	(SCHAR_MAX): Likewise.
+	(UCHAR_MAX): Likewise.
+	(CHAR_MIN): Likewise.
+	(CHAR_MAX): Likewise.
+	(MB_LEN_MAX): Use macro-int-constant.
+	(SHRT_MIN): Use macro-int-constant.  Specify type.
+	(SHRT_MAX): Likewise.
+	(USHRT_MAX): Likewise.
+	(INT_MAX): Likewise.
+	(INT_MIN): Use macro-int-constant.  Specify type.  Make upper
+	bound negative.
+	(UINT_MAX): Use macro-int-constant.  Specify type.  Suffix lower
+	bound with "U".
+	(LONG_MAX): Use macro-int-constant.  Specify type.  Suffix lower
+	bound with "L".
+	(LONG_MIN): Use macro-int-constant.  Specify type.  Make upper
+	bound negative.  Suffix upper bound with "L".
+	(ULONG_MAX): Use macro-int-constant.  Specify type.  Suffix lower
+	bound with "UL".
+	[C99-based standards] (LLONG_MIN): Use macro-int-constant.
+	Specify type.
+	[C99-based standards] (LLONG_MAX): Likewise.
+	[C99-based standards] (ULLONG_MAX): Likewise.
+	* conform/data/stddef.h-data (NULL): Use macro-constant.  Require
+	== 0.
+	[ISO11] (max_align_t): Require type.
+	[ISO || ISO99 || ISO11] (*_t): Do not allow.
+
 	* conform/conformtest.pl ($CFLAGS_namespace): Define separately
 	from $CFLAGS, without defining away __attribute__ calls.
 	(checknamespace): Use $CFLAGS_namespace.
diff --git a/conform/data/assert.h-data b/conform/data/assert.h-data
index 9c3cc046c6..acdfef99e1 100644
--- a/conform/data/assert.h-data
+++ b/conform/data/assert.h-data
@@ -4,4 +4,6 @@ macro assert
 macro static_assert
 #endif
 
+#if !defined ISO && !defined ISO99 && !defined ISO11
 allow *_t
+#endif
diff --git a/conform/data/ctype.h-data b/conform/data/ctype.h-data
index e2c6019d50..3ee21c9b7d 100644
--- a/conform/data/ctype.h-data
+++ b/conform/data/ctype.h-data
@@ -12,6 +12,10 @@ function int isxdigit (int)
 function int tolower (int)
 function int toupper (int)
 
+#if !defined ISO && !defined POSIX && !defined XPG3 && !defined XPG4 && !defined UNIX98
+function int isblank (int)
+#endif
+
 #if !defined ISO && !defined ISO99 && !defined ISO11 && !defined POSIX && !defined POSIX2008
 function int isascii (int)
 function int toascii (int)
@@ -39,9 +43,9 @@ function int tolower_l (int, locale_t)
 function int toupper_l (int, locale_t)
 # endif
 
-// The following is not entirely correct.  It should be is[a-z]* but the
-// replacement fnmatch implementation does not grok it.
-allow is*
-allow to*
+allow is[abcdefghijklmnopqrstuvwxyz]*
+allow to[abcdefghijklmnopqrstuvwxyz]*
 
+#if !defined ISO && !defined ISO99 && !defined ISO11
 allow *_t
+#endif
diff --git a/conform/data/errno.h-data b/conform/data/errno.h-data
index 328687f8dc..eaf6c210eb 100644
--- a/conform/data/errno.h-data
+++ b/conform/data/errno.h-data
@@ -1,90 +1,92 @@
-constant EDOM
-constant EILSEQ
-constant ERANGE
+macro-int-constant EDOM {int} > 0
+#if !defined ISO && !defined POSIX
+macro-int-constant EILSEQ {int} > 0
+#endif
+macro-int-constant ERANGE {int} > 0
 
 // variable int errno
 allow errno
 
 #if !defined ISO && !defined ISO99 && !defined ISO11
-constant E2BIG
-constant EACCES
-constant EADDRINUSE
-constant EADDRNOTAVAIL
-constant EAFNOSUPPORT
-constant EAGAIN
-constant EALREADY
-constant EBADF
-constant EBADMSG
-constant EBUSY
-constant ECANCELED
-constant ECHILD
-constant ECONNABORTED
-constant ECONNREFUSED
-constant ECONNRESET
-constant EDEADLK
-constant EDESTADDRREQ
-constant EDQUOT
-constant EEXIST
-constant EFAULT
-constant EFBIG
-constant EHOSTUNREACH
-constant EIDRM
-constant EINPROGRESS
-constant EINTR
-constant EINVAL
-constant EIO
-constant EISCONN
-constant EISDIR
-constant ELOOP
-constant EMFILE
-constant EMLINK
-constant EMSGSIZE
-constant EMULTIHOP
-constant ENAMETOOLONG
-constant ENETDOWN
-constant ENETUNREACH
-constant ENFILE
-constant ENOBUFS
-constant ENODATA
-constant ENODEV
-constant ENOENT
-constant ENOEXEC
-constant ENOLCK
-constant ENOLINK
-constant ENOMEM
-constant ENOMSG
-constant ENOPROTOOPT
-constant ENOSPC
-constant ENOSR
-constant ENOSTR
-constant ENOSYS
-constant ENOTCONN
-constant ENOTDIR
-constant ENOTEMPTY
-constant ENOTSOCK
-constant ENOTSUP
-constant ENOTTY
-constant ENXIO
-constant EOPNOTSUPP
-constant EOVERFLOW
-constant EPERM
-constant EPIPE
-constant EPROTO
-constant EPROTONOSUPPORT
-constant EPROTOTYPE
-constant EROFS
-constant ESPIPE
-constant ESRCH
-constant ESTALE
-constant ETIME
-constant ETIMEDOUT
-constant ETXTBSY
-constant EWOULDBLOCK
-constant EXDEV
+macro-int-constant E2BIG {int} > 0
+macro-int-constant EACCES {int} > 0
+macro-int-constant EADDRINUSE {int} > 0
+macro-int-constant EADDRNOTAVAIL {int} > 0
+macro-int-constant EAFNOSUPPORT {int} > 0
+macro-int-constant EAGAIN {int} > 0
+macro-int-constant EALREADY {int} > 0
+macro-int-constant EBADF {int} > 0
+macro-int-constant EBADMSG {int} > 0
+macro-int-constant EBUSY {int} > 0
+macro-int-constant ECANCELED {int} > 0
+macro-int-constant ECHILD {int} > 0
+macro-int-constant ECONNABORTED {int} > 0
+macro-int-constant ECONNREFUSED {int} > 0
+macro-int-constant ECONNRESET {int} > 0
+macro-int-constant EDEADLK {int} > 0
+macro-int-constant EDESTADDRREQ {int} > 0
+macro-int-constant EDQUOT {int} > 0
+macro-int-constant EEXIST {int} > 0
+macro-int-constant EFAULT {int} > 0
+macro-int-constant EFBIG {int} > 0
+macro-int-constant EHOSTUNREACH {int} > 0
+macro-int-constant EIDRM {int} > 0
+macro-int-constant EINPROGRESS {int} > 0
+macro-int-constant EINTR {int} > 0
+macro-int-constant EINVAL {int} > 0
+macro-int-constant EIO {int} > 0
+macro-int-constant EISCONN {int} > 0
+macro-int-constant EISDIR {int} > 0
+macro-int-constant ELOOP {int} > 0
+macro-int-constant EMFILE {int} > 0
+macro-int-constant EMLINK {int} > 0
+macro-int-constant EMSGSIZE {int} > 0
+macro-int-constant EMULTIHOP {int} > 0
+macro-int-constant ENAMETOOLONG {int} > 0
+macro-int-constant ENETDOWN {int} > 0
+macro-int-constant ENETUNREACH {int} > 0
+macro-int-constant ENFILE {int} > 0
+macro-int-constant ENOBUFS {int} > 0
+macro-int-constant ENODATA {int} > 0
+macro-int-constant ENODEV {int} > 0
+macro-int-constant ENOENT {int} > 0
+macro-int-constant ENOEXEC {int} > 0
+macro-int-constant ENOLCK {int} > 0
+macro-int-constant ENOLINK {int} > 0
+macro-int-constant ENOMEM {int} > 0
+macro-int-constant ENOMSG {int} > 0
+macro-int-constant ENOPROTOOPT {int} > 0
+macro-int-constant ENOSPC {int} > 0
+macro-int-constant ENOSR {int} > 0
+macro-int-constant ENOSTR {int} > 0
+macro-int-constant ENOSYS {int} > 0
+macro-int-constant ENOTCONN {int} > 0
+macro-int-constant ENOTDIR {int} > 0
+macro-int-constant ENOTEMPTY {int} > 0
+macro-int-constant ENOTSOCK {int} > 0
+macro-int-constant ENOTSUP {int} > 0
+macro-int-constant ENOTTY {int} > 0
+macro-int-constant ENXIO {int} > 0
+macro-int-constant EOPNOTSUPP {int} > 0
+macro-int-constant EOVERFLOW {int} > 0
+macro-int-constant EPERM {int} > 0
+macro-int-constant EPIPE {int} > 0
+macro-int-constant EPROTO {int} > 0
+macro-int-constant EPROTONOSUPPORT {int} > 0
+macro-int-constant EPROTOTYPE {int} > 0
+macro-int-constant EROFS {int} > 0
+macro-int-constant ESPIPE {int} > 0
+macro-int-constant ESRCH {int} > 0
+macro-int-constant ESTALE {int} > 0
+macro-int-constant ETIME {int} > 0
+macro-int-constant ETIMEDOUT {int} > 0
+macro-int-constant ETXTBSY {int} > 0
+macro-int-constant EWOULDBLOCK {int} > 0
+macro-int-constant EXDEV {int} > 0
 
 # if defined XOPEN2K8 || defined POSIX2008
-constant ENOTRECOVERABLE
-constant EOWNERDEAD
+macro-int-constant ENOTRECOVERABLE {int} > 0
+macro-int-constant EOWNERDEAD {int} > 0
 # endif
 
 allow E*
diff --git a/conform/data/float.h-data b/conform/data/float.h-data
index 49d953aa6d..350802ac29 100644
--- a/conform/data/float.h-data
+++ b/conform/data/float.h-data
@@ -1,60 +1,62 @@
-macro FLT_RADIX
+macro-int-constant FLT_RADIX >= 2
 
-constant FLT_ROUNDS
+macro FLT_ROUNDS
 
-macro FLT_MANT_DIG
-macro DBL_MANT_DIG
-macro LDBL_MANT_DIG
+macro-int-constant FLT_MANT_DIG
+macro-int-constant DBL_MANT_DIG
+macro-int-constant LDBL_MANT_DIG
 
-constant FLT_DIG >= 6
-constant DBL_DIG >= 10
-constant LDBL_DIG >= 10
+macro-int-constant FLT_DIG >= 6
+macro-int-constant DBL_DIG >= 10
+macro-int-constant LDBL_DIG >= 10
 
-macro FLT_MIN_EXP
-macro DBL_MIN_EXP
-macro LDBL_MIN_EXP
+macro-int-constant FLT_MIN_EXP < 0
+macro-int-constant DBL_MIN_EXP < 0
+macro-int-constant LDBL_MIN_EXP < 0
 
-constant FLT_MIN_10_EXP <= -37
-constant DBL_MIN_10_EXP <= -37
-constant LDBL_MIN_10_EXP <= -37
+macro-int-constant FLT_MIN_10_EXP <= -37
+macro-int-constant DBL_MIN_10_EXP <= -37
+macro-int-constant LDBL_MIN_10_EXP <= -37
 
-macro FLT_MAX_EXP
-macro DBL_MAX_EXP
-macro LDBL_MAX_EXP
+macro-int-constant FLT_MAX_EXP
+macro-int-constant DBL_MAX_EXP
+macro-int-constant LDBL_MAX_EXP
 
-constant FLT_MAX_10_EXP >= 37
-constant DBL_MAX_10_EXP >= 37
-constant LDBL_MAX_10_EXP >= 37
+macro-int-constant FLT_MAX_10_EXP >= 37
+macro-int-constant DBL_MAX_10_EXP >= 37
+macro-int-constant LDBL_MAX_10_EXP >= 37
 
-constant FLT_MAX >= 1.0E37
-constant DBL_MAX >= 1.0E37
-constant LDBL_MAX >= 1.0E37
+macro-constant FLT_MAX >= 1.0E37
+macro-constant DBL_MAX >= 1.0E37
+macro-constant LDBL_MAX >= 1.0E37
 
-macro FLT_EPSILON
-macro DBL_EPSILON
-macro LDBL_EPSILON
+macro-constant FLT_EPSILON <= 1.0E-5
+macro-constant DBL_EPSILON <= 1.0E-9
+macro-constant LDBL_EPSILON <= 1.0E-9
 
-macro FLT_MIN
-macro DBL_MIN
-macro LDBL_MIN
+macro-constant FLT_MIN <= 1.0E-37
+macro-constant DBL_MIN <= 1.0E-37
+macro-constant LDBL_MIN <= 1.0E-37
 
 #if !defined ISO && !defined XPG3 && !defined XPG4 && !defined POSIX && !defined UNIX98
-constant DECIMAL_DIG >= 10
-constant FLT_EVAL_METHOD
+macro-int-constant DECIMAL_DIG >= 10
+macro-int-constant FLT_EVAL_METHOD
 #endif
 
 #if defined ISO11
-constant DBL_HAS_SUBNORM
-constant FLT_HAS_SUBNORM
-constant LDBL_HAS_SUBNORM
+macro-int-constant DBL_HAS_SUBNORM
+macro-int-constant FLT_HAS_SUBNORM
+macro-int-constant LDBL_HAS_SUBNORM
 
-constant DBL_DECIMAL_DIG >= 10
-constant FLT_DECIMAL_DIG >= 6
-constant LDBL_DECIMAL_DIG >= 10
+macro-int-constant DBL_DECIMAL_DIG >= 10
+macro-int-constant FLT_DECIMAL_DIG >= 6
+macro-int-constant LDBL_DECIMAL_DIG >= 10
 
-constant DBL_TRUE_MIN <= 1E-37
-constant FLT_TRUE_MIN <= 1E-37
-constant LDBL_TRUE_MIN <= 1E-37
+macro-constant DBL_TRUE_MIN <= 1E-37
+macro-constant FLT_TRUE_MIN <= 1E-37
+macro-constant LDBL_TRUE_MIN <= 1E-37
 #endif
 
+#if !defined ISO && !defined ISO99 && !defined ISO11
 allow *_t
+#endif
diff --git a/conform/data/limits.h-data b/conform/data/limits.h-data
index 8f7a0010c2..dec178a517 100644
--- a/conform/data/limits.h-data
+++ b/conform/data/limits.h-data
@@ -1,28 +1,29 @@
-constant CHAR_BIT >= 8
-constant SCHAR_MIN <= -127
-constant SCHAR_MAX >= 127
-constant UCHAR_MAX >= 255
+macro-int-constant CHAR_BIT >= 8
+macro-int-constant SCHAR_MIN {promoted:signed char} <= -127
+macro-int-constant SCHAR_MAX {promoted:signed char} >= 127
+macro-int-constant UCHAR_MAX {promoted:unsigned char} >= 255
 #ifdef __CHAR_UNSIGNED__
-constant CHAR_MIN == 0
-constant CHAR_MAX == UCHAR_MAX
+macro-int-constant CHAR_MIN {promoted:char} == 0
+macro-int-constant CHAR_MAX {promoted:char} == UCHAR_MAX
 #else
-constant CHAR_MIN == SCHAR_MIN
-constant CHAR_MAX == SCHAR_MAX
+macro-int-constant CHAR_MIN {promoted:char} == SCHAR_MIN
+macro-int-constant CHAR_MAX {promoted:char} == SCHAR_MAX
 #endif
-constant MB_LEN_MAX >= 1
-constant SHRT_MIN <= -32767
-constant SHRT_MAX >= 32767
-constant USHRT_MAX >= 65535
-constant INT_MAX >= 2147483647
-constant INT_MIN <= 2147483647
-constant UINT_MAX >= 4294967295
-constant LONG_MAX >= 2147483647
-constant LONG_MIN <= 2147483647
-constant ULONG_MAX >= 4294967295
+macro-int-constant MB_LEN_MAX >= 1
+macro-int-constant SHRT_MIN {promoted:short int} <= -32767
+macro-int-constant SHRT_MAX {promoted:short int} >= 32767
+macro-int-constant USHRT_MAX {promoted:unsigned short int} >= 65535
+// The ranges for int and unsigned int are from POSIX.
+macro-int-constant INT_MAX {int} >= 2147483647
+macro-int-constant INT_MIN {int} <= -2147483647
+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
-constant LLONG_MIN <= -9223372036854775807ll
-constant LLONG_MAX >= 9223372036854775807ll
-constant ULLONG_MAX >= 18446744073709551615ull
+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
diff --git a/conform/data/stddef.h-data b/conform/data/stddef.h-data
index a9acf2dac5..9ded4f1ca0 100644
--- a/conform/data/stddef.h-data
+++ b/conform/data/stddef.h-data
@@ -1,4 +1,4 @@
-constant NULL
+macro-constant NULL == 0
 
 macro offsetof
 
@@ -6,4 +6,10 @@ type ptrdiff_t
 type wchar_t
 type size_t
 
+#if defined ISO11
+type max_align_t
+#endif
+
+#if !defined ISO && !defined ISO99 && !defined ISO11
 allow *_t
+#endif