summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBenjamin Peterson <benjamin@python.org>2014-02-11 03:19:02 (GMT)
committerBenjamin Peterson <benjamin@python.org>2014-02-11 03:19:02 (GMT)
commitc2f665e721e4e4629cc4a2c5eb6464c3dc7325e3 (patch)
tree4d385e947a58a16e322da27691f3f7efd0a0976c
parentf0560d959299358b28234881340245dfa417558e (diff)
downloadcpython-c2f665e721e4e4629cc4a2c5eb6464c3dc7325e3.zip
cpython-c2f665e721e4e4629cc4a2c5eb6464c3dc7325e3.tar.gz
cpython-c2f665e721e4e4629cc4a2c5eb6464c3dc7325e3.tar.bz2
don't put runtime values in array initializer for C89 compliance (closes #20588)
-rw-r--r--Misc/NEWS2
-rwxr-xr-xParser/asdl_c.py8
-rw-r--r--Python/Python-ast.c8
3 files changed, 14 insertions, 4 deletions
diff --git a/Misc/NEWS b/Misc/NEWS
index edefb80..ac1ba0d 100644
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -10,6 +10,8 @@ What's New in Python 3.3.5 release candidate 1?
Core and Builtins
-----------------
+- Issue #20588: Make Python-ast.c C89 compliant.
+
- Issue #20437: Fixed 21 potential bugs when deleting objects references.
- Issue #20538: UTF-7 incremental decoder produced inconsistant string when
diff --git a/Parser/asdl_c.py b/Parser/asdl_c.py
index 0b6c88c..4b84e0f 100755
--- a/Parser/asdl_c.py
+++ b/Parser/asdl_c.py
@@ -1150,10 +1150,14 @@ PyObject* PyAST_mod2obj(mod_ty t)
mod_ty PyAST_obj2mod(PyObject* ast, PyArena* arena, int mode)
{
mod_ty res;
- PyObject *req_type[] = {(PyObject*)Module_type, (PyObject*)Expression_type,
- (PyObject*)Interactive_type};
+ PyObject *req_type[3];
char *req_name[] = {"Module", "Expression", "Interactive"};
int isinstance;
+
+ req_type[0] = (PyObject*)Module_type;
+ req_type[1] = (PyObject*)Expression_type;
+ req_type[2] = (PyObject*)Interactive_type;
+
assert(0 <= mode && mode <= 2);
init_types();
diff --git a/Python/Python-ast.c b/Python/Python-ast.c
index 7bf2c50..aa03233 100644
--- a/Python/Python-ast.c
+++ b/Python/Python-ast.c
@@ -6957,10 +6957,14 @@ PyObject* PyAST_mod2obj(mod_ty t)
mod_ty PyAST_obj2mod(PyObject* ast, PyArena* arena, int mode)
{
mod_ty res;
- PyObject *req_type[] = {(PyObject*)Module_type, (PyObject*)Expression_type,
- (PyObject*)Interactive_type};
+ PyObject *req_type[3];
char *req_name[] = {"Module", "Expression", "Interactive"};
int isinstance;
+
+ req_type[0] = (PyObject*)Module_type;
+ req_type[1] = (PyObject*)Expression_type;
+ req_type[2] = (PyObject*)Interactive_type;
+
assert(0 <= mode && mode <= 2);
init_types();