(assert (equal y #*00))
(funcall f y 1)
(assert (equal y #*10))))
+
+(handler-bind ((sb-ext:compiler-note #'error))
+ (compile nil '(lambda (x)
+ (declare (type (simple-array (simple-string 3) (5)) x))
+ (aref (aref x 0) 0))))
+
+;; compiler failure
+(let ((f (compile nil '(lambda (x) (typep x '(not (member 0d0)))))))
+ (assert (funcall f 1d0)))
+
+(compile nil '(lambda (x)
+ (declare (double-float x))
+ (let ((y (* x pi)))
+ (atan y y))))
+
+;; bogus optimization of BIT-NOT
+(multiple-value-bind (result x)
+ (eval '(let ((x (eval #*1001)))
+ (declare (optimize (speed 2) (space 3))
+ (type (bit-vector) x))
+ (values (bit-not x nil) x)))
+ (assert (equal x #*1001))
+ (assert (equal result #*0110)))