diff options
author | Jeremy Hylton <jeremy@alum.mit.edu> | 2005-02-04 18:38:43 (GMT) |
---|---|---|
committer | Jeremy Hylton <jeremy@alum.mit.edu> | 2005-02-04 18:38:43 (GMT) |
commit | c9add9a483166c4c2494ccd7d9402eb3d497aa4f (patch) | |
tree | 595340aa649cb34d47b29bfe3e47ec28b22d3ac7 /Python | |
parent | 1f1d252f516968df8310835c388ad7323c513134 (diff) | |
download | cpython-c9add9a483166c4c2494ccd7d9402eb3d497aa4f.zip cpython-c9add9a483166c4c2494ccd7d9402eb3d497aa4f.tar.gz cpython-c9add9a483166c4c2494ccd7d9402eb3d497aa4f.tar.bz2 |
Fix bug that allowed future statements virtually anywhere in a module.
If we exit via the break here, we need to set ff_last_lineno or
FUTURE_POSSIBLE() will remain true. The bug affected statements
containing a variety of expressions, but not all expressions. It has
been present since Python 2.2.
Diffstat (limited to 'Python')
-rw-r--r-- | Python/future.c | 3 |
1 files changed, 1 insertions, 2 deletions
diff --git a/Python/future.c b/Python/future.c index 20d8dd2..95d6a5c 100644 --- a/Python/future.c +++ b/Python/future.c @@ -93,7 +93,6 @@ future_parse(PyFutureFeatures *ff, node *n, const char *filename) { int i, r; loop: - switch (TYPE(n)) { case single_input: @@ -222,6 +221,7 @@ future_parse(PyFutureFeatures *ff, node *n, const char *filename) n = CHILD(n, 0); goto loop; } + ff->ff_last_lineno = n->n_lineno; break; case atom: @@ -258,4 +258,3 @@ PyNode_Future(node *n, const char *filename) } return ff; } - |