summaryrefslogtreecommitdiffstats
path: root/Modules
diff options
context:
space:
mode:
Diffstat (limited to 'Modules')
-rw-r--r--Modules/mathmodule.c8
1 files changed, 6 insertions, 2 deletions
diff --git a/Modules/mathmodule.c b/Modules/mathmodule.c
index c974601..1f16849 100644
--- a/Modules/mathmodule.c
+++ b/Modules/mathmodule.c
@@ -971,9 +971,13 @@ is_error(double x)
* On some platforms (Ubuntu/ia64) it seems that errno can be
* set to ERANGE for subnormal results that do *not* underflow
* to zero. So to be safe, we'll ignore ERANGE whenever the
- * function result is less than one in absolute value.
+ * function result is less than 1.5 in absolute value.
+ *
+ * bpo-46018: Changed to 1.5 to ensure underflows in expm1()
+ * are correctly detected, since the function may underflow
+ * toward -1.0 rather than 0.0.
*/
- if (fabs(x) < 1.0)
+ if (fabs(x) < 1.5)
result = 0;
else
PyErr_SetString(PyExc_OverflowError,