summaryrefslogtreecommitdiff
path: root/Python/peephole.c
diff options
context:
space:
mode:
authorSerhiy Storchaka <storchaka@gmail.com>2016-10-25 09:30:43 +0300
committerSerhiy Storchaka <storchaka@gmail.com>2016-10-25 09:30:43 +0300
commit7db3c488335168993689ddae5914a28e16188447 (patch)
treed6961b3d600c2e3ca8969968f7fd3d1dd03e3f36 /Python/peephole.c
parent802883a386b30e4fdfd93dfef0dafa723fbeee15 (diff)
downloadcpython-git-7db3c488335168993689ddae5914a28e16188447.tar.gz
Issue #28517: Fixed of-by-one error in the peephole optimizer that caused
keeping unreachable code.
Diffstat (limited to 'Python/peephole.c')
-rw-r--r--Python/peephole.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/Python/peephole.c b/Python/peephole.c
index 84eb2dbefd..dd8f3e4807 100644
--- a/Python/peephole.c
+++ b/Python/peephole.c
@@ -704,11 +704,11 @@ PyCode_Optimize(PyObject *code, PyObject* consts, PyObject *names,
/* Remove unreachable ops after RETURN */
case RETURN_VALUE:
h = i + 1;
- while (h + 1 < codelen && ISBASICBLOCK(blocks, i, h + 1)) {
+ while (h < codelen && ISBASICBLOCK(blocks, i, h)) {
h++;
}
if (h > i + 1) {
- fill_nops(codestr, i + 1, h + 1);
+ fill_nops(codestr, i + 1, h);
nexti = find_op(codestr, h);
}
break;