From: David Vázquez Date: Wed, 22 May 2013 17:09:24 +0000 (+0100) Subject: Signal an error for invalid go tags in tagbody X-Git-Url: http://repo.macrolet.net/gitweb/?a=commitdiff_plain;h=379d22b2177bec1925a5a086094f2a51153b96ca;p=jscl.git Signal an error for invalid go tags in tagbody --- diff --git a/experimental/compiler.lisp b/experimental/compiler.lisp index 11fc293..03b7499 100644 --- a/experimental/compiler.lisp +++ b/experimental/compiler.lisp @@ -612,9 +612,13 @@ (push (cons tag (current-block)) tag-blocks)))) ;; Convert the statements into the correct block. (dolist (stmt statements) - (if (go-tag-p stmt) - (set-cursor :block (cdr (assoc stmt tag-blocks))) - (ir-convert stmt)))))) + (cond + ((go-tag-p stmt) + (set-cursor :block (cdr (assoc stmt tag-blocks)))) + ((atom stmt) + (error "Invalid tag `~S'" stmt)) + (t + (ir-convert stmt))))))) (define-ir-translator go (label) (let ((tag-binding