summaryrefslogtreecommitdiffstats
path: root/Python/compile.c
diff options
context:
space:
mode:
authorGuido van Rossum <guido@python.org>1997-02-14 22:58:07 (GMT)
committerGuido van Rossum <guido@python.org>1997-02-14 22:58:07 (GMT)
commit0ae748d3c409fc4b870baadd601a53c6a43ddf11 (patch)
treef2f51f02dae2969fdf958a28e9412da3092eddd3 /Python/compile.c
parent09e6ad0c1e1c7b3c6132ab2d5dd85c5cc376721d (diff)
downloadcpython-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.c11
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 *