mirror of https://github.com/python/cpython
gh-94438: in frameobject's mark_stacks switch, the PUSH_EXC_INFO and POP_EXCEPT cases are no longer reachable (GH-94582)
This commit is contained in:
parent
40d81fd63b
commit
50b9a7762f
|
@ -256,10 +256,6 @@ mark_stacks(PyCodeObject *code_obj, int len)
|
|||
stacks[i+1] = next_stack;
|
||||
break;
|
||||
}
|
||||
case POP_EXCEPT:
|
||||
next_stack = pop_value(pop_value(pop_value(next_stack)));
|
||||
stacks[i+1] = next_stack;
|
||||
break;
|
||||
case SEND:
|
||||
j = get_arg(code, i) + i + 1;
|
||||
assert(j < len);
|
||||
|
@ -304,10 +300,16 @@ mark_stacks(PyCodeObject *code_obj, int len)
|
|||
stacks[i+1] = next_stack;
|
||||
break;
|
||||
case PUSH_EXC_INFO:
|
||||
next_stack = push_value(next_stack, Except);
|
||||
next_stack = push_value(next_stack, Except);
|
||||
next_stack = push_value(next_stack, Except);
|
||||
stacks[i+1] = next_stack;
|
||||
case POP_EXCEPT:
|
||||
/* These instructions only appear in exception handlers, which
|
||||
* skip this switch ever since the move to zero-cost exceptions
|
||||
* (their stack remains UNINITIALIZED because nothing sets it).
|
||||
*
|
||||
* Note that explain_incompatible_stack interprets an
|
||||
* UNINITIALIZED stack as belonging to an exception handler.
|
||||
*/
|
||||
Py_UNREACHABLE();
|
||||
break;
|
||||
case RETURN_VALUE:
|
||||
case RAISE_VARARGS:
|
||||
case RERAISE:
|
||||
|
|
Loading…
Reference in New Issue