summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog5
-rw-r--r--math/libm-test-pow.inc9
2 files changed, 12 insertions, 2 deletions
diff --git a/ChangeLog b/ChangeLog
index 7dea006c16..450732e565 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2018-10-17  Joseph Myers  <joseph@codesourcery.com>
+
+	* math/libm-test-pow.inc (pow_test_data): Do not allow
+	divide-by-zero exception for pow(+/- 0, -Inf).
+
 2018-10-17  Zack Weinberg  <zackw@panix.com>
 
 	* manual/job.texi (Job Control is Optional): Remove node, as
diff --git a/math/libm-test-pow.inc b/math/libm-test-pow.inc
index ff20ad2f04..c7b91c1131 100644
--- a/math/libm-test-pow.inc
+++ b/math/libm-test-pow.inc
@@ -248,8 +248,13 @@ static const struct test_ff_f_data pow_test_data[] =
 
     TEST_ff_f (pow, 0, plus_infty, 0, ERRNO_UNCHANGED),
     TEST_ff_f (pow, minus_zero, plus_infty, 0, ERRNO_UNCHANGED),
-    TEST_ff_f (pow, 0, minus_infty, plus_infty, DIVIDE_BY_ZERO_EXCEPTION_OK|ERRNO_UNCHANGED),
-    TEST_ff_f (pow, minus_zero, minus_infty, plus_infty, DIVIDE_BY_ZERO_EXCEPTION_OK|ERRNO_UNCHANGED),
+    /* C99 erroneously specified a divide-by-zero exception here,
+       which is not permitted in C2x (C11 specified it as optional).
+       See <http://www.open-std.org/jtc1/sc22/wg14/www/docs/n1515.pdf>
+       and
+       <http://www.open-std.org/jtc1/sc22/wg14/www/docs/n2271.pdf>.  */
+    TEST_ff_f (pow, 0, minus_infty, plus_infty, ERRNO_UNCHANGED),
+    TEST_ff_f (pow, minus_zero, minus_infty, plus_infty, ERRNO_UNCHANGED),
 
     /* pow (x, +inf) == +inf for |x| > 1.  */
     TEST_ff_f (pow, 1.5, plus_infty, plus_infty, ERRNO_UNCHANGED|NO_TEST_INLINE),