diff --git a/ansi-tests/do-all-symbols.lsp b/ansi-tests/do-all-symbols.lsp index 7570aae89616c125eb388258fb6f4bf3e7bdfee1..8deac96dcbefe28d8a57af5765723db9bf4edb28 100644 --- a/ansi-tests/do-all-symbols.lsp +++ b/ansi-tests/do-all-symbols.lsp @@ -110,3 +110,15 @@ (do-all-symbols (s x) (declare (special x))))) :good) + +;;; Executing a return actually terminates the loop + +(deftest do-all-symbols.12 + (let ((should-have-returned nil)) + (block done + (do-all-symbols (s :bad1) + (when should-have-returned + (return-from done :bad2)) + (setq should-have-returned t) + (return :good)))) + :good)