0.9.11.38:
[sbcl.git] / tests / compiler.pure.lisp
index c648432..4b0af78 100644 (file)
 ;; Reported by John Wiseman, sbcl-devel
 ;; Subject: [Sbcl-devel] float type derivation bug?
 ;; Date: Tue, 4 Apr 2006 15:28:15 -0700
-(with-test (:name (:type-derivation :float-bounds)
-                  :fails-on :sbcl)
+(with-test (:name (:type-derivation :float-bounds))
   (compile nil '(lambda (bits)
                  (let* ((s (if (= (ash bits -31) 0) 1 -1))
                         (e (logand (ash bits -23) #xff))
 ;; 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 (:compiler :type-derivation :float-bounds)
-                  :fails-on :x86)
+(with-test (:name :logbitp-vop)
   (compile nil
            '(lambda (days shift)
              (declare (type fixnum shift days))
                                        (- (+ 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)))))