about summary refs log tree commit diff
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