]> git.ipfire.org Git - thirdparty/Python/cpython.git/commitdiff
Ensure that instruction cases are self-contained (GH-28938)
authorBrandt Bucher <brandt@python.org>
Wed, 13 Oct 2021 22:34:11 +0000 (15:34 -0700)
committerGitHub <noreply@github.com>
Wed, 13 Oct 2021 22:34:11 +0000 (15:34 -0700)
Python/ceval.c

index 0af233c0ba485d9988bd9f1c9bf892ed3cf429d5..aef83b9c355fc0d19261b0dbe7ab1d8497999aaf 100644 (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;