X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=tests%2Fcompiler.pure.lisp;h=4b0af785abbc68f842ca87f96a571ffc49a7310e;hb=36a379d746b9eb74ba8c5afff40dc5dcb9f4557a;hp=ac32148ad3fcebaae8465ee35208caf0b1b5affc;hpb=9be4fffc49a9a3f4e25817dd436a380ac562c3ad;p=sbcl.git diff --git a/tests/compiler.pure.lisp b/tests/compiler.pure.lisp index ac32148..4b0af78 100644 --- a/tests/compiler.pure.lisp +++ b/tests/compiler.pure.lisp @@ -2048,7 +2048,7 @@ ;; Reported by James Knight ;; Subject: [Sbcl-devel] AVER: "(EQ (SB-NAME (SC-SB (TN-SC TN))) 'REGISTERS)" ;; Date: Fri, 24 Mar 2006 19:30:00 -0500 -(with-test (:name :logbitp-vop :fails-on :x86) +(with-test (:name :logbitp-vop) (compile nil '(lambda (days shift) (declare (type fixnum shift days)) @@ -2067,3 +2067,22 @@ (- (+ source-day canonicalized-shift) 7))))))) result)))) + +;;; MISC.637: incorrect delaying of conversion of optional entries +;;; with hairy constant defaults +(let ((f '(lambda () + (labels ((%f11 (f11-2 &key key1) + (labels ((%f8 (f8-2 &optional (f8-5 (if nil (return-from %f11 0) 0))) + :bad1)) + (%f8 (%f8 0))) + :bad2)) + :good)))) + (assert (eq (funcall (compile nil f)) :good))) + +;;; MISC.555: new reference to an already-optimized local function +(let* ((l '(lambda (p1) + (declare (optimize (speed 1) (safety 2) (debug 2) (space 0)) (type keyword p1)) + (keywordp p1))) + (f (compile nil l))) + (assert (funcall f :good)) + (assert (nth-value 1 (ignore-errors (funcall f 42)))))