The simpler form which suffers from the same issue with %pop-values (and which is a bit easier to track through IR1 phases):
(defun buu () (multiple-value-prog1 (values nil nil) (catch 'bar (return-from buu (eval '(throw 'bar 1))))))
Returns garbage, just like the original form.
The simpler form which suffers from the same issue with %pop-values (and which is a bit easier to track through IR1 phases):
(defun buu ()
(multiple- value-prog1
(values nil nil)
(return- from buu
( eval '(throw 'bar 1))))))
(catch 'bar
Returns garbage, just like the original form.