diff options
-rw-r--r-- | Python/ast.c | 14 | ||||
-rw-r--r-- | Python/compile.c | 3 | ||||
-rw-r--r-- | Python/symtable.c | 6 |
3 files changed, 14 insertions, 9 deletions
diff --git a/Python/ast.c b/Python/ast.c index c40c355..fbce7d7 100644 --- a/Python/ast.c +++ b/Python/ast.c @@ -512,14 +512,14 @@ static asdl_seq * seq_for_testlist(struct compiling *c, const node *n) { /* testlist: test (',' test)* [','] */ + asdl_seq *seq; + expr_ty expression; + int i; assert(TYPE(n) == testlist || TYPE(n) == listmaker || TYPE(n) == testlist_gexp || TYPE(n) == testlist_safe ); - asdl_seq *seq; - expr_ty expression; - int i; seq = asdl_seq_new((NCH(n) + 1) / 2); if (!seq) @@ -641,12 +641,13 @@ ast_for_arguments(struct compiling *c, const node *n) compiler_complex_args(CHILD(ch, 1))); } else if (TYPE(CHILD(ch, 0)) == NAME) { + expr_ty name; if (!strcmp(STR(CHILD(ch, 0)), "None")) { ast_error(CHILD(ch, 0), "assignment to None"); goto error; } - expr_ty name = Name(NEW_IDENTIFIER(CHILD(ch, 0)), - Param, LINENO(ch)); + name = Name(NEW_IDENTIFIER(CHILD(ch, 0)), + Param, LINENO(ch)); if (!name) goto error; asdl_seq_APPEND(args, name); @@ -1897,12 +1898,13 @@ ast_for_expr_stmt(struct compiling *c, const node *n) if (!targets) return NULL; for (i = 0; i < NCH(n) - 2; i += 2) { + expr_ty e; node *ch = CHILD(n, i); if (TYPE(ch) == yield_expr) { ast_error(ch, "assignment to yield expression not possible"); goto error; } - expr_ty e = ast_for_testlist(c, ch, 0); + e = ast_for_testlist(c, ch, 0); /* set context to assign */ if (!e) diff --git a/Python/compile.c b/Python/compile.c index 10c94e7..47c57f4 100644 --- a/Python/compile.c +++ b/Python/compile.c @@ -2329,8 +2329,9 @@ compiler_import_as(struct compiler *c, identifier name, identifier asname) src = dot + 1; while (dot) { /* NB src is only defined when dot != NULL */ + PyObject *attr; dot = strchr(src, '.'); - PyObject *attr = PyString_FromStringAndSize(src, + attr = PyString_FromStringAndSize(src, dot ? dot - src : strlen(src)); ADDOP_O(c, LOAD_ATTR, attr, names); src = dot + 1; diff --git a/Python/symtable.c b/Python/symtable.c index bd41202..7af1390 100644 --- a/Python/symtable.c +++ b/Python/symtable.c @@ -444,12 +444,13 @@ analyze_cells(PyObject *scope, PyObject *free) static int check_unoptimized(const PySTEntryObject* ste) { char buf[300]; + const char* trailer; if (ste->ste_type == ModuleBlock || !ste->ste_unoptimized || !(ste->ste_free || ste->ste_child_free)) return 1; - const char* trailer = (ste->ste_child_free ? + trailer = (ste->ste_child_free ? "contains a nested function with free variables" : "is a nested function"); @@ -621,8 +622,9 @@ analyze_block(PySTEntryObject *ste, PyObject *bound, PyObject *free, /* Recursively call analyze_block() on each child block */ for (i = 0; i < PyList_GET_SIZE(ste->ste_children); ++i) { PyObject *c = PyList_GET_ITEM(ste->ste_children, i); + PySTEntryObject* entry; assert(c && PySTEntry_Check(c)); - PySTEntryObject* entry = (PySTEntryObject*)c; + entry = (PySTEntryObject*)c; if (!analyze_block(entry, newbound, newfree, newglobal)) goto error; if (entry->ste_free || entry->ste_child_free) |