]> git.ipfire.org Git - thirdparty/Python/cpython.git/commitdiff
GH-98831: Add some macros definitions to bytecodes.c to reduce IDE warnings. (#99093)
authorMark Shannon <mark@hotpy.org>
Fri, 4 Nov 2022 23:37:53 +0000 (16:37 -0700)
committerGitHub <noreply@github.com>
Fri, 4 Nov 2022 23:37:53 +0000 (16:37 -0700)
Python/bytecodes.c

index 072eee42f29ec91a3e1ead0c00d120e8b21b635d..16ac1d9d2e95acd00fd543f8d77910d98d6a453f 100644 (file)
 void _PyFloat_ExactDealloc(PyObject *);
 void _PyUnicode_ExactDealloc(PyObject *);
 
+/* Stack effect macros
+ * These will be mostly replaced by stack effect descriptions,
+ * but the tooling need to recognize them.
+ */
 #define SET_TOP(v)        (stack_pointer[-1] = (v))
+#define SET_SECOND(v)     (stack_pointer[-2] = (v))
 #define PEEK(n)           (stack_pointer[-(n)])
-
+#define PUSH(val)         (*(stack_pointer++) = (val))
+#define POP()             (*(--stack_pointer))
+#define TOP()             PEEK(1)
+#define SECOND()          PEEK(2)
+#define STACK_GROW(n)     (stack_pointer += (n))
+#define STACK_SHRINK(n)   (stack_pointer -= (n))
+#define EMPTY()           1
+#define STACK_LEVEL()     2
+
+/* Local variable macros */
 #define GETLOCAL(i)     (frame->localsplus[i])
+#define SETLOCAL(i, val)  \
+do { \
+    PyObject *_tmp = frame->localsplus[i]; \
+    frame->localsplus[i] = (val); \
+    Py_XDECREF(_tmp); \
+} while (0)
+
+/* Flow control macros */
+#define DEOPT_IF(cond, instname) ((void)0)
+#define JUMPBY(offset) ((void)0)
+#define GO_TO_INSTRUCTION(instname) ((void)0)
+#define DISPATCH_SAME_OPARG() ((void)0)
+#define DISPATCH() ((void)0)
 
 #define inst(name) case name:
 #define family(name) static int family_##name
@@ -43,7 +70,7 @@ typedef struct {
     PyObject *kwnames;
 } CallShape;
 
-static void
+static PyObject *
 dummy_func(
     PyThreadState *tstate,
     _PyInterpreterFrame *frame,