mirror of
https://github.com/python/cpython.git
synced 2025-08-03 16:39:00 +00:00
Rework the way we try to check for libm overflow, given that C99 no longer
requires that errno ever get set, and it looks like glibc is already playing that game. New rules: + Never use HUGE_VAL. Use the new Py_HUGE_VAL instead. + Never believe errno. If overflow is the only thing you're interested in, use the new Py_OVERFLOWED(x) macro. If you're interested in any libm errors, use the new Py_SET_ERANGE_IF_OVERFLOW(x) macro, which attempts to set errno the way C89 said it worked. Unfortunately, none of these are reliable, but they work on Windows and I *expect* under glibc too.
This commit is contained in:
parent
75ed167527
commit
a40c793d06
6 changed files with 54 additions and 64 deletions
|
@ -181,7 +181,7 @@ def test_exceptions():
|
|||
raise TestFailed("overflowing exp() didn't trigger OverflowError")
|
||||
|
||||
# If this fails, it could be a puzzle. One odd possibility is that
|
||||
# mathmodule.c's CHECK() macro is getting confused while comparing
|
||||
# mathmodule.c's macros are getting confused while comparing
|
||||
# Inf (HUGE_VAL) to a NaN, and artificially setting errno to ERANGE
|
||||
# as a result (and so raising OverflowError instead).
|
||||
try:
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue