From: Denis Chernikov Date: Fri, 21 Feb 2020 09:17:50 +0000 (+0300) Subject: Reuse identifier of PREDICT macros as PREDICT_ID (GH-17155) X-Git-Tag: v3.9.0a4~19 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=baf29b221682be0f4fde53a05ea3f57c3c79f431;p=thirdparty%2FPython%2Fcpython.git Reuse identifier of PREDICT macros as PREDICT_ID (GH-17155) In function `_PyEval_EvalFrameDefault`, macros PREDICT and PREDICTED use the same identifier creation scheme, which may be shared between them, reducing code repetition, and do ensure that the same identifier is generated. --- diff --git a/Python/ceval.c b/Python/ceval.c index 426d0bbee890..3f65820c25da 100644 --- a/Python/ceval.c +++ b/Python/ceval.c @@ -921,21 +921,23 @@ _PyEval_EvalFrameDefault(PyFrameObject *f, int throwflag) */ +#define PREDICT_ID(op) PRED_##op + #if defined(DYNAMIC_EXECUTION_PROFILE) || USE_COMPUTED_GOTOS -#define PREDICT(op) if (0) goto PRED_##op +#define PREDICT(op) if (0) goto PREDICT_ID(op) #else #define PREDICT(op) \ - do{ \ + do { \ _Py_CODEUNIT word = *next_instr; \ opcode = _Py_OPCODE(word); \ - if (opcode == op){ \ + if (opcode == op) { \ oparg = _Py_OPARG(word); \ next_instr++; \ - goto PRED_##op; \ + goto PREDICT_ID(op); \ } \ } while(0) #endif -#define PREDICTED(op) PRED_##op: +#define PREDICTED(op) PREDICT_ID(op): /* Stack manipulation macros */