Date: Fri, 10 Mar 2006 02:48:47 +0100 (CET) From: <pfgshield-freebsd@yahoo.com> To: freebsd-standards@FreeBSD.org Subject: Dinkum tests FreeBSD's C library Message-ID: <20060310014847.70448.qmail@web32715.mail.mud.yahoo.com>
next in thread | raw e-mail | index | archive | help
Hi again; This might be slightly outdated but nevertheless interesting: http://dinkumware.com/conform_c.html For those too lazy to look ... ______________ FreeBSD C Library C95 The following list covers the faults uncovered while testing compliance for C95. With the headers iso646.h and wchar.h missing, the coverage for C95 is minimal. assert() does not raise SIGABRT EILSEQ is not defined in errno.h The header iso646.h is not included. The header wchar.h is not included. The function mbtowc does not correctly convert "" to a wide character string. ferror fails to return an error indicator for a read of a file that was opened using fopen with an argument mode of "w". The optional math functions are not implemented for C95. (See Table 1.) C++ The same issues that were found during the C95 testing are also present when compiling for C++, plus the following. The islpha, isalnum, iscntrl, isdigit, islower, isprint, ispunct, isspace, isupper, isxdigit, tolower, and toupper functions in ctype.h are defined as macros. va_list is not defined in stdarg.h. Not all the signatures called for by the C++ Standard for memchr, strchr, strpbrk, strchr, and strstr are declared in string.h. Not all the signatures called for by the C++ Standard for wmemchr, wcspbrk, wcschr, wcsrchr, and wcsstr are declared in wchar.h. The float and the long double versions of ceil, fabs, floor, fmod, frexp, ldexp, modf, acos, asin, atan, atan2, cos, sin, tan, cosh, exp, log, log10, sinh, sqrt and tanh functions are not declared in math.h. The long int overloads of the functions abs and div are not declared in stdlib.h. Overloads abs(double) and pow(double, int) in math.h give bad or inaccurate results. setjmp is not defined as a macro in setjmp.h. The functions feof, ferror, clearerr, getc, putc, getchar, and putchar in stdio.h are defined as macros. Overloads abs(long) and div(long, long) in stdlib.h are missing. C99 The same issues that were found during the C95 testing are also present when compiling for C99, plus the following. The properties for unsigned long long are not reasonable, in a #if preprocessor directive the statement ULLONG_MAX / 2 < LLONG_MAX evaluates to a nonzero. The properties for long long are not reasonable, in a #if preprocessor directive the statement LLONG_MAX < LONG_MAX evaluates to a nonzero. The hh print specifier for d, i, o, u, x, or X conversion specifier does not convert the value to a signed or unsigned char before printing. The a and A print/scan specifiers are not implemented. The e and f print specifiers display INFINITY as Inf. The C Standard indicates that [-]inf or [-]infinity are the valid representations. The F print specifier is not implemented. The e or f print specifiers display NAN as NaN. The C Standard indicates that [-]nan or [-]nan(n-char-sequence) are the valid representations. The type lldiv_t is not define in stdlib.h. The function _Exit is not declared in stdlib.h. The functions llabs, lldiv, atoll, strtof, strtold are not declared in stdlib.h. F specifier for strftime is not implemented. The header complex.h is not included. The type imaxdiv_t is not defined in inttypes.h. The functions imaxabs, imaxdiv, strtoimax, strtoumax, wcstoimax, and wcstoumax are not declared in inttypes.h. The functions nexttoward, acoshf, asinhf, atanhf, cbrtf, exp2f, expm1f, log1pf, log2f, erff, erfcf, lgammaf, tgammaf, hypotf, nexttowardf, acoshl, asinhl, atanhl, cbrtl, exp2l, expm1l, scalbnl, scalblnl, ilogbl, log1pl, log2l, logbl, erfl, erfcl, lgammal, tgammal, copysignl, fdiml, fmal, fmaxl, fminl, hypotl, remainderl, remquol, llrintl, llroundl, lrintl, lroundl, rintl, roundl, nearbyintl, nextafterl, nexttowardl, truncl, and nanl are not declared in math.h. The header tgmath.h is not included. _________________ ___________________________________ Yahoo! Mail: gratis 1GB per i messaggi e allegati da 10MB http://mail.yahoo.it
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20060310014847.70448.qmail>