diff --git a/Modules/mathmodule.c b/Modules/mathmodule.c index 1b888948ce0ad7..2736d6114510a4 100644 --- a/Modules/mathmodule.c +++ b/Modules/mathmodule.c @@ -2190,10 +2190,12 @@ math_modf_impl(PyObject *module, double x) double y; /* some platforms don't do the right thing for NaNs and infinities, so we take care of special cases directly. */ - if (Py_IS_INFINITY(x)) - return Py_BuildValue("(dd)", copysign(0., x), x); - else if (Py_IS_NAN(x)) - return Py_BuildValue("(dd)", x, x); + if (!Py_IS_FINITE(x)) { + if (Py_IS_INFINITY(x)) + return Py_BuildValue("(dd)", copysign(0., x), x); + else + return Py_BuildValue("(dd)", x, x); + } errno = 0; x = modf(x, &y);