2000-10-09  Jakub Jelinek  <jakub@redhat.com>

	* sysdeps/ieee754/ldbl-128/s_nexttoward.c (__nexttoward): If x == y,
	return y not x.
	* manual/arith.texi (nextafter): Document it.
	* sysdeps/ieee754/ldbl-96/s_nexttoward.c: Fix a comment.
This commit is contained in:
Ulrich Drepper 2000-10-09 15:37:39 +00:00
parent e340a2a2e2
commit 0a7fef0159
5 changed files with 39 additions and 9 deletions

View File

@ -62,9 +62,11 @@ of the C standard (as indicated by __STDC_VERSION__):
GCC options Standard version GCC options Standard version
-ansi ISO/IEC 9899:1990 -ansi ISO/IEC 9899:1990
-std=c89 ISO/IEC 9899:1990 -std=c89 ISO/IEC 9899:1990
-std=iso9899:199409 ISO/IEC 9899:1990 as amended by Amd.1:1995 -std=iso9899:199409 ISO/IEC 9899:1990 as amended by Amd.1:1995 *
-std=c99 ISO/IEC 9899:1999 -std=c99 ISO/IEC 9899:1999
* glibc does not support this standard version.
(Note that -std=c99 is not available in GCC 2.95.2, and that no (Note that -std=c99 is not available in GCC 2.95.2, and that no
version of GCC presently existing implements the full C99 standard.) version of GCC presently existing implements the full C99 standard.)
@ -127,8 +129,8 @@ library in use, so glibc defines them in <features.h>. Programs that
test them before including any standard headers may misbehave. test them before including any standard headers may misbehave.
GCC doesn't support the optional imaginary types. Nor does it GCC doesn't support the optional imaginary types. Nor does it
understand the keyword _Complex. This has the corresponding impact on understand the keyword _Complex before GCC 3.0. This has the
the relevant headers. corresponding impact on the relevant headers.
glibc's use of extern inline conflicts with C99: in C99, extern inline glibc's use of extern inline conflicts with C99: in C99, extern inline
means that an external definition is generated as well as possibly an means that an external definition is generated as well as possibly an
@ -162,7 +164,28 @@ Issues with headers
=================== ===================
There are various technical issues with the definitions contained in There are various technical issues with the definitions contained in
glibc's headers. See glibc's headers, listed below. The list below assumes current CVS GCC
as of 2000-10-08, and relates to i686-linux; older GCC may lead to
more problems in the headers.
http://sources.redhat.com/ml/libc-alpha/2000-07/msg00259.html Note that the _t suffix is reserved by POSIX, but not by pure ISO C.
http://sources.redhat.com/ml/libc-alpha/2000-07/msg00279.html Also, the Single Unix Specification generally requires more types to
be included in headers (if _XOPEN_SOURCE is defined appropriately)
than ISO C permits.
<ctype.h> should not declare size_t.
<inttypes.h> should not declare wchar_t.
<signal.h> should not declare size_t.
<stdint.h> should not declare wchar_t.
<stdio.h> should not declare or use wchar_t, wint_t or off_t.
<wchar.h> does not support AMD1; to support it, the functions
fwprintf, fwscanf, wprintf, wscanf, swprintf, swscanf, vfwprintf,
vwprintf, vswprintf and fwide would need to be declared when
__STDC_VERSION__ >= 199409L and not just for C99.
<wctype.h> should not declare size_t.

View File

@ -1,3 +1,10 @@
2000-10-09 Jakub Jelinek <jakub@redhat.com>
* sysdeps/ieee754/ldbl-128/s_nexttoward.c (__nexttoward): If x == y,
return y not x.
* manual/arith.texi (nextafter): Document it.
* sysdeps/ieee754/ldbl-96/s_nexttoward.c: Fix a comment.
2000-10-08 Ulrich Drepper <drepper@redhat.com> 2000-10-08 Ulrich Drepper <drepper@redhat.com>
* version.h (VERSION): Bump to 2.1.95. * version.h (VERSION): Bump to 2.1.95.

View File

@ -1640,7 +1640,7 @@ false, but @code{signbit (-0.0)} will return a nonzero value.
The @code{nextafter} function returns the next representable neighbor of The @code{nextafter} function returns the next representable neighbor of
@var{x} in the direction towards @var{y}. The size of the step between @var{x} in the direction towards @var{y}. The size of the step between
@var{x} and the result depends on the type of the result. If @var{x} and the result depends on the type of the result. If
@math{@var{x} = @var{y}} the function simply returns @var{x}. If either @math{@var{x} = @var{y}} the function simply returns @var{y}. If either
value is @code{NaN}, @code{NaN} is returned. Otherwise value is @code{NaN}, @code{NaN} is returned. Otherwise
a value corresponding to the value of the least significant bit in the a value corresponding to the value of the least significant bit in the
mantissa is added or subtracted, depending on the direction. mantissa is added or subtracted, depending on the direction.

View File

@ -50,7 +50,7 @@ static char rcsid[] = "$NetBSD: $";
((iy>=0x7fff000000000000LL)&&((iy-0x7fff000000000000LL)|ly)!=0)) ((iy>=0x7fff000000000000LL)&&((iy-0x7fff000000000000LL)|ly)!=0))
/* y is nan */ /* y is nan */
return x+y; return x+y;
if((long double) x==y) return x; /* x=y, return x */ if((long double) x==y) return y; /* x=y, return y */
if((ix|lx)==0) { /* x == 0 */ if((ix|lx)==0) { /* x == 0 */
double x2; double x2;
INSERT_WORDS(x,(u_int32_t)((hy>>32)&0x80000000),1);/* return +-minsub */ INSERT_WORDS(x,(u_int32_t)((hy>>32)&0x80000000),1);/* return +-minsub */

View File

@ -19,7 +19,7 @@ static char rcsid[] = "$NetBSD: $";
#endif #endif
/* IEEE functions /* IEEE functions
* nextafterx(x,y) * nexttoward(x,y)
* return the next machine floating-point number of x in the * return the next machine floating-point number of x in the
* direction toward y. * direction toward y.
* Special cases: * Special cases: