Fix cut-to-width in the presence of bad constants in dead code.
[sbcl.git] / tests / compiler.impure.lisp
index 2fe23b1..e63e2d6 100644 (file)
   (assert (equal (compile '(setf compile-setf))
                  '(setf compile-setf))))
 
+(declaim (inline cut-test))
+(defun cut-test (b)
+  (cond ((integerp b) b)
+        (b 469)
+        (t 2)))
+
+(with-test (:name :cut-to-width-bad-constant)
+  (assert (= (funcall (compile nil
+                               `(lambda ()
+                                  (multiple-value-bind (a b) (values t t)
+                                    (declare (ignore b))
+                                    (mask-field (byte 10 0) (cut-test a))))))
+             469)))
+
 \f
 ;;;; tests not in the problem domain, but of the consistency of the
 ;;;; compiler machinery itself