Check dynamically whether a RETURN operator has been invoked inside a loop.
commit3d071924bfcdeaf4581c0bc4702afd400ca067c4
authorBoris Smilga <boris.smilga@gmail.com>
Mon, 16 Jul 2012 13:08:15 +0000 (16 17:08 +0400)
committerVladimir Sedach <vsedach@gmail.com>
Fri, 10 Aug 2012 23:08:39 +0000 (10 19:08 -0400)
treec2a68e93fb26cf2c955011689f661b5d3fe3f5af
parentf6f6bc9240cf86f7dd3a6fd304c27a4cec130b98
Check dynamically whether a RETURN operator has been invoked inside a loop.

This fixes incorrect handling of conditional returns, such as in

 (block nil
   (dotimes (i 10)
     (if (test i) (return i)))
   (return -1))
src/compiler.lisp
src/non-cl.lisp
src/special-operators.lisp