diff --git a/src/compiler/ltn.lisp b/src/compiler/ltn.lisp index 1abfb4bf8..1e67b1633 100644 --- a/src/compiler/ltn.lisp +++ b/src/compiler/ltn.lisp @@ -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|#)) diff --git a/tests/mv-return.pure.lisp b/tests/mv-return.pure.lisp index 0babe52f7..4c4dca84a 100644 --- a/tests/mv-return.pure.lisp +++ b/tests/mv-return.pure.lisp @@ -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)