summaryrefslogtreecommitdiffstats
path: root/Python/compile.c
diff options
context:
space:
mode:
authorNeal Norwitz <nnorwitz@gmail.com>2006-08-04 05:09:28 (GMT)
committerNeal Norwitz <nnorwitz@gmail.com>2006-08-04 05:09:28 (GMT)
commit0cbd805a10b91f803bccbb5a54f8e54c2e40e9e8 (patch)
tree62229621195dcaf1c38378924227066697ef8643 /Python/compile.c
parent4ffedadb1032a4310e756d476310d056ad209310 (diff)
downloadcpython-0cbd805a10b91f803bccbb5a54f8e54c2e40e9e8.zip
cpython-0cbd805a10b91f803bccbb5a54f8e54c2e40e9e8.tar.gz
cpython-0cbd805a10b91f803bccbb5a54f8e54c2e40e9e8.tar.bz2
Bug #1333982: string/number constants were inappropriately stored
in the byte code and co_consts even if they were not used, ie immediately popped off the stack.
Diffstat (limited to 'Python/compile.c')
-rw-r--r--Python/compile.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/Python/compile.c b/Python/compile.c
index 755531e..6a9e8c9 100644
--- a/Python/compile.c
+++ b/Python/compile.c
@@ -2745,11 +2745,13 @@ compiler_visit_stmt(struct compiler *c, stmt_ty s)
case Global_kind:
break;
case Expr_kind:
- VISIT(c, expr, s->v.Expr.value);
if (c->c_interactive && c->c_nestlevel <= 1) {
+ VISIT(c, expr, s->v.Expr.value);
ADDOP(c, PRINT_EXPR);
}
- else {
+ else if (s->v.Expr.value->kind != Str_kind &&
+ s->v.Expr.value->kind != Num_kind) {
+ VISIT(c, expr, s->v.Expr.value);
ADDOP(c, POP_TOP);
}
break;