master: Fix accessing debug vars at post-call locations.
apache--- via Sbcl-commits <[email protected]> Wed, 20 May 2026 10:14:40 +0000
| Newsgroups | gmane.lisp.steel-bank.cvs |
|---|---|
| Message-ID | <[email protected]> |
The branch "master" has been updated in SBCL:
via 5c1cd2227f09d9355c5ad5873148cf69ee6df3e1 (commit)
from f982475b0bcb6d691cf172630fad9c14087378b2 (commit)
- Log -----------------------------------------------------------------
commit 5c1cd2227f09d9355c5ad5873148cf69ee6df3e1
Author: Charles Zhang <[email protected]>
Date: Fri Mar 27 01:02:54 2026 +0100
Fix accessing debug vars at post-call locations.
---
src/code/debug-int.lisp | 8 +++++++-
1 file changed, 7 insertions(+), 1 deletion(-)
diff --git a/src/code/debug-int.lisp b/src/code/debug-int.lisp
index a0472f39e..33b813f6e 100644
--- a/src/code/debug-int.lisp
+++ b/src/code/debug-int.lisp
@@ -2305,7 +2305,13 @@
(escaped
(sub-access-debug-var-slot
(frame-pointer frame)
- (compiled-debug-var-sc+offset debug-var)
+ ;; Immediately after a call returns, saved locations have
+ ;; not been restored yet, so we access the debug var
+ ;; directly from the save location.
+ (or (and (memq (code-location-kind (frame-code-location frame))
+ '(:single-value-return :unknown-return :known-return))
+ (compiled-debug-var-save-sc+offset debug-var))
+ (compiled-debug-var-sc+offset debug-var))
escaped))
(t
(sub-access-debug-var-slot
-----------------------------------------------------------------------
hooks/post-receive
--
SBCL