summary refs log tree commit diff
path: root/math
diff options
context:
space:
mode:
authorUlrich Drepper <drepper@redhat.com>2000-12-05 06:49:26 +0000
committerUlrich Drepper <drepper@redhat.com>2000-12-05 06:49:26 +0000
commitb210e4ccb6b1f8df2ff4155b6264473f1d26be78 (patch)
tree870b5be7adc8f64ef756c77e1acc4b5c9f742e00 /math
parent6d0c49145e818f4f8417b61ddbe22c957825d5e9 (diff)
downloadglibc-b210e4ccb6b1f8df2ff4155b6264473f1d26be78.tar.gz
glibc-b210e4ccb6b1f8df2ff4155b6264473f1d26be78.tar.xz
glibc-b210e4ccb6b1f8df2ff4155b6264473f1d26be78.zip
Update.
	* math/test-misc.c (main): Add a few more over and underflow tests
	for scalb.
Diffstat (limited to 'math')
-rw-r--r--math/test-misc.c43
1 files changed, 43 insertions, 0 deletions
diff --git a/math/test-misc.c b/math/test-misc.c
index 514035554c..0dbb0882fa 100644
--- a/math/test-misc.c
+++ b/math/test-misc.c
@@ -17,6 +17,7 @@
    write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
    Boston, MA 02111-1307, USA.  */
 
+#include <fenv.h>
 #include <math.h>
 #include <stdio.h>
 #include <string.h>
@@ -208,5 +209,47 @@ main (void)
   }
 #endif
 
+#ifndef NO_LONG_DOUBLE
+  {
+    long double r;
+
+    feclearexcept (FE_ALL_EXCEPT);
+    r = scalbl (LDBL_MIN, 2147483647);
+    if (! isinf (r))
+      {
+	puts ("scalbl (LDBL_MIN, 2147483647) does not return Inf");
+	result = 1;
+      }
+    else if (signbit (r) != 0)
+      {
+	puts ("scalbl (LDBL_MIN, 2147483647) returns -Inf");
+	result = 1;
+      }
+    else if (fetestexcept (FE_UNDERFLOW))
+      {
+	puts ("scalbl(NaN, 0) raises underflow exception");
+	result = 1;
+      }
+
+    feclearexcept (FE_ALL_EXCEPT);
+    r = scalbl (LDBL_MAX, -2147483647);
+    if (r != 0.0)
+      {
+	puts ("scalbl (LDBL_MAX, -2147483647) does not return 0");
+	result = 1;
+      }
+    else if (signbit (r) != 0)
+      {
+	puts ("scalbl (LDBL_MAX, -2147483647) returns -Inf");
+	result = 1;
+      }
+    else if (fetestexcept (FE_OVERFLOW))
+      {
+	puts ("scalbl(NaN, 0) raises overflow exception");
+	result = 1;
+      }
+  }
+#endif
+
   return result;
 }