X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=tests%2Fcompiler.pure-cload.lisp;h=c1b5ef1b23d5c822ad67b9307b6da5b7d7cc6479;hb=6c4d4d984b1af6b2a73568cec3ab9c8795cff2da;hp=8c7dd8eb2d710c8bbedf90f2496df5ee460870a9;hpb=4a4f1e5ca70363d64d7cbb141863a387334e6760;p=sbcl.git diff --git a/tests/compiler.pure-cload.lisp b/tests/compiler.pure-cload.lisp index 8c7dd8e..c1b5ef1 100644 --- a/tests/compiler.pure-cload.lisp +++ b/tests/compiler.pure-cload.lisp @@ -20,3 +20,18 @@ (declare (type (mod 1000) a b)) (let ((tmp (= 10 (+ (incf a) (incf a) (incf b) (incf b))))) (or tmp (error "TMP not true")))) + +;;; Exercise a (byte-)compiler bug by causing a call to ERROR, not +;;; because the symbol isn't defined as a variable, but because +;;; TYPE-ERROR in SB-KERNEL::OBJECT-NOT-TYPE-ERROR-HANDLER: +;;; 0 is not of type (OR FUNCTION SB-KERNEL:FDEFN). +;;; Correct behavior is to warn at compile time because the symbol +;;; isn't declared as a variable, but to set its SYMBOL-VALUE anyway. +;;; +;;; This bug was in sbcl-0.6.11.13. +(print (setq improperly-declared-var '(1 2))) +(assert (equal (symbol-value 'improperly-declared-var) '(1 2))) +(makunbound 'improperly-declared-var) +;;; This is a slightly different way of getting the same symptoms out +;;; of the sbcl-0.6.11.13 byte compiler bug. +(print (setq *print-level* *print-level*))