diff options
Diffstat (limited to 'Python')
| -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 c40c3558c5..fbce7d7136 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 10c94e7fc0..47c57f48e1 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 bd4120231a..7af1390ffb 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) | 
