And simpler. Oddly, it stops failing if the unused B parameter is removed.
compile nil '(lambda (b c) (declare (optimize (debug 2))) (declare (ignore b)) (block b8 (labels ((%f (&optional (f1 (return-from b8 1)) (f2 (if t (return-from b8 2) 5)) (f3 3) &rest r) (declare (ignore f1 f2 f3 r)) (return-from b8 0))) (dolist (x c) (declare (ignore x)) (equal 17 (%f 0 1)) (%f 4 5 6) (%f 7) )))))
And simpler. Oddly, it stops failing if the unused B parameter is removed.
compile nil
(& optional (f1 (return-from b8 1))
(f2 (if t (return-from b8 2) 5))
(f3 3)
&rest r)
(declare (ignore f1 f2 f3 r))
(return- from b8 0)))
'(lambda (b c)
(declare (optimize (debug 2)))
(declare (ignore b))
(block b8
(labels ((%f
(dolist (x c)
(declare (ignore x))
(equal 17 (%f 0 1))
(%f 4 5 6)
(%f 7)
)))))