Yukihiro "Matz" Matsumoto
9f0950da13
codegen.c: fix stack tracking in pattern match branching code
...
When generating code for pattern matching with potential failures, the
success and failure paths both need to pop the matched value. At
runtime, only one path executes. But during codegen, both pop() calls
affected the compile-time stack pointer (cursp), corrupting register
allocation and causing heap-buffer-overflow when accessing symbol
tables with wrong indices.
Fix by saving/restoring the stack pointer around the branch point, so
each path correctly tracks the stack state independently.
Co-authored-by: Claude <noreply@anthropic.com >
2025-12-29 22:28:45 +09:00
..
2025-10-16 09:59:03 +09:00
2025-10-16 09:59:03 +09:00
2025-10-16 09:59:03 +09:00
2025-10-16 09:59:03 +09:00
2025-10-16 16:54:25 +09:00
2025-10-20 08:11:59 +09:00
2025-10-25 21:05:39 +09:00
2025-10-16 17:02:23 +09:00
2025-12-25 18:01:44 +09:00
2025-12-11 18:09:09 +09:00
2025-12-01 18:20:44 +09:00
2025-12-11 18:09:10 +09:00
2025-12-28 20:28:00 +10:00
2025-12-29 11:56:58 +09:00
2025-12-11 18:09:10 +09:00
2025-12-21 17:26:49 +09:00
2025-12-11 18:09:10 +09:00
2025-11-12 10:25:36 +09:00
2025-08-14 10:52:47 +09:00
2025-10-14 08:22:41 +09:00
2025-10-08 23:55:23 +09:00
2025-08-14 10:52:49 +09:00
2025-12-29 22:28:45 +09:00
2025-12-11 18:09:08 +09:00
2025-08-14 10:52:49 +09:00
2025-11-08 14:27:44 +09:00
2025-12-23 10:41:21 +09:00
2025-12-11 18:09:06 +09:00
2025-12-11 18:09:09 +09:00
2025-12-11 18:09:09 +09:00
2025-12-11 18:09:07 +09:00
2025-10-27 07:59:20 +09:00
2025-11-08 14:26:49 +09:00
2025-12-23 08:34:52 +09:00
2025-08-14 10:52:49 +09:00
2025-10-18 23:34:10 +09:00
2025-12-11 18:09:09 +09:00
2025-12-18 16:30:03 +09:00
2025-11-12 10:25:37 +09:00
2025-10-26 23:30:14 +09:00
2025-11-29 01:46:54 +10:00
2025-12-11 18:09:10 +09:00
2025-08-14 10:53:12 +09:00
2025-12-11 18:09:07 +09:00
2025-08-14 10:52:49 +09:00
2025-06-24 13:56:07 +09:00
2025-12-23 11:02:34 +09:00
2025-11-08 14:24:40 +09:00
2025-10-26 20:33:06 +09:00
2025-12-29 12:54:32 +09:00
2025-11-29 01:46:54 +10:00
2025-12-23 08:50:30 +09:00
2025-12-11 18:09:10 +09:00
2025-10-26 20:01:30 +09:00
2025-12-11 18:09:11 +09:00
2025-12-29 11:56:58 +09:00
2025-10-26 19:16:12 +09:00
2025-12-23 10:41:21 +09:00
2025-12-11 18:09:09 +09:00
2025-08-14 10:52:49 +09:00
2025-11-08 14:14:44 +09:00
2025-11-16 06:53:02 +09:00
2024-09-24 00:14:24 +10:00
2025-12-01 18:20:44 +09:00
2025-08-14 10:52:47 +09:00
2021-01-06 18:10:21 +09:00
2021-01-06 18:10:21 +09:00
2023-04-04 19:31:42 +10:00
2025-10-08 23:55:21 +09:00
2025-05-14 15:58:23 +09:00
2025-05-14 15:58:24 +09:00
2022-11-29 15:58:05 +09:00
2025-01-06 13:57:23 +09:00
2025-05-19 08:00:36 +09:00