summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--CONFORMANCE35
-rw-r--r--ChangeLog7
-rw-r--r--manual/arith.texi2
-rw-r--r--sysdeps/ieee754/ldbl-128/s_nexttoward.c2
-rw-r--r--sysdeps/ieee754/ldbl-96/s_nexttoward.c2
5 files changed, 39 insertions, 9 deletions
diff --git a/CONFORMANCE b/CONFORMANCE
index bfb8291fa9..c968754745 100644
--- a/CONFORMANCE
+++ b/CONFORMANCE
@@ -62,9 +62,11 @@ of the C standard (as indicated by __STDC_VERSION__):
 GCC options		Standard version
 -ansi			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
 
+* glibc does not support this standard version.
+
 (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.)
 
@@ -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.
 
 GCC doesn't support the optional imaginary types.  Nor does it
-understand the keyword _Complex.  This has the corresponding impact on
-the relevant headers.
+understand the keyword _Complex before GCC 3.0.  This has the
+corresponding impact on the relevant headers.
 
 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
@@ -162,7 +164,28 @@ Issues with headers
 ===================
 
 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.
+
+Note that the _t suffix is reserved by POSIX, but not by pure ISO C.
+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.
 
-http://sources.redhat.com/ml/libc-alpha/2000-07/msg00259.html
-http://sources.redhat.com/ml/libc-alpha/2000-07/msg00279.html
+<wctype.h> should not declare size_t.
diff --git a/ChangeLog b/ChangeLog
index 2e0266d66e..5116a8c0a8 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -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>
 
 	* version.h (VERSION): Bump to 2.1.95.
diff --git a/manual/arith.texi b/manual/arith.texi
index e7f4365c18..1b62d76cc7 100644
--- a/manual/arith.texi
+++ b/manual/arith.texi
@@ -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
 @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
-@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
 a value corresponding to the value of the least significant bit in the
 mantissa is added or subtracted, depending on the direction.
diff --git a/sysdeps/ieee754/ldbl-128/s_nexttoward.c b/sysdeps/ieee754/ldbl-128/s_nexttoward.c
index f121be2fac..2c654fb973 100644
--- a/sysdeps/ieee754/ldbl-128/s_nexttoward.c
+++ b/sysdeps/ieee754/ldbl-128/s_nexttoward.c
@@ -50,7 +50,7 @@ static char rcsid[] = "$NetBSD: $";
 	   ((iy>=0x7fff000000000000LL)&&((iy-0x7fff000000000000LL)|ly)!=0))
 	   						    /* y is nan */
 	   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 */
 	    double x2;
 	    INSERT_WORDS(x,(u_int32_t)((hy>>32)&0x80000000),1);/* return +-minsub */
diff --git a/sysdeps/ieee754/ldbl-96/s_nexttoward.c b/sysdeps/ieee754/ldbl-96/s_nexttoward.c
index 941383e281..9df393a7bd 100644
--- a/sysdeps/ieee754/ldbl-96/s_nexttoward.c
+++ b/sysdeps/ieee754/ldbl-96/s_nexttoward.c
@@ -19,7 +19,7 @@ static char rcsid[] = "$NetBSD: $";
 #endif
 
 /* IEEE functions
- *	nextafterx(x,y)
+ *	nexttoward(x,y)
  *	return the next machine floating-point number of x in the
  *	direction toward y.
  *   Special cases: