Skip to content

Commit 7a020b8

Browse files
authored
GH-98831: Add some macros definitions to bytecodes.c to reduce IDE warnings. (#99093)
1 parent c885623 commit 7a020b8

File tree

1 file changed

+29
-2
lines changed

1 file changed

+29
-2
lines changed

Python/bytecodes.c

+29-2
Original file line numberDiff line numberDiff line change
@@ -28,10 +28,37 @@
2828
void _PyFloat_ExactDealloc(PyObject *);
2929
void _PyUnicode_ExactDealloc(PyObject *);
3030

31+
/* Stack effect macros
32+
* These will be mostly replaced by stack effect descriptions,
33+
* but the tooling need to recognize them.
34+
*/
3135
#define SET_TOP(v) (stack_pointer[-1] = (v))
36+
#define SET_SECOND(v) (stack_pointer[-2] = (v))
3237
#define PEEK(n) (stack_pointer[-(n)])
33-
38+
#define PUSH(val) (*(stack_pointer++) = (val))
39+
#define POP() (*(--stack_pointer))
40+
#define TOP() PEEK(1)
41+
#define SECOND() PEEK(2)
42+
#define STACK_GROW(n) (stack_pointer += (n))
43+
#define STACK_SHRINK(n) (stack_pointer -= (n))
44+
#define EMPTY() 1
45+
#define STACK_LEVEL() 2
46+
47+
/* Local variable macros */
3448
#define GETLOCAL(i) (frame->localsplus[i])
49+
#define SETLOCAL(i, val) \
50+
do { \
51+
PyObject *_tmp = frame->localsplus[i]; \
52+
frame->localsplus[i] = (val); \
53+
Py_XDECREF(_tmp); \
54+
} while (0)
55+
56+
/* Flow control macros */
57+
#define DEOPT_IF(cond, instname) ((void)0)
58+
#define JUMPBY(offset) ((void)0)
59+
#define GO_TO_INSTRUCTION(instname) ((void)0)
60+
#define DISPATCH_SAME_OPARG() ((void)0)
61+
#define DISPATCH() ((void)0)
3562

3663
#define inst(name) case name:
3764
#define family(name) static int family_##name
@@ -43,7 +70,7 @@ typedef struct {
4370
PyObject *kwnames;
4471
} CallShape;
4572

46-
static void
73+
static PyObject *
4774
dummy_func(
4875
PyThreadState *tstate,
4976
_PyInterpreterFrame *frame,

0 commit comments

Comments
 (0)