Ensure that instruction cases are self-contained (GH-28938)

This commit is contained in:
Brandt Bucher 2021-10-13 15:34:11 -07:00 committed by GitHub
parent 194a9526d8
commit e71662c1ae
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -1710,8 +1710,8 @@ check_eval_breaker:
DISPATCH();
}
/* We keep LOAD_CLOSURE so that the bytecode stays more readable. */
TARGET(LOAD_CLOSURE) {
/* We keep LOAD_CLOSURE so that the bytecode stays more readable. */
PyObject *value = GETLOCAL(oparg);
if (value == NULL) {
goto unbound_local_error;
@ -3858,10 +3858,10 @@ check_eval_breaker:
DISPATCH();
}
#define CANNOT_CATCH_MSG "catching classes that do not inherit from "\
"BaseException is not allowed"
TARGET(JUMP_IF_NOT_EXC_MATCH) {
const char *cannot_catch_msg = "catching classes that do not "
"inherit from BaseException is not "
"allowed";
PyObject *right = POP();
PyObject *left = POP();
if (PyTuple_Check(right)) {
@ -3871,7 +3871,7 @@ check_eval_breaker:
PyObject *exc = PyTuple_GET_ITEM(right, i);
if (!PyExceptionClass_Check(exc)) {
_PyErr_SetString(tstate, PyExc_TypeError,
CANNOT_CATCH_MSG);
cannot_catch_msg);
Py_DECREF(left);
Py_DECREF(right);
goto error;
@ -3881,7 +3881,7 @@ check_eval_breaker:
else {
if (!PyExceptionClass_Check(right)) {
_PyErr_SetString(tstate, PyExc_TypeError,
CANNOT_CATCH_MSG);
cannot_catch_msg);
Py_DECREF(left);
Py_DECREF(right);
goto error;