mirror of https://github.com/python/cpython
Issue #28517: Fixed of-by-one error in the peephole optimizer that caused
keeping unreachable code.
This commit is contained in:
commit
42bcbf76f7
|
@ -10,6 +10,9 @@ What's New in Python 3.7.0 alpha 1
|
|||
Core and Builtins
|
||||
-----------------
|
||||
|
||||
- Issue #28517: Fixed of-by-one error in the peephole optimizer that caused
|
||||
keeping unreachable code.
|
||||
|
||||
- Issue #28214: Improved exception reporting for problematic __set_name__
|
||||
attributes.
|
||||
|
||||
|
|
2298
Python/importlib.h
2298
Python/importlib.h
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
|
@ -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;
|
||||
|
|
Loading…
Reference in New Issue