diff options
author | Guido van Rossum <guido@python.org> | 1997-02-14 22:58:07 (GMT) |
---|---|---|
committer | Guido van Rossum <guido@python.org> | 1997-02-14 22:58:07 (GMT) |
commit | 0ae748d3c409fc4b870baadd601a53c6a43ddf11 (patch) | |
tree | f2f51f02dae2969fdf958a28e9412da3092eddd3 /Python/compile.c | |
parent | 09e6ad0c1e1c7b3c6132ab2d5dd85c5cc376721d (diff) | |
download | cpython-0ae748d3c409fc4b870baadd601a53c6a43ddf11.zip cpython-0ae748d3c409fc4b870baadd601a53c6a43ddf11.tar.gz cpython-0ae748d3c409fc4b870baadd601a53c6a43ddf11.tar.bz2 |
Changes for Lee Busby's SIGFPE patch set.
New file pyfpe.c and exception FloatingPointError.
Surround some f.p. operations with PyFPE macro brackets.
Diffstat (limited to 'Python/compile.c')
-rw-r--r-- | Python/compile.c | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/Python/compile.c b/Python/compile.c index e06f345..0ee5519 100644 --- a/Python/compile.c +++ b/Python/compile.c @@ -782,6 +782,7 @@ parsenumber(co, s) extern double atof PROTO((const char *)); char *end; long x; + double dx; #ifndef WITHOUT_COMPLEX Py_complex c; int imflag; @@ -810,12 +811,18 @@ parsenumber(co, s) #ifndef WITHOUT_COMPLEX if (imflag) { c.real = 0.; + PyFPE_START_PROTECT("atof", return 0) c.imag = atof(s); + PyFPE_END_PROTECT return newcomplexobject(c); } - else + else { #endif - return newfloatobject(atof(s)); + PyFPE_START_PROTECT("atof", return 0) + dx = atof(s); + PyFPE_END_PROTECT + return newfloatobject(dx); + } } static object * |