From a9fe1a8e5b4698937e06c2c419da92e6f78f2ee7 Mon Sep 17 00:00:00 2001 From: Victor Stinner Date: Mon, 11 Oct 2021 23:07:41 +0200 Subject: bpo-45412: Update _Py_ADJUST_ERANGE1() comment (GH-28884) Copy the comment from the removed Py_OVERFLOWED() function. --- Include/internal/pycore_pymath.h | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/Include/internal/pycore_pymath.h b/Include/internal/pycore_pymath.h index c299c64..e4d5778 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) { -- cgit v0.12