This is the mail archive of the mailing list for the glibc project.

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

conformtest: Update expectations for stdio.h and stdlib.h

Continuing the review of conformtest data for ISO C standards, I
propose this patch updating the data for stdio.h and stdlib.h to
correspond more accurately with C90, C99 and C11 and to use
conformtest features to describe as many requirements of the standards
on those headers as possible.

Tested x86_64; no new failures appear for those standards.

2012-05-20  Joseph Myers  <>

	* conform/data/stdio.h-data (BUFSIZ): Use macro-int-constant.
	Require >= 256.
	(FILENAME_MAX): Use macro-int-constant.
	(FOPEN_MAX): Use macro-int-constant.  Require >= 8.
	(_IOFBF): Use macro-int-constant.
	(_IOLBF): Likewise.
	(_IONBF): Likewise.
	(SEEK_CUR): Likewise.
	(SEEK_END): Likewise.
	(SEEK_SET): Likewise.
	(TMP_MAX): Likewise.
	(EOF): Use macro-int-constant.  Require < 0.
	(NULL): Use macro-constant.  Require == 0.
	(stdin): Require type to be FILE *.
	(stdout): Likewise.
	(stderr): Likewise.
	* conform/data/stdlib.h-data (EXIT_FAILURE): Use
	(EXIT_SUCCESS): Likewise.
	(NULL): Use macro-constant.  Require == 0.
	(RAND_MAX): Use macro-int-constant.
	[ISO99 || ISO11] (lldiv_t): Require also for these standards.
	[C99-based standards] (strtof): Require function.
	[C99-based standards] (strtold): Likewise.
	[C99-based standards] (strtoll): Likewise.
	[C99-based standards] (strtoull): Likewise.
	[ISO || ISO99 || ISO11] (stddef.h): Do not allow header.
	[ISO || ISO99 || ISO11] (limits.h): Likewise.
	[ISO || ISO99 || ISO11] (math.h): Likewise.
	[ISO || ISO99 || ISO11] (sys/wait.h): Likewise.
	(str*): Change to str[abcdefghijklmnopqrstuvwxyz]*.
	[ISO || ISO99 || ISO11] (*_t): Do not allow.

diff --git a/conform/data/stdio.h-data b/conform/data/stdio.h-data
index abd3a8e..816cf9e 100644
--- a/conform/data/stdio.h-data
+++ b/conform/data/stdio.h-data
@@ -1,10 +1,10 @@
-constant BUFSIZ
-constant FILENAME_MAX
-constant FOPEN_MAX >= 8
+macro-int-constant BUFSIZ >= 256
+macro-int-constant FILENAME_MAX
+macro-int-constant FOPEN_MAX >= 8
-constant _IOFBF
-constant _IOLBF
-constant _IONBF
+macro-int-constant _IOFBF
+macro-int-constant _IOLBF
+macro-int-constant _IONBF
 #if !defined ISO && !defined ISO99 && !defined ISO11
 constant L_ctermid
@@ -12,25 +12,25 @@ constant L_ctermid
 constant L_cuserid
 # endif
-constant L_tmpnam
+macro-int-constant L_tmpnam
-constant SEEK_CUR
-constant SEEK_END
-constant SEEK_SET
+macro-int-constant SEEK_CUR
+macro-int-constant SEEK_END
+macro-int-constant SEEK_SET
-constant TMP_MAX >= 10000
+macro-int-constant TMP_MAX >= 10000
-constant EOF
+macro-int-constant EOF < 0
-constant NULL
+macro-constant NULL == 0
 #if !defined ISO && !defined ISO99 && !defined ISO11 && !defined POSIX && !defined POSIX2008
 constant P_tmpdir
-macro stdin
-macro stdout
-macro stderr
+macro stdin {FILE *}
+macro stdout {FILE *}
+macro stderr {FILE *}
 type FILE
 type fpos_t
diff --git a/conform/data/stdlib.h-data b/conform/data/stdlib.h-data
index f13bf3c..0b8dc3d 100644
--- a/conform/data/stdlib.h-data
+++ b/conform/data/stdlib.h-data
@@ -5,14 +5,14 @@ type ldiv_t
 element ldiv_t long quot
 element ldiv_t long rem
-macro EXIT_SUCCESS == 0
+macro-int-constant EXIT_FAILURE
+macro-int-constant EXIT_SUCCESS == 0
-macro NULL
-constant RAND_MAX >= 32767
+macro-constant NULL == 0
+macro-int-constant RAND_MAX >= 32767
 macro MB_CUR_MAX
-#if defined XOPEN2K || defined XOPEN2K8 || defined POSIX2008
+#if defined ISO99 || defined ISO11 || defined XOPEN2K || defined XOPEN2K8 || defined POSIX2008
 type lldiv_t
 element lldiv_t {long long} quot
 element lldiv_t {long long} rem
@@ -151,8 +151,16 @@ function void srand48 (long int)
 function void srandom (unsigned)
 function double strtod (const char*, char**)
+#if !defined ISO && !defined POSIX && !defined XPG3 && !defined XPG4 && !defined UNIX98
+function float strtof (const char*, char**)
+function {long double} strtold (const char*, char**)
 function {long int} strtol (const char*, char**, int)
 function {unsigned long int} strtoul (const char*, char**, int)
+#if !defined ISO && !defined POSIX && !defined XPG3 && !defined XPG4 && !defined UNIX98
+function {long long int} strtoll (const char*, char**, int)
+function {unsigned long long int} strtoull (const char*, char**, int)
 function int system (const char*)
 #if defined XPG3 || defined XPG4 || defined UNIX98
 function int ttyslot (void)
@@ -169,10 +177,14 @@ function {void*} valloc (size_t)
 function size_t wcstombs (char*, const wchar_t*, size_t)
 function int wctomb (char*, wchar_t)
+#if !defined ISO && !defined ISO99 && !defined ISO11
 allow-header stddef.h
 allow-header limits.h
 allow-header math.h
 allow-header sys/wait.h
-allow str*
+allow str[abcdefghijklmnopqrstuvwxyz]*
+#if !defined ISO && !defined ISO99 && !defined ISO11
 allow *_t

Joseph S. Myers

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]