(%f11 -120429363 (%f11 62362 b)))))
6714367 9645616 -637681868)
-264223548))
+
+;;; Bug reported by Paul F. Dietz caused by derive type loss in VALUE
+;;; transform
+(assert (equal (multiple-value-list
+ (funcall
+ (compile nil '(lambda ()
+ (declare (optimize (speed 1) (space 0) (safety 3) (debug 3) (compilation-speed 1)))
+ (ceiling
+ (ceiling
+ (flet ((%f16 () 0)) (%f16))))))))
+ '(0 0)))
+
+;;; MISC.184
+(assert (zerop
+ (funcall
+ (compile
+ nil
+ '(lambda (a b c)
+ (declare (type (integer 867934833 3293695878) a))
+ (declare (type (integer -82111 1776797) b))
+ (declare (type (integer -1432413516 54121964) c))
+ (declare (optimize (speed 3)))
+ (declare (optimize (safety 1)))
+ (declare (optimize (debug 1)))
+ (if nil
+ (flet ((%f15 (f15-1 &optional (f15-2 c))
+ (labels ((%f1 (f1-1 f1-2) 0))
+ (%f1 a 0))))
+ (flet ((%f4 ()
+ (multiple-value-call #'%f15
+ (values (%f15 c 0) (%f15 0)))))
+ (if nil (%f4)
+ (flet ((%f8 (f8-1 &optional (f8-2 (%f4)) (f8-3 0))
+ f8-3))
+ 0))))
+ 0)))
+ 3040851270 1664281 -1340106197)))
+
+;;; MISC.249
+(assert (zerop
+ (funcall
+ (compile
+ nil
+ '(lambda (a b)
+ (declare (notinline <=))
+ (declare (optimize (speed 2) (space 3) (safety 0)
+ (debug 1) (compilation-speed 3)))
+ (if (if (<= 0) nil nil)
+ (labels ((%f9 (f9-1 f9-2 f9-3)
+ (ignore-errors 0)))
+ (dotimes (iv4 5 a) (%f9 0 0 b)))
+ 0)))
+ 1 2)))
+
+;;; MISC.259-264 (aka "CSR screwed up implementing *-MOD32")
+(assert
+ (= (funcall
+ (compile
+ nil
+ '(lambda (a)
+ (declare (type (integer 177547470 226026978) a))
+ (declare (optimize (speed 3) (space 0) (safety 0) (debug 0)
+ (compilation-speed 1)))
+ (logand a (* a 438810))))
+ 215067723)
+ 13739018))
+
+;;; bug 299 (reported by PFD)
+(assert
+ (equal (funcall
+ (compile
+ nil
+ '(lambda ()
+ (declare (optimize (debug 1)))
+ (multiple-value-call #'list
+ (if (eval t) (eval '(values :a :b :c)) nil)
+ (catch 'foo (throw 'foo (values :x :y)))))))
+ '(:a :b :c :x :y)))
+;;; MISC.185
+(assert (equal
+ (funcall
+ (compile
+ nil
+ '(lambda (a b c)
+ (declare (type (integer 5 155656586618) a))
+ (declare (type (integer -15492 196529) b))
+ (declare (type (integer 7 10) c))
+ (declare (optimize (speed 3)))
+ (declare (optimize (safety 1)))
+ (declare (optimize (debug 1)))
+ (flet ((%f3
+ (f3-1 f3-2 f3-3
+ &optional (f3-4 a) (f3-5 0)
+ (f3-6
+ (labels ((%f10 (f10-1 f10-2 f10-3)
+ 0))
+ (apply #'%f10
+ 0
+ a
+ (- (if (equal a b) b (%f10 c a 0))
+ (catch 'ct2 (throw 'ct2 c)))
+ nil))))
+ 0))
+ (%f3 (%f3 (%f3 b 0 0 0) a 0) a b b b c)))) 5 0 7)
+ 0))
+;;; MISC.186
+(assert (eq
+ (eval
+ '(let* ((form '(labels ((%f3 (f3-1 f3-2) f3-1))
+ (apply #'%f3 b (catch 'ct8 (throw 'ct8 (logeqv (%f3 c 0)))) nil)))
+ (vars '(b c))
+ (fn1 `(lambda ,vars
+ (declare (type (integer -2 19) b)
+ (type (integer -1520 218978) c)
+ (optimize (speed 3) (safety 1) (debug 1)))
+ ,form))
+ (fn2 `(lambda ,vars
+ (declare (notinline logeqv apply)
+ (optimize (safety 3) (speed 0) (debug 0)))
+ ,form))
+ (cf1 (compile nil fn1))
+ (cf2 (compile nil fn2))
+ (result1 (multiple-value-list (funcall cf1 2 18886)))
+ (result2 (multiple-value-list (funcall cf2 2 18886))))
+ (if (equal result1 result2)
+ :good
+ (values result1 result2))))
+ :good))