[Python-checkins] cpython (3.3): don't put runtime values in array initializer for C89 compliance (closes #20588)

benjamin.peterson python-checkins at python.org
Tue Feb 11 04:41:49 CET 2014


http://hg.python.org/cpython/rev/5b3bb4bda9cb
changeset:   89129:5b3bb4bda9cb
branch:      3.3
parent:      89122:3c81185210da
user:        Benjamin Peterson <benjamin at python.org>
date:        Mon Feb 10 22:19:02 2014 -0500
summary:
  don't put runtime values in array initializer for C89 compliance (closes #20588)

files:
  Misc/NEWS           |  2 ++
  Parser/asdl_c.py    |  8 ++++++--
  Python/Python-ast.c |  8 ++++++--
  3 files changed, 14 insertions(+), 4 deletions(-)


diff --git a/Misc/NEWS b/Misc/NEWS
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -10,6 +10,8 @@
 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
--- a/Parser/asdl_c.py
+++ b/Parser/asdl_c.py
@@ -1150,10 +1150,14 @@
 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
--- a/Python/Python-ast.c
+++ b/Python/Python-ast.c
@@ -6957,10 +6957,14 @@
 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();

-- 
Repository URL: http://hg.python.org/cpython


More information about the Python-checkins mailing list