[Python-checkins] bpo-45412: Update _Py_ADJUST_ERANGE1() comment (GH-28884)

vstinner webhook-mailer at python.org
Mon Oct 11 17:07:45 EDT 2021


https://github.com/python/cpython/commit/a9fe1a8e5b4698937e06c2c419da92e6f78f2ee7
commit: a9fe1a8e5b4698937e06c2c419da92e6f78f2ee7
branch: main
author: Victor Stinner <vstinner at python.org>
committer: vstinner <vstinner at python.org>
date: 2021-10-11T23:07:41+02:00
summary:

bpo-45412: Update _Py_ADJUST_ERANGE1() comment (GH-28884)

Copy the comment from the removed Py_OVERFLOWED() function.

files:
M Include/internal/pycore_pymath.h

diff --git a/Include/internal/pycore_pymath.h b/Include/internal/pycore_pymath.h
index c299c64280183..e4d5778cfbf7c 100644
--- a/Include/internal/pycore_pymath.h
+++ b/Include/internal/pycore_pymath.h
@@ -19,8 +19,15 @@ extern "C" {
  * effect, we're trying to force a useful implementation of C89 errno
  * behavior.
  * Caution:
- *    This isn't reliable.  See Py_OVERFLOWED comments.
- *    X and Y may be evaluated more than once.
+ *    This isn't reliable.  C99 no longer requires libm to set errno under
+ *        any exceptional condition, but does require +- HUGE_VAL return
+ *        values on overflow.  A 754 box *probably* maps HUGE_VAL to a
+ *        double infinity, and we're cool if that's so, unless the input
+ *        was an infinity and an infinity is the expected result.  A C89
+ *        system sets errno to ERANGE, so we check for that too.  We're
+ *        out of luck if a C99 754 box doesn't map HUGE_VAL to +Inf, or
+ *        if the returned result is a NaN, or if a C89 box returns HUGE_VAL
+ *        in non-overflow cases.
  */
 static inline void _Py_ADJUST_ERANGE1(double x)
 {



More information about the Python-checkins mailing list