summaryrefslogtreecommitdiff
path: root/conform
diff options
context:
space:
mode:
Diffstat (limited to 'conform')
-rw-r--r--conform/conformtest.pl5
-rw-r--r--conform/data/complex.h-data2
-rw-r--r--conform/data/ctype.h-data18
-rw-r--r--conform/data/dirent.h-data2
-rw-r--r--conform/data/inttypes.h-data4
-rw-r--r--conform/data/sys/select.h-data12
-rw-r--r--conform/data/sys/uio.h-data2
-rw-r--r--conform/data/time.h-data1
8 files changed, 26 insertions, 20 deletions
diff --git a/conform/conformtest.pl b/conform/conformtest.pl
index c528127cee..d324d81c53 100644
--- a/conform/conformtest.pl
+++ b/conform/conformtest.pl
@@ -1048,6 +1048,7 @@ while ($#headers >= 0) {
open (ALLOW, "$CC -E -D$dialect - < data/$ah-data |");
acontrol: while (<ALLOW>) {
+ chop;
next acontrol if (/^#/);
next acontrol if (/^[ ]*$/);
@@ -1057,8 +1058,8 @@ while ($#headers >= 0) {
push @allow, $1;
} elsif (/^typed-constant *([a-zA-Z0-9_]*) *({([^}]*)}|([^ ]*)) *([A-Za-z0-9_]*)?/) {
push @allow, 1;
- } elsif (/^type *({([^}]*)|([a-zA-Z0-9_]*))/) {
- my($type) = "$2$3";
+ } elsif (/^(type|tag) *({([^}]*)|([a-zA-Z0-9_]*))/) {
+ my($type) = "$3$4";
# Remember that this name is allowed.
if ($type =~ /^struct *(.*)/) {
diff --git a/conform/data/complex.h-data b/conform/data/complex.h-data
index 5c5eedd181..006d6e4de7 100644
--- a/conform/data/complex.h-data
+++ b/conform/data/complex.h-data
@@ -1,4 +1,4 @@
-#ifdef XOPEN2K
+#if defined XOPEN2K || defined POSIX2008
macro complex
macro _Complex_I
optional-macro imaginary
diff --git a/conform/data/ctype.h-data b/conform/data/ctype.h-data
index d082230f94..091d377bec 100644
--- a/conform/data/ctype.h-data
+++ b/conform/data/ctype.h-data
@@ -19,15 +19,9 @@ function int toascii (int)
// XPG says the following two are macros. But we test a bit more strictly.
function int _toupper (int)
function int _tolower (int)
+#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 *_t
-
-# if defined XOPEN2K8 || defined XOPEN2K8 || defined POSIX2008
+# if defined XOPEN2K8 || defined POSIX2008
type locale_t
function int isalnum_l (int, locale_t)
@@ -44,4 +38,10 @@ function int isxdigit_l (int, locale_t)
function int tolower_l (int, locale_t)
function int toupper_l (int, locale_t)
# endif
-#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 *_t
diff --git a/conform/data/dirent.h-data b/conform/data/dirent.h-data
index 761d5786b5..f1cd59cdaf 100644
--- a/conform/data/dirent.h-data
+++ b/conform/data/dirent.h-data
@@ -8,7 +8,9 @@ element {struct dirent} ino_t d_ino
# endif
element {struct dirent} char d_name []
+# if !defined POSIX && !defined POSIX2008
type ino_t
+#endif
function int closedir (DIR*)
function {DIR*} opendir (const char*)
diff --git a/conform/data/inttypes.h-data b/conform/data/inttypes.h-data
index 93e4713c95..17d2b9717a 100644
--- a/conform/data/inttypes.h-data
+++ b/conform/data/inttypes.h-data
@@ -17,8 +17,8 @@ function intmax_t imaxabs (intmax_t)
function imaxdiv_t imaxdiv (intmax_t, intmax_t)
function intmax_t strtoimax (const char*, char**, int)
function uintmax_t strtoumax (const char*, char**, int)
-function intmax_t wcstoimax (const wchar_t*, wchar_t**, int)
-function uintmax_t wcstoumax (const wchar_t*, wchar_t**, 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*
diff --git a/conform/data/sys/select.h-data b/conform/data/sys/select.h-data
index 51f7844cb6..ea890d6ae9 100644
--- a/conform/data/sys/select.h-data
+++ b/conform/data/sys/select.h-data
@@ -13,16 +13,18 @@ element {struct timespec} time_t tv_sec
element {struct timespec} long tv_nsec
type fd_set
+#if defined XPG3 || defined XPG4 || defined UNIX98
element fd_set long fds_bits []
+#endif
-function-macro void FD_CLR (int, fd_set*)
-function-macro int FD_ISSET (int, fd_set*)
-function-macro void FD_SET (int, fd_set*)
-function-macro void FD_ZERO (fd_set*)
+macro FD_CLR
+macro FD_ISSET
+macro FD_SET
+macro FD_ZERO
macro FD_SETSIZE
-#ifdef XOPEN2K
+#if defined XOPEN2K || defined POSIX2008
function int pselect (int, fd_set*, fd_set*, fd_set*, const struct timespec*, const sigset_t*)
#endif
function int select (int, fd_set*, fd_set*, fd_set*, struct timeval*)
diff --git a/conform/data/sys/uio.h-data b/conform/data/sys/uio.h-data
index 7833e72268..03d0a3bf3a 100644
--- a/conform/data/sys/uio.h-data
+++ b/conform/data/sys/uio.h-data
@@ -1,4 +1,4 @@
-#if !defined ISO && !defined POSIX && !defined POSIX2008
+#if !defined ISO && !defined POSIX
type {struct iovec}
element {struct iovec} {void*} iov_base
diff --git a/conform/data/time.h-data b/conform/data/time.h-data
index c07fe1dc3b..e2ff298ea7 100644
--- a/conform/data/time.h-data
+++ b/conform/data/time.h-data
@@ -97,3 +97,4 @@ allow tv_*
allow CLOCK_*
allow TIMER_*
allow *_t
+allow sigevent