Disable pass-through-path-p for NLX

nlx-entry-pass-through currently makes the whole function return,
bypassing any other cleanups.
This commit is contained in:
Stas Boukarev 2026-09-04 20:07:50 +03:00
parent 07bb993d53
commit ea4332cd1f
2 changed files with 8 additions and 4 deletions

View file

@ -319,8 +319,9 @@
t)
(combination
(let ((name (combination-fun-source-name node nil)))
(unless (member name '(%cleanup-point %special-unbind
%catch-breakup
(unless (member name '(%special-unbind
#+nil %cleanup-point
#+nil %catch-breakup
;; not useful in practice, because the user-written cleaup
;; code needs to be analyzed for non-mv-clobbering
#|%unwind-protect-breakup|#))

View file

@ -93,10 +93,13 @@
`(lambda (x) (multiple-value-prog1 ,form (h x))))))
(assert (find 'sb-c:return-multiple vops))))
(with-test (:name :pass-through-dx-return)
(with-test (:name :pass-through-dx-return
:implemented-on (and :x86-64 :tls-based-mv-return)
:broken-on :sbcl)
(test-passthru-return '(sb-int:dx-let ((y (cons x x))) (g y))))
(with-test (:name :pass-through-special-unbind)
(with-test (:name :pass-through-special-unbind
:implemented-on (and :x86-64 :tls-based-mv-return))
(test-passthru-return '(let ((*print-base* 10)) (g x))))
(defun passthru-callee-normal (n)