summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMark Dickinson <dickinsm@gmail.com>2009-10-15 17:45:39 (GMT)
committerMark Dickinson <dickinsm@gmail.com>2009-10-15 17:45:39 (GMT)
commit026ac7cf69816f67b3fe9e26dc0b6c97206b8c11 (patch)
tree89ba8fa5b46d6bd78d3511593ab4777f8af1773f
parent08133af12e4dee7f688528075d96bb4df94dc0b0 (diff)
downloadcpython-026ac7cf69816f67b3fe9e26dc0b6c97206b8c11.zip
cpython-026ac7cf69816f67b3fe9e26dc0b6c97206b8c11.tar.gz
cpython-026ac7cf69816f67b3fe9e26dc0b6c97206b8c11.tar.bz2
Allow core Python build to succeed under WITHOUT_COMPLEX. The module build stage still fails.
-rw-r--r--Python/compile.c9
-rw-r--r--Python/formatter_string.c4
2 files changed, 9 insertions, 4 deletions
diff --git a/Python/compile.c b/Python/compile.c
index 844aca6..a35cda1 100644
--- a/Python/compile.c
+++ b/Python/compile.c
@@ -910,10 +910,8 @@ compiler_add_o(struct compiler *c, PyObject *dict, PyObject *o)
{
PyObject *t, *v;
Py_ssize_t arg;
- unsigned char *p, *q;
- Py_complex z;
+ unsigned char *p;
double d;
- int real_part_zero, imag_part_zero;
/* necessary to make sure types aren't coerced (e.g., int and long) */
/* _and_ to distinguish 0.0 from -0.0 e.g. on IEEE platforms */
@@ -928,7 +926,11 @@ compiler_add_o(struct compiler *c, PyObject *dict, PyObject *o)
else
t = PyTuple_Pack(2, o, o->ob_type);
}
+#ifndef WITHOUT_COMPLEX
else if (PyComplex_Check(o)) {
+ Py_complex z;
+ int real_part_zero, imag_part_zero;
+ unsigned char *q;
/* complex case is even messier: we need to make complex(x,
0.) different from complex(x, -0.) and complex(0., y)
different from complex(-0., y), for any x and y. In
@@ -958,6 +960,7 @@ compiler_add_o(struct compiler *c, PyObject *dict, PyObject *o)
t = PyTuple_Pack(2, o, o->ob_type);
}
}
+#endif /* WITHOUT_COMPLEX */
else {
t = PyTuple_Pack(2, o, o->ob_type);
}
diff --git a/Python/formatter_string.c b/Python/formatter_string.c
index e6a4d4b..06a2ef5 100644
--- a/Python/formatter_string.c
+++ b/Python/formatter_string.c
@@ -1,7 +1,7 @@
/***********************************************************************/
/* Implements the string (as opposed to unicode) version of the
built-in formatters for string, int, float. That is, the versions
- of int.__float__, etc., that take and return string objects */
+ of int.__format__, etc., that take and return string objects */
#include "Python.h"
#include "../Objects/stringlib/stringdefs.h"
@@ -10,6 +10,8 @@
#define FORMAT_LONG _PyLong_FormatAdvanced
#define FORMAT_INT _PyInt_FormatAdvanced
#define FORMAT_FLOAT _PyFloat_FormatAdvanced
+#ifndef WITHOUT_COMPLEX
#define FORMAT_COMPLEX _PyComplex_FormatAdvanced
+#endif
#include "../Objects/stringlib/formatter.h"