X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=src%2Fcode%2Fsharpm.lisp;h=e720699cb1de1186ab82911c58ff92f3eb2c9997;hb=3c7a9b188472ae8381e50a3dfbed1c6631219893;hp=0d4508ca22cbc19b7d0bea1c05bea2c5d593c53c;hpb=fced4ded7356f1ce4afacd0dc6b2990506e28c47;p=sbcl.git diff --git a/src/code/sharpm.lisp b/src/code/sharpm.lisp index 0d4508c..e720699 100644 --- a/src/code/sharpm.lisp +++ b/src/code/sharpm.lisp @@ -303,9 +303,14 @@ (let ((entry (assoc label *sharp-equal-alist*))) (if entry (third entry) - (let ((pair (assoc label *sharp-sharp-alist*))) + (let (;; Has this label been defined previously? (Don't read + ;; ANSI "2.4.8.15 Sharpsign Equal-Sign" and worry that + ;; it requires you to implement forward references, + ;; because forward references are disallowed in + ;; "2.4.8.16 Sharpsign Sharpsign".) + (pair (assoc label *sharp-sharp-alist*))) (unless pair - (%reader-error stream "object is not labelled #~S#" label)) + (%reader-error stream "reference to undefined label #~D#" label)) (cdr pair))))) ;;;; conditional compilation: the #+ and #- readmacros