summary refs log tree commit diff
path: root/sysdeps
diff options
context:
space:
mode:
authorUlrich Drepper <drepper@redhat.com>2000-12-19 05:07:31 +0000
committerUlrich Drepper <drepper@redhat.com>2000-12-19 05:07:31 +0000
commitcc46d0cfcf056cd46a99b6c9051291da31764c58 (patch)
tree924077ae6d01b45c0b8363d666e806268cf7d382 /sysdeps
parentaa9e3c3940003135ee8d3b2e728b627930eb65b1 (diff)
downloadglibc-cc46d0cfcf056cd46a99b6c9051291da31764c58.tar.gz
glibc-cc46d0cfcf056cd46a99b6c9051291da31764c58.tar.xz
glibc-cc46d0cfcf056cd46a99b6c9051291da31764c58.zip
Update.
	* math/test-misc.c: Add more tests for nextafter.
	* sysdeps/i386/fpu/s_nextafterl.c: Handle decrement for x<0 correctly.
	* sysdeps/ieee754/ldbl-96/math_ldbl.h
	(ieee_long_double_shape_type): Make sign_exponent element signed.
Diffstat (limited to 'sysdeps')
-rw-r--r--sysdeps/i386/fpu/s_nextafterl.c7
-rw-r--r--sysdeps/ieee754/ldbl-96/math_ldbl.h4
2 files changed, 6 insertions, 5 deletions
diff --git a/sysdeps/i386/fpu/s_nextafterl.c b/sysdeps/i386/fpu/s_nextafterl.c
index a905858e76..2943a613e3 100644
--- a/sysdeps/i386/fpu/s_nextafterl.c
+++ b/sysdeps/i386/fpu/s_nextafterl.c
@@ -36,8 +36,9 @@ static char rcsid[] = "$NetBSD: $";
 	long double x,y;
 #endif
 {
-	int32_t hx,hy,ix,iy;
-	u_int32_t lx,ly,esx,esy;
+	u_int32_t hx,hy,ix,iy;
+	u_int32_t lx,ly;
+	int32_t esx,esy;
 
 	GET_LDOUBLE_WORDS(esx,hx,lx,x);
 	GET_LDOUBLE_WORDS(esy,hy,ly,y);
@@ -90,7 +91,7 @@ static char rcsid[] = "$NetBSD: $";
 		      else {
 			esx -= 1;
 			hx = hx - 1;
-			if (esx > 0)
+			if ((esx&0x7fff) > 0)
 			  hx |= 0x80000000;
 		      }
 		    } else
diff --git a/sysdeps/ieee754/ldbl-96/math_ldbl.h b/sysdeps/ieee754/ldbl-96/math_ldbl.h
index dccc4a1240..1a9b027035 100644
--- a/sysdeps/ieee754/ldbl-96/math_ldbl.h
+++ b/sysdeps/ieee754/ldbl-96/math_ldbl.h
@@ -13,7 +13,7 @@ typedef union
   struct
   {
     unsigned int sign_exponent:16;
-    unsigned int empty:16;
+    int empty:16;
     u_int32_t msw;
     u_int32_t lsw;
   } parts;
@@ -30,7 +30,7 @@ typedef union
   {
     u_int32_t lsw;
     u_int32_t msw;
-    unsigned int sign_exponent:16;
+    int sign_exponent:16;
     unsigned int empty:16;
   } parts;
 } ieee_long_double_shape_type;