STINNER Victor <vstin...@python.org> added the comment:
It's a bug in _PyTime_FromDouble() which fails to detect the integer overflow when casting a C double to a C _PyTime_T (int64_t): bug in _Py_InIntegralTypeRange(_PyTime_t, d) where d is a C double. On my Fedora 31, double is a 64-bit IEEE 754 float, _PyTime_t is int64_t (64-bit signed integer). _PyTime_t maximum is 9223372036854775807. But casted as C double, it becomes 9223372036854775808: >>> int(float(9223372036854775807)) 9223372036854775808 ---------- nosy: +benjamin.peterson _______________________________________ Python tracker <rep...@bugs.python.org> <https://bugs.python.org/issue39277> _______________________________________ _______________________________________________ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com