File tree 1 file changed +10
-8
lines changed
1 file changed +10
-8
lines changed Original file line number Diff line number Diff line change @@ -256,10 +256,6 @@ mark_stacks(PyCodeObject *code_obj, int len)
256
256
stacks [i + 1 ] = next_stack ;
257
257
break ;
258
258
}
259
- case POP_EXCEPT :
260
- next_stack = pop_value (pop_value (pop_value (next_stack )));
261
- stacks [i + 1 ] = next_stack ;
262
- break ;
263
259
case SEND :
264
260
j = get_arg (code , i ) + i + 1 ;
265
261
assert (j < len );
@@ -304,10 +300,16 @@ mark_stacks(PyCodeObject *code_obj, int len)
304
300
stacks [i + 1 ] = next_stack ;
305
301
break ;
306
302
case PUSH_EXC_INFO :
307
- next_stack = push_value (next_stack , Except );
308
- next_stack = push_value (next_stack , Except );
309
- next_stack = push_value (next_stack , Except );
310
- stacks [i + 1 ] = next_stack ;
303
+ case POP_EXCEPT :
304
+ /* These instructions only appear in exception handlers, which
305
+ * skip this switch ever since the move to zero-cost exceptions
306
+ * (their stack remains UNINITIALIZED because nothing sets it).
307
+ *
308
+ * Note that explain_incompatible_stack interprets an
309
+ * UNINITIALIZED stack as belonging to an exception handler.
310
+ */
311
+ Py_UNREACHABLE ();
312
+ break ;
311
313
case RETURN_VALUE :
312
314
case RAISE_VARARGS :
313
315
case RERAISE :
You can’t perform that action at this time.
0 commit comments