summaryrefslogtreecommitdiffstats
path: root/Python/optimizer_analysis.c
diff options
context:
space:
mode:
authorMark Shannon <mark@hotpy.org>2024-06-25 15:42:29 (GMT)
committerGitHub <noreply@github.com>2024-06-25 15:42:29 (GMT)
commit8f5a01707f27a015b52b7b55af058f8833f8f7db (patch)
tree7f29c5e82fbfd85e4b1976fc0288a406256dd1cd /Python/optimizer_analysis.c
parent42b2c9d78da7ebd6bd5925a4d4c78aec3c9e78e6 (diff)
downloadcpython-8f5a01707f27a015b52b7b55af058f8833f8f7db.zip
cpython-8f5a01707f27a015b52b7b55af058f8833f8f7db.tar.gz
cpython-8f5a01707f27a015b52b7b55af058f8833f8f7db.tar.bz2
GH-120982: Add stack check assertions to generated interpreter code (GH-120992)
Diffstat (limited to 'Python/optimizer_analysis.c')
-rw-r--r--Python/optimizer_analysis.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/Python/optimizer_analysis.c b/Python/optimizer_analysis.c
index 0e45bd8..bbddbc8 100644
--- a/Python/optimizer_analysis.c
+++ b/Python/optimizer_analysis.c
@@ -301,6 +301,11 @@ remove_globals(_PyInterpreterFrame *frame, _PyUOpInstruction *buffer,
#define STACK_LEVEL() ((int)(stack_pointer - ctx->frame->stack))
+#define STACK_SIZE() ((int)(ctx->frame->stack_len))
+
+#define WITHIN_STACK_BOUNDS() \
+ (STACK_LEVEL() >= 0 && STACK_LEVEL() <= STACK_SIZE())
+
#define GETLOCAL(idx) ((ctx->frame->locals[idx]))