diff options
author | Takashi Kokubun <takashikkbn@gmail.com> | 2024-02-20 13:42:29 -0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-02-20 13:42:29 -0800 |
commit | 9216a2ac43a6e8a22efad582c4460c51cab72674 (patch) | |
tree | e23399ee09dcd72fd1b611ec78afd391d4a05c61 /vm_insnhelper.c | |
parent | d4b4b53bc02c7bc12f3cba75c8390a8ab27e9306 (diff) |
YJIT: Verify the assumption of leaf C calls (#10002)
Diffstat (limited to 'vm_insnhelper.c')
-rw-r--r-- | vm_insnhelper.c | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/vm_insnhelper.c b/vm_insnhelper.c index aef71970f6..63a88aea00 100644 --- a/vm_insnhelper.c +++ b/vm_insnhelper.c @@ -337,6 +337,17 @@ vm_push_frame_debug_counter_inc( #define vm_push_frame_debug_counter_inc(ec, cfp, t) /* void */ #endif +// Return a poison value to be set above the stack top to verify leafness. +VALUE +rb_vm_stack_canary(void) +{ +#if VM_CHECK_MODE > 0 + return vm_stack_canary; +#else + return 0; +#endif +} + STATIC_ASSERT(VM_ENV_DATA_INDEX_ME_CREF, VM_ENV_DATA_INDEX_ME_CREF == -2); STATIC_ASSERT(VM_ENV_DATA_INDEX_SPECVAL, VM_ENV_DATA_INDEX_SPECVAL == -1); STATIC_ASSERT(VM_ENV_DATA_INDEX_FLAGS, VM_ENV_DATA_INDEX_FLAGS == -0); |