source: trunk/tests/ansi-tests/misc.lsp @ 9860

Last change on this file since 9860 was 9860, checked in by gz, 11 years ago

don't show compiler warnings in tests that compile for funcall/apply (the warnings are still signalled and hence programmatically detectible in tests that care)

File size: 350.5 KB
Line 
1;-*- Mode:     Lisp -*-
2;;;; Author:   Paul Dietz
3;;;; Created:  Sat Sep 20 09:45:15 2003
4;;;; Contains: Miscellaneous tests
5
6;;;
7;;; This file contains odds-and-ends, mostly tests that came up as
8;;; bug-stimulators in various implementations.
9;;;
10
11(in-package :cl-test)
12
13(declaim (special *s1* *s2* *s3* *s4* *s5* *s6* *s7* *s8*))
14
15(defun call-compiled (lambda &rest args)
16  (declare (dynamic-extent args))
17  (apply-compiled lambda args))
18
19(defun apply-compiled (lambda args)
20  (apply
21   (let ((*error-output* (make-broadcast-stream))) ;; hide warning output
22     (compile nil lambda))
23   args))
24
25
26(deftest misc.1
27  (call-compiled
28   '(lambda (b)
29     (declare (type (integer 8 22337) b))
30     (+ b 2607688420))
31   100)
32  2607688520)
33
34(deftest misc.2
35  (call-compiled
36   '(lambda (b) (integer-length (dpb b (byte 4 28) -1005)))
37   12800263)
38  32)
39
40(deftest misc.3
41  (call-compiled
42    '(lambda (a b)
43       (declare (optimize (speed 3) (debug 1)))
44       (let ((v7
45              (let ((v2 (block b5 (return-from b5 (if t b -4)))))
46                a)))
47         -65667836))
48   1 2)
49  -65667836)
50
51(deftest misc.4
52  (call-compiled
53    '(lambda (a b c)
54           (declare (type (integer -629491 -333) a)
55                    (type (integer -142 1) b)
56                    (type (integer 0 12604) c)
57                    (optimize (speed 3) (safety 1) (debug 1)))
58           (let ((v6 (block b7 (return-from b7 (if (eql b 0) 1358159 a)))))
59                b))
60   -1000 -17 6143)
61  -17)
62
63(deftest misc.5
64  (call-compiled
65            '(lambda () (* 390 (- (signum (logeqv -8005440 -2310))
66                                  -10604863))))
67  4135896180)
68
69(deftest misc.6
70  (call-compiled
71            '(lambda (a c)
72                     (declare (optimize (speed 3) (debug 1)))
73                     (flet ((%f14 () (if c a -486826646)))
74                           (let ((v7 (flet ((%f18 () (%f14))) a)))
75                                (let ((v5 (%f14)))
76                                     0))))
77   10 20)
78  0)
79
80(deftest misc.7
81  (call-compiled
82                    '(lambda (c) (declare (optimize (speed 3) (debug 1)))
83                       (flet ((%f18 () -36))
84                         (flet ((%f13 ()
85                                      (let () (block b8 (return-from b8 c)))))
86                           (%f18))))
87           10)
88  -36)
89
90(deftest misc.8
91  (call-compiled
92    '(lambda (a b)
93       (declare (optimize (speed 3) (debug 1)))
94       (let ((v3 (flet ((%f12 () (min b (block b2 (return-from b2 a)))))
95                       a)))
96            (block b7
97                   (flet ((%f5 () (return-from b7 b)))
98                         (%f5)))))
99   10 20)
100  20)
101
102(deftest misc.9
103  (call-compiled
104    '(lambda ()
105             (declare (optimize (speed 3) (debug 1)))
106             (block b6
107                    (flet ((%f3 ()
108                                (ldb (byte 19 23)
109                                     (block b1
110                                            (let ()
111                                                 (- (if nil (return-from b6 89627)
112                                                        1160)
113                                                    (return-from b1 22923)))))))
114                          1))))
115  1)
116
117(deftest misc.10
118  (call-compiled
119    '(lambda (c)
120             (declare (optimize (speed 3) (debug 1))
121                      (type (integer -15417757 5816) c))
122             (flet ((%f3 () (if nil -3143 c)))
123                   (block b5
124                          (let ((v7 (if (< 23613642 (%f3)) c -23097977)))
125                               (let ((v5
126                                      (return-from b5
127                                                   (if (eql c v7)
128                                                       (let ((v6 (%f3))) 4650813)
129                                                       782))))
130                                    -4362540)))))
131   -10000)
132  782)
133
134(deftest misc.11
135  (call-compiled
136    '(lambda (a b c)
137             (declare (optimize (speed 3) (debug 1)))
138             (block b8
139                    (logxor
140                     (let ((v3 (return-from b8 120789657))) 3690)
141                     (block b2
142                            (flet ((%f9 ()
143                                        (flet ((%f10 () -1))
144                                              c)))
145                                  (flet ((%f3 () (let () (return-from b2 b))))
146                                        a))))))
147   1 2 3)
148  120789657)
149
150(deftest misc.12
151  (call-compiled
152    '(lambda (c)
153             (declare (optimize (speed 3) (safety 1) (debug 1))
154                      (type (integer -171067 -5) c))
155             (flet ((%f16 ()
156                          (flet ((%f12 () 439))
157                                3358)))
158                   (flet ((%f14 () c))
159                         (if (%f14) -1 (%f14)))))
160   -100)
161  -1)
162
163(deftest misc.13
164  (call-compiled
165    '(lambda (b c)
166             (declare (optimize (speed 3) (safety 1) (debug 1))
167                      (type  (integer -1554410 36086789) b)
168                      (type (integer -15033876209 126774299) c)
169                      )
170             (block b3
171                    (flet ((%f9 ()
172                                (abs
173                                 (flet ((%f5 ()
174                                             (return-from b3 -2)))
175                                       (if (if (<= 1 c) b (%f5)) -65 -47895812)))))
176                          (min
177                           (let ((v3 (let ((v8 (%f9))) b))) b)
178                           (if (= 1364001 (%f9))
179                               (logeqv (block b5 -2713) -247)
180                               -19)))))
181   0 0)
182  -2)
183
184(deftest misc.14
185  (call-compiled
186    '(lambda (c)
187             (declare (notinline logandc1))
188             (block b6
189                    (flet ((%f17 () (return-from b6 c)))
190                          (logandc1 (%f17)
191                                    (if 1
192                                        450967818
193                                        (let ((v1 (%f17))) -17))))))
194   10)
195  10)
196
197(deftest misc.15
198  (call-compiled
199    '(lambda (a b)
200             (declare (optimize (speed 3) (safety 1) (debug 1)))
201             (flet ((%f6 () a))
202                   (block b5
203                          (flet ((%f14 ()
204                                       (min 17593 (block b1 (return-from b1 b)))))
205                                (block b7 (if (%f6) (return-from b7 28182012)
206                                              (return-from b5 0)))))))
207   3 5)
208  28182012)
209
210(deftest misc.16
211  (call-compiled
212    '(lambda (a c)
213             (flet ((%f14 ()
214                          (block b6
215                                 (flet ((%f7 () (return-from b6 4)))
216                                       (if 587793 (if (%f7) c -23086423) (%f7))))))
217                   (block b1
218                          (flet ((%f18 () a))
219                                (logandc1 (return-from b1 -2781)
220                                          (if (%f14) 58647578 -396746))))))
221   1 2)
222  -2781)
223
224(deftest misc.17
225  (call-compiled
226    '(lambda (a b c)
227             (declare (optimize (speed 3) (safety 1) (debug 1))
228                      (type (integer 4 23363) b)
229                      (type (integer -32681 41648) c)
230                      )
231             (flet ((%f18 ()
232                          (if nil c b)))
233                   (if (if (> -71810514 a) 102077 465393)
234                       (block b3 (if (%f18) (return-from b3 c) c))
235                       (%f18))))
236   0 10 1000)
237  1000)
238
239(deftest misc.18
240  (call-compiled
241    '(lambda (a b c)
242             (declare (optimize (speed 3) (safety 1) (debug 1))
243                      (type (integer 7 58010860) a)
244                      (type (integer -3573280 -1) b)
245                      (type (integer -920848 -819) c)
246                      )
247             (flet ((%f15 () (if (logbitp 5 a) a c)))
248                   (min (if (%f15) b -39) (if (> 0 -14756) b (%f15)))))
249   8 -1000 -10000)
250  -1000)
251
252(deftest misc.19
253  (call-compiled
254    '(lambda (a b c)
255             (declare (type (integer 54 3862515) a) (type (integer -961325 1539) b)
256                      (type (integer 6 31455) c) (ignorable a b c)
257                      (optimize (speed 3) (safety 1) (debug 1)))
258             (lognor
259              (flet ((%f13 () b)) (%f13))
260              (flet ((%f1 () (return-from %f1 a)))
261                    (labels ((%f3 () (%f1)))
262                            -428))))
263   100 0 200)
264  427)
265
266(deftest misc.20
267  (call-compiled
268    '(lambda (a b c)
269             (declare (type (integer -1 31880308) a)
270                      (type (integer -11374222037 5331202966) b)
271                      (type (integer -483 -1) c)
272                      (ignorable a b c)
273                      (optimize (speed 3) (safety 1) (debug 1)))
274             (labels ((%f6 () a))
275                     (if (eql (let ((v9 (%f6))) -50072824) c)
276                      28146341
277                      (if (< 119937 21304962) 21304962 (%f6)))))
278   0 0 -1)
279  21304962)
280
281(deftest misc.21
282  (call-compiled
283    '(lambda (a b c)
284             (declare (type (integer 398 3955) a) (type (integer 233 464963) b)
285                      (type (integer -124477 16) c) (ignorable a b c)
286                      (optimize (speed 3) (safety 1) (debug 1)))
287             (logior
288              (flet ((%f18 ()
289                           -3584768))
290                    (%f18))
291              (flet ((%f1 ()
292                          (return-from %f1 c)))
293                    (flet ((%f9 ()
294                                (if (%f1) 24181 7)))
295                          56048))))
296   400 300 0)
297  -3547152)
298
299(deftest misc.22
300  (call-compiled
301    '(lambda (a b c)
302             (declare (type (integer -126378 -103) a)
303                      (type (integer -1158604975 1) b)
304                      (type (integer 502 28036) c)
305                      (ignorable a b c)
306                      (optimize (speed 3) (safety 1) (debug 1)))
307             (labels ((%f13 () c))
308                     (labels ((%f3 ()
309                                   (logandc1
310                                    c
311                                    (block b6
312                                           (max -73100
313                                                (if b (return-from b6 4935) (%f13)))))))
314                             (%f13))))
315   -200 0 1000)
316  1000)
317
318(deftest misc.23
319  (call-compiled
320    '(lambda (a b c)
321             (declare (type (integer 1 18911480) a)
322                      (type (integer -1 48333) b)
323                      (type (integer -3881001767 -1937357) c)
324                      (ignorable a b c)
325                      (optimize (speed 3) (safety 1) (debug 1)))
326             (labels ((%f10 () c))
327                     (block b7
328                            (logorc2
329                             (* (%f10)
330                                (if (ldb-test (byte 27 1) -11337)
331                                    (return-from b7 -2)
332                                    246137101))
333                             (min (%f10) (return-from b7 -76114))))))
334   1 0 -2000000)
335  -2)
336
337(deftest misc.24
338  (call-compiled
339    '(lambda (a b c)
340             (declare (type (integer -1477249397 -10697252) a)
341                      (type (integer -7 54591) b)
342                      (type (integer -102559556 15) c)
343                      (ignorable a b c)
344                      (optimize (speed 3) (safety 1) (debug 1)))
345             (block b8
346                    (let ((v1 (return-from b8 a)))
347                         (1+
348                          (block b3
349                                 (flet ((%f10 ()
350                                              (min a (return-from b3 -1))))
351                                       16776220))))))
352   -11000000 0 0)
353  -11000000)
354
355(deftest misc.25
356  (call-compiled
357    '(lambda (a b c)
358             (declare (type (integer -944 111244) a)
359                      (type (integer 100512 3286178) b)
360                      (type (integer -2170236 -107) c)
361                      (ignorable a b c)
362                      (optimize (speed 3) (safety 1) (debug 1)))
363             (labels ((%f17 () c))
364                     (labels ((%f16 () a))
365                             (if (if (logbitp 10 1029643) t 355)
366                                 (if (equal (%f17) b) c a)
367                                 (if (= 1325844 (%f16)) -50285 (1- (%f17)))))))
368   0 200000 -200)
369  0)
370
371(deftest misc.26
372  (call-compiled
373    '(lambda (c)
374             (declare (optimize speed))
375             (block b5
376                    (if (logbitp 6 -97)
377                        (let ((v2 (block b8 -42484))) c)
378                        (flet ((%f10 () (return-from b5 -785143)))
379                              (let ((v3 (%f10)))
380                                   (%f10))))))
381   0)
382  -785143)
383
384(deftest misc.27
385  (call-compiled
386    '(lambda (a b c)
387             (declare (optimize (speed 3) (debug 1)))
388             (labels ((%f14 () c))
389                     (logand (%f14)
390                             (labels ((%f15 () (logeqv (let ((v1 b)) c)
391                                                       (return-from %f15 -1740))))
392                                     (labels ((%f8 () (%f15)))
393                                             a)))))
394   5 2 3)
395  1)
396
397(deftest misc.28
398  (call-compiled
399    '(lambda (a b c)
400          (declare
401           (type (integer 1948 12024) b)
402           (type (integer -104357939 -252) c)
403           (optimize (speed 3) (debug 1)))
404    (flet ((%f18 () c))
405      (logandc1 (if (eql b (%f18)) 0 a)
406                (if (ldb-test (byte 30 30) 1) (%f18) 1)
407                )))
408   0 2000 -300)
409  1)
410
411(deftest misc.29
412  (call-compiled
413    '(lambda (a b c)
414             (declare (type (integer 661607 10451683348) a)
415                      (type (integer -2 -2) b)
416                      (type (integer 5996117 18803237) c)
417                      (optimize (speed 3) (safety 1) (debug 1)))
418             (labels ((%f16 () -29))
419               (flet ((%f7 ()
420                           (labels ((%f1 () a))
421                             (let ()
422                               (block b3
423                                 (if 37101207
424                                     (return-from b3 -5322045)
425                                   (let ((v5 b))
426                                     146099574)))))))
427                 (if (%f16) c c))))
428   1000000 -2 6000000)
429  6000000)
430
431(deftest misc.30
432  (call-compiled
433    '(lambda (c)
434             (declare (type (integer -253 -1) c)
435                      (optimize (speed 3) (safety 1) (debug 1)))
436             (flet ((%f8 () c))
437                   (if (= (%f8) 481) (%f8) 1779465)))
438   -100)
439  1779465)
440
441(deftest misc.31
442  (call-compiled '(lambda () (let ((v9 (labels ((%f13 () nil)) nil)))
443                             (let ((v3 (logandc2 97 3)))
444                                  (* v3 (- 37391897 (logand v3 -66)))))))
445  3589619040)
446
447(deftest misc.32
448  (call-compiled
449    '(lambda (a d)
450             (declare (type (integer -8507 26755) a)
451                      (type (integer -393314538 2084485) d)
452                      (optimize (speed 3) (safety 1) (debug 1)))
453             (gcd
454              (if (= 0 a) 10 (abs -1))
455              (logxor -1
456                      (min -7580
457                           (max (logand a 31365125) d)))))
458   1 1)
459  1)
460
461(deftest misc.33
462  (call-compiled
463    '(lambda (a b c d)
464             (declare (type (integer 240 100434465) a)
465                      (optimize (speed 3) (safety 1) (debug 1)))
466             (logxor
467              (if (ldb-test (byte 27 4) d)
468                  -1
469                  (max 55546856 -431))
470              (logorc2
471               (if (>= 0 b)
472                   (if (> b c) (logandc2 c d) (if (> d 224002) 0 d))
473                   (signum (logior c b)))
474               (logior a -1))))
475   256 0 0 0)
476  55546856)
477
478(deftest misc.34
479  (call-compiled
480            `(lambda (b c)
481                     (declare (type (integer -23228343 2) b)
482                              (type (integer -115581022 512244512) c)
483                              (optimize (speed 3) (safety 1) (debug 1)))
484                     (* (* (logorc2 3 (deposit-field 4667947 (byte 14 26) b))
485                           (deposit-field b (byte 25 27) -30424886))
486                        (dpb b (byte 23 29) c)
487                        ))
488   0 0)
489  0)
490
491(deftest misc.35
492  (call-compiled
493    '(lambda (c)
494             (declare (type (integer -5945502333 12668542) c)
495                      (optimize (speed 3)))
496             (let ((v2 (* c 12)))
497                  (- (max (if (/= 109335113 v2) -26479 v2)
498                          (deposit-field 311
499                                         (byte 14 28)
500                                         (min (max 521326 c) -51))))))
501   12668542)
502  26479)
503
504(deftest misc.36
505  (call-compiled
506            '(lambda ()
507               (declare (notinline + logand)
508                        (optimize (speed 0)))
509               (logand
510                (block b5
511                       (flet ((%f1 ()
512                                   (return-from b5 -220)))
513                             (let ((v7 (%f1)))
514                                  (+ 359749 35728422))))
515                -24076)))
516  -24284)
517
518(deftest misc.37
519  (call-compiled
520    '(lambda (b)
521       (declare (notinline -) (optimize (speed 0)))
522       (- (block b4
523                 (flet ((%f4 ()
524                             (return-from b4 b)))
525                       (%f4)))))
526   10)
527  -10)
528
529(deftest misc.38
530  (call-compiled
531    '(lambda (x) (declare (type (integer 0 100) x)
532                          (optimize (speed 3) (safety 1)))
533       (logandc1 x x))
534   79)
535  0)
536
537(deftest misc.39
538  (call-compiled
539    '(lambda (x) (declare (type (integer 0 100) x)
540                          (optimize (speed 3) (safety 1)))
541       (logandc2 x x))
542   79)
543  0)
544
545(deftest misc.40
546  (call-compiled
547    '(lambda (x) (declare (type (integer 0 100) x)
548                          (optimize (speed 3) (safety 1)))
549       (logorc1 x x))
550   79)
551  -1)
552
553(deftest misc.41
554  (call-compiled
555    '(lambda (x) (declare (type (integer 0 100) x)
556                          (optimize (speed 3) (safety 1)))
557       (logorc2 x x))
558   79)
559  -1)
560
561(deftest misc.42
562  (call-compiled
563    '(lambda (x)
564       (declare (type (integer -100 100) x))
565       (ldb (byte 1 32) x))
566   -1)
567  1)
568
569(deftest misc.43
570  (call-compiled
571        '(lambda () (flet ((%f2 () 288213285))
572                      (+ (%f2) (* 13 (%f2))))))
573  4034985990)
574 
575
576(deftest misc.44
577  (call-compiled
578    '(lambda (a)
579             (declare (type (integer -917858 964754309) a)
580                      (optimize (speed 3)))
581             (* 25 (min (max a 171625820) 171626138)))
582   861929141)
583  4290653450)
584
585(deftest misc.45
586  (call-compiled
587    '(lambda (b)
588             (declare (type (integer 21 9673) b)
589                      (optimize (speed 3)))
590             (* (integer-length -198435631) (+ b 137206182)))
591   6027)
592  3841941852)
593
594(deftest misc.46
595  (call-compiled
596    '(lambda (b c)
597             (declare (type (integer 0 1) b) (optimize (speed 3)))
598             (flet ((%f2 () (lognor (block b5 138) c)))
599                   (if (not (or (= -67399 b) b))
600                       (deposit-field (%f2) (byte 11 8) -3)
601                       c)))
602   0 0)
603  0)
604
605(deftest misc.47
606  (call-compiled
607    '(lambda (a)
608             (declare (type (integer -4005718822 -50081775) a)
609                      (optimize (speed 3) (safety 1) (debug 1)))
610             (lognor (ash a (min 0 a)) a))
611   -2878148992)
612  0)
613
614(deftest misc.48
615  (call-compiled
616    '(lambda (a) (declare (notinline ash min)) (lognor (ash a (min 0 a)) a))
617   -2878148992)
618  0)
619
620(deftest misc.49
621  (let ((body '(truncate (logorc1 -996082 C) -2))
622        (arg 25337234))
623    (values
624     (call-compiled `(lambda (c) ,body) arg)
625     (call-compiled `(lambda (c) (declare (notinline truncate))
626                              ,body) arg)))
627  -13099001
628  -13099001)
629
630(deftest misc.50
631  (call-compiled `(lambda (c)
632                           (declare (optimize (speed 3))
633                                    (type (integer 23062188 149459656) c))
634                           (mod c (min -2 0)))
635           95019853)
636  -1)
637
638(deftest misc.51
639  (call-compiled   `(lambda (b)
640                           (declare (optimize (speed 3))
641                                    (type (integer 2 152044363) b))
642                            (rem b (min -16 0)))
643           108251912)
644  8)
645 
646(deftest misc.53
647  (call-compiled '(lambda ()
648                   (let (x)
649                     (block nil
650                       (flet ((%f (y z) (if (> y z) (setq x y) (setq x z))))
651                         (%f 1 2)
652                         (%f (return 14) 2)))
653                     x)))
654  2)
655
656(deftest misc.54
657  (call-compiled '(lambda (a c)
658                   (declare (type (integer 8 117873977) a)
659                            (type (integer -131828754 234037511) c)
660                            (optimize (speed 3) (safety 1) (debug 1)))
661                   (* (mod (signum a) (max 50 -358301))
662                      (* -2320445737132
663                         (* (* a (deposit-field a (byte 32 19) a)) c))))
664   11386 165297671)
665  -49725654774521915007942373712)
666
667(deftest misc.55
668  (call-compiled '(lambda (a b c)
669                   (declare (type (integer -5498929 389890) a)
670                            (type (integer -5029571274946 48793670) b)
671                            (type (integer 9221496 260169518304) c)
672                            (ignorable a b c)
673                            (optimize (speed 3) (safety 1) (debug 1)))
674                   (- (mod 1020122 (min -49 -420))
675                      (logandc1
676                       (block b2
677                         (mod c (min -49 (if t (return-from b2 1582) b))))
678                       (labels ((%f14 () (mod a (max 76 8))))
679                         b))))
680   -1893077 -2965238893954 30902744890)
681  2965238894454)
682
683(deftest misc.56
684  (call-compiled '(lambda (a c)
685                   (declare (type (integer -8691408487404 -9) a)
686                            (type (integer 266003133 2112105962) c)
687                            (optimize (speed 3) (safety 1) (debug 1)))
688                   (truncate (max (round a) c) (* (* a a) a)))
689   -10 266003133)
690  -266003
691  133)
692
693(deftest misc.57
694  (call-compiled '(lambda (a b c)
695                         (declare (type (integer -1907 58388940297) a)
696                                  (type (integer -646968358 294016) b)
697                                  (type (integer -708435313 89383896) c)
698                                  (optimize (speed 3) (safety 1) (debug 1)))
699                         (let ((v6 (abs (min a (signum c)))))
700                              (if (ceiling v6 (max 77 v6)) b 2)))
701   50005747335 -363030456 17382819)
702  -363030456)
703
704(deftest misc.58
705  (call-compiled '(lambda (a)
706                   (declare (type (integer -23 66141285) a)
707                            (optimize (speed 3)))
708                   (logorc2 (setq a 35191330) (* a 107)))
709   4099241)
710  -3764388885)
711
712(deftest misc.59
713  (call-compiled '(lambda (a b c)
714                   (declare (type (integer -3966039360 -879349) a)
715                            (type (integer -62642199164 -8993827395) b)
716                            (type (integer -8065934654337 223) c)
717                            (optimize (speed 3) (safety 1) (debug 1)))
718                   (floor (* (ceiling c) c)
719                          (max 78 (* b (* a (* a b))))))
720   -1000000 -10000000000 0)
721  0 0)
722
723(deftest misc.60
724  (call-compiled
725             '(lambda ()
726                (let ((v5 46660))
727                  (setq v5 (signum (rem v5 (max 53 v5)))))))
728  0)
729
730(deftest misc.61
731  (progn
732    (compile nil
733             '(lambda (a b)
734                (declare (type (integer -1785799651 -2) a)
735                         (type (integer -27 614132331) b)
736                         (optimize (speed 3) (safety 1) (debug 1)))
737                (ceiling (max (floor -733432 (max 84 -20)) 346)
738                         (min -10 (* 17592186028032 (* (* a b) a))))))
739    :good)
740  :good)
741
742(deftest misc.62
743  (call-compiled '(lambda (a)
744                (if (and (if a t nil) nil)
745                    a
746                  (min (block b5 -1) a)))
747           100)
748  -1)
749
750;;; sbcl bug (probably #233)
751(deftest misc.63
752  (let* ((form '(flet ((%f12 () (setq c -9868204937)))
753                  (if (<= c (%f12)) -2 (if (= c c) b c))))
754         (form1 `(lambda (b c)
755                   (declare (type (integer -80421740610 1395590616) c))
756                   ,form))
757         (form2 `(lambda (b c) ,form))
758         (vals '(-696742851945 686256271)))
759    (eqlt (apply-compiled form1 vals)
760          (apply-compiled form2 vals)))
761  t)
762
763;;; sbcl bug (probably #233)
764(deftest misc.64
765  (let* ((form '(logcount
766                 (if (not (> c (let ((v7 (setq c -246180))) -1)))
767                     (ldb (byte 24 11) c)
768                   c)))
769         (form1 `(lambda (c)
770                   (declare (type (integer -256128 207636) c))
771                   ,form))
772         (form2 `(lambda (c) ,form))
773         (vals '(11292))
774         )
775    (eqlt (apply-compiled form1 vals)
776          (apply-compiled form2 vals)))
777  t)
778
779;;; sbcl bug (probably #233)
780(deftest misc.65
781  (let ((form1 '(lambda (b c)
782                  (declare (type (integer -350684427436 -255912007) b))
783                  (logandc2 c (if (< b (setq b -25647585550)) b 0))))
784        (form2 '(lambda (b c)
785                  (logandc2 c (if (< b (setq b -25647585550)) b 0))))
786        (vals '(-297090677547 -20121092)))
787    (eqlt (apply-compiled form1 vals)
788          (apply-compiled form2 vals)))
789  t)
790
791(deftest misc.66
792  (let* ((form '(if (> a (setq a -2198578292))
793                    (min b (if (<= a -14866) a -128363))
794                  a))
795         (form1 `(lambda (a b)
796                   (declare (type (integer -3709231882 0) a))
797                   (declare (type (integer -562051054 -1) b))
798                   ,form))
799         (form2 `(lambda (a b) ,form))
800         (vals '(-2095414787 -256985442)))
801    (eqlt (apply-compiled form1 vals)
802          (apply-compiled form2 vals)))
803  t)
804
805;;; sbcl/cmucl bug (on sparc)
806(deftest misc.67
807  (call-compiled '(lambda (x)
808                    (declare (type (integer 10604862 10604862) x)
809                             (optimize speed))
810                    (* x 390))
811    10604862)
812  4135896180)
813
814;;; cmucl bug (cvs, 10/10/2003)
815(deftest misc.68
816  (call-compiled
817            '(lambda (b)
818               (flet ((%f8 () (rem b (identity (return-from %f8 0)))))
819                 (lognor (%f8) 0)))
820   0)
821  -1)
822
823(deftest misc.69
824  (call-compiled
825            '(lambda (b)
826               (flet ((%f11 () (logorc2 (block b1 (let () (return-from b1 b)))
827                                        -1984)))
828                 b))
829   0)
830  0)
831
832(deftest misc.70
833  (call-compiled '(lambda (c)
834                   (declare (type (integer 46156191457 126998564334) c))
835                   (truncate c (min -16 186196583)))
836   87723029763)
837  -5482689360
838  3)
839
840(deftest misc.71
841  (call-compiled
842            '(lambda ()
843               (block b8
844                 (if (identity (return-from b8 30))
845                     1
846                   (identity
847                    (block b5
848                      (labels ((%f10 () (min -52 (return-from b5 10))))
849                        20)))))))
850  30)
851
852(deftest misc.72
853  (call-compiled '(lambda ()
854                   (flet ((%f13 () (rem 1 (min 0 (return-from %f13 17)))))
855                     (%f13))))
856  17)
857
858(deftest misc.73
859  (call-compiled '(lambda (c)
860                   (declare (type (integer 46156191457 126998564334) c))
861                   (rem c (min -1 0)))
862   87723029763)
863  0)
864
865(deftest misc.74
866  (call-compiled '(lambda ()
867                           (declare (optimize (safety 3) (speed 0) (debug 0)))
868                           (ash 6916244 (min 42 -185236061640))))
869  0)
870
871;;; Unwind-protect bug, from sbcl:
872;;; "The value NIL is not of type SB-C::NODE."
873
874(deftest misc.75
875  (call-compiled '(lambda () (flet ((%f12 () (unwind-protect 1))) 0)))
876  0)
877
878
879;;; cmucl (2003-10-12), "NIL is not of type C::REF"
880(deftest misc.76
881  (call-compiled
882            '(lambda (a c)
883                (if nil (unwind-protect (max 521739 (unwind-protect c)))
884                  (logandc2 3942 a)))
885   0 0)
886  3942)
887
888;;; gcl (2003-10-11)  Miscomputation of (mod 0 -53) in compiled code
889(deftest misc.77
890  (call-compiled '(lambda () (mod 0 -53)))
891  0)
892
893
894;;; cmucl (2003-10-12)  "NIL is not of type C::BYTE-LAMBDA-INFO"
895(deftest misc.78
896  (call-compiled '(lambda ()
897                   (declare (optimize (speed 0) (debug 0)))
898                   (let ((v4
899                          (case 227
900                            ((-11113 -106126) (unwind-protect 8473))
901                            (t 43916))))
902                     -12)))
903  -12)
904
905;;; Same as misc.78, but with no declarations
906;;; In cmucl (2003-10-12)  "NIL is not of type C::ENVIRONMENT"
907(deftest misc.79
908  (call-compiled '(lambda ()
909                   (let ((v4
910                          (case 227
911                            ((-11113 -106126) (unwind-protect 8473))
912                            (t 43916))))
913                     -12)))
914  -12)
915
916(deftest misc.79a
917  (call-compiled
918    '(lambda (a b)
919       (declare (type (integer 72504 351460) a))
920       (declare (type (integer 2383 108330) b))
921       (declare        (optimize (speed 2) (space 0) (safety 0)
922                          (debug 2) (compilation-speed 1)))
923       (if (or (or (/= b 0) (logbitp 0 0)) (logbitp 0 a))
924           0
925         (funcall (constantly 0) b 0 (catch 'ct4 b))))
926   132318 12238)
927  0)
928
929
930;;; cmucl (2003-10-12) "Invalid number of arguments: 2"
931(deftest misc.80
932  (call-compiled
933            '(lambda (b c)
934               (declare (notinline > logior imagpart))
935               (declare (optimize (speed 0) (debug 0)))
936               (labels ((%f16 ()
937                              (imagpart
938                               (block b3
939                                 (logeqv (logior -122516 (if (> -1 0) (return-from b3 c) b))
940                                         (return-from %f16 32186310))))))
941                 (lognor (%f16) b)))
942   -123886 -1656)
943  57385)
944
945;;; cmucl (2003-10-12) "NIL is not of type C::REF"
946(deftest misc.81
947  (call-compiled '(lambda (b)
948                   (block b7
949                     (let ((v3 (return-from b7 b)))
950                       (unwind-protect b))))
951   17)
952  17)
953
954;;; cmucl (2003-10-12) "The assertion C::SUCC failed"
955(deftest misc.82
956  (call-compiled '(lambda (c)
957                   (labels ((%f15 ()
958                                  (* (unwind-protect c)
959                                     (max -5726369
960                                          (return-from %f15 3099206)))))
961                     c))
962   0)
963  0)
964
965;;; cmucl (2003-10-13) "The assertion (NOT (C::BLOCK-DELETE-P BLOCK)) failed."
966(deftest misc.83
967  (call-compiled '(lambda (a c)
968                   (flet ((%f8 () (min c (min a (return-from %f8 c)))))
969                     c))
970   0 -10)
971  -10)
972
973(deftest misc.84
974  (call-compiled '(lambda (a b)
975                   (flet ((%f18 ()
976                                (let ()
977                                  (let ()
978                                    (if (ldb-test (byte 20 23) b) a
979                                      (return-from %f18 431))))))
980                     -674))
981   0 0)
982  -674)
983
984(deftest misc.85
985  (call-compiled
986            '(lambda (c)
987               (labels ((%f14 ()
988                              (let ()
989                                (logandc1 (min -32 (return-from %f14 -69793))
990                                          c))))
991                     156))
992   0)
993  156)
994
995;;; Two tests showing bug(s) in clisp (2.31)
996(deftest misc.86
997  (call-compiled '(lambda (b)
998                           (flet ((%f10 nil :bad))
999                             (let ((v7 (let ((v2 (%f10))) b)))
1000                               (unwind-protect b))))
1001           :good)
1002  :good)
1003
1004(deftest misc.87
1005  (apply-compiled '(lambda (a b c)
1006                         (let ((v9 a))
1007                           (let ((v2 (setq v9 c)))
1008                             (unwind-protect c))))
1009         '(x y z))
1010  z)
1011
1012;;; cmucl bug (18e+ 10/15/03)
1013(deftest misc.88
1014  (eval '(block b3
1015           (max (return-from b3 1)
1016                (if (unwind-protect (unwind-protect 2)) 3 4))))
1017  1)
1018
1019;;;
1020;;; cmucl bug (18e+ 10/15/03)
1021;;; Also occurs in sbcl (0.8.16.20)
1022;;;  "Too large to be represented as a SINGLE-FLOAT"
1023;;; (a large bignum is coerced to a single-float in type propagation,
1024;;;  with unfortunate results.)
1025;;;
1026
1027;;; Here, the function were the problem occurs is -
1028(deftest misc.89
1029  (call-compiled
1030            '(lambda (c)
1031               (declare (type (integer 0 130304) c))
1032               (- (rem -26 (max 25 (load-time-value 505849129)))
1033                  (* -15718867961526428520296254978781964 c)))
1034   0)
1035  -26)
1036
1037;;; Here, it is MAX
1038(deftest misc.89a
1039  (call-compiled
1040    '(lambda (a b c d)
1041       (declare (type (integer -265115792172 -206231862770) a))
1042       (declare (type (integer 11069 58322510034) b))
1043       (declare (type (integer -7351 28730) c))
1044       (declare (type (integer -913299295156 3670905260104) d))
1045       (declare (ignorable a b c d))
1046       (declare
1047        (optimize (safety 1) (space 1) (compilation-speed 2)
1048                  (debug 0) (speed 2)))
1049       (- (signum (catch 'ct6 0)) (numerator (* -1303 d -20527703 d c))))
1050   -261283766805 41605749408 5110 1269102278886)
1051  -220139978315039892599545286437019126040)
1052
1053;;; Here, it is MOD
1054(deftest misc.89b
1055  (call-compiled
1056    '(lambda (a b c d)
1057       (declare (type (integer -481454219025 239286093202) a))
1058       (declare (type (integer -1121405368785 213522) b))
1059       (declare (type (integer -103720347879 -241) c))
1060       (declare (type (integer -12830115357 3027711346) d))
1061       (declare (ignorable a b c d))
1062       (declare (optimize (speed 2) (compilation-speed 1) (space 1)
1063                          (safety 3) (debug 2)))
1064       (floor (load-time-value 0) (min -18 (* a c b -12626))))
1065   -78545446876 -460518205737 -38885914099 1598305189)
1066  0 0)
1067
1068;;; acl bugs (version 6.2, linux x86 trial)
1069(deftest misc.90
1070  (let* ((form '(- 0 (ignore-errors 20763)
1071                   (logxor b 1 c -7672794) b))
1072         (fn1 `(lambda (b c)
1073                 (declare (type (integer -148895 -46982) b))
1074                 (declare (type (integer 0 1) c))
1075                 (declare (optimize (speed 3)))
1076                 (declare (optimize (safety 1)))
1077                 ,form))
1078         (fn2 `(lambda (b c) ,form)))
1079    (let ((v1 (call-compiled fn1 -76071 0))
1080          (v2 (call-compiled fn2 -76071 0))
1081          (v3 (funcall (eval `(function ,fn2)) -76071 0)))
1082      (if (= v1 v2 v3) :good
1083        (list v1 v2 v3))))
1084  :good)
1085
1086(deftest misc.91
1087  (let ((fn1 '(lambda ()
1088                (declare (optimize (speed 3) (safety 1)))
1089                (ash -10 (min 8 -481))))
1090        (fn2 '(lambda () (ash -10 (min 8 -481)))))
1091    (let ((v1 (call-compiled fn1))
1092          (v2 (call-compiled fn2))
1093          (v3 (funcall (eval `(function ,fn2)))))
1094      (if (= v1 v2 v3)
1095          :good
1096        (list v1 v2 v3))))
1097  :good)
1098
1099(deftest misc.92
1100  (let* ((form '(- -16179207 b (lognor (let () 3) (logxor -17567197 c))))
1101         (fn1 `(lambda (b c)
1102                 (declare (type (integer -621 30) c))
1103                 (declare (optimize (speed 3)))
1104                 (declare (optimize (safety 1)))
1105                 ,form))
1106         (fn2 `(lambda (b c) ,form))
1107         (vals '(26291532469 -21)))
1108    (let ((v1 (apply-compiled fn1 vals))
1109          (v2 (apply-compiled fn2 vals))
1110          (v3 (apply (eval `(function ,fn2)) vals)))
1111      (if (= v1 v2 v3)
1112          :good
1113        (list v1 v2 v3))))
1114  :good)
1115
1116(deftest misc.93
1117  (let* ((form '(ash (1+ (flet ((%f5 (f5-1) c)) c))
1118                     (min 69 (logxor a b))))
1119         (fn1 `(lambda (a b c)
1120                 (declare (type (integer -128 -109) a)
1121                          (type (integer -2 -1) b)
1122                          (optimize (speed 3) (safety 1)))
1123                 ,form))
1124         (fn2 `(lambda (a b c) ,form))
1125         (vals '(-123 -1 2590941967601)))
1126    (eqlt (apply-compiled fn1 vals)
1127          (apply-compiled fn2 vals)))
1128  t)
1129
1130(deftest misc.94
1131  (not (call-compiled '(lambda ()
1132                        (declare (optimize (speed 3) (safety 1) (debug 1)))
1133                        (<= 268435280
1134                            (load-time-value
1135                             39763134374436777607194165739302560271120000)))))
1136  nil)
1137
1138(deftest misc.95
1139  (let* ((form '(+ 272 c (if (< b a) -49618 -29042) b))
1140         (fn1 `(lambda (a b c)
1141                 (declare (type (integer -1585918 601848636) a))
1142                 (declare (type (integer -4 16544323) b))
1143                 (declare (optimize (speed 3)))
1144                 (declare (optimize (safety 1)))
1145                 ,form))
1146         (fn2 `(lambda (a b c) ,form))
1147         (vals '(601739317 10891850 17452477960)))
1148    (let ((v1 (apply-compiled fn1 vals))
1149          (v2 (apply-compiled fn2 vals)))
1150      (if (eql v1 v2)
1151          :good
1152        (list v1 v2))))
1153  :good)
1154
1155(deftest misc.96
1156  (let* ((form '(max 26 (ceiling b (min -8 (max -1 c)))))
1157         (fn1 `(lambda (b c)
1158                 (declare (type (integer 482134 96074347505) b))
1159                 (declare (type (integer -4036 -50) c))
1160                 (declare (optimize (speed 3)))
1161                 (declare (optimize (safety 1)))
1162                 ,form))
1163         (fn2 `(lambda (b c) ,form))
1164         (vals '(90244278480 -338)))
1165    (let ((v1 (apply-compiled fn1 vals))
1166          (v2 (apply-compiled fn2 vals)))
1167      (if (eql v1 v2)
1168          :good
1169        (list v1 v2))))
1170  :good)
1171
1172(deftest misc.97
1173  (let* ((form '(- 349708 (gcd c 0) (logand b b (if (> -8543459 c) 83328 1073))))
1174         (fn1 `(lambda (b c)
1175                 (declare (type (integer 301653 329907) b))
1176                 (declare (type (integer 171971491 1073721279) c))
1177                 (declare (optimize (speed 3)))
1178                 (declare (optimize (safety 1)))
1179                 ,form))
1180         (fn2 `(lambda (b c) ,form))
1181         (vals '(321769 1073671227)))
1182    (let ((v1 (apply-compiled fn1 vals))
1183          (v2 (apply-compiled fn2 vals)))
1184      (if (eql v1 v2)
1185          :good
1186        (list v1 v2))))
1187  :good)
1188
1189;;; sbcl bugs (0.8.4.40, x86 linux)
1190
1191(deftest misc.98
1192  (call-compiled '(lambda (x)
1193                           (declare (type (integer -1000000 1000000) x))
1194                           (logand x x 0))
1195           12345)
1196  0)
1197
1198(deftest misc.99
1199  (call-compiled '(lambda (a)
1200                   (declare (type (integer 4303063 101130078) a))
1201                   (mask-field (byte 18 2) (ash a 77)))
1202   57132532)
1203  0)
1204
1205(deftest misc.100
1206  (call-compiled '(lambda (c)
1207                           (declare (type (integer -3924 1001809828) c))
1208                           (declare (optimize (speed 3)))
1209                           (min 47 (if (ldb-test (byte 2 14) c)
1210                                       -570344431
1211                                     (ignore-errors -732893970))))
1212           705347625)
1213  -570344431)
1214
1215(deftest misc.101
1216  (call-compiled '(lambda (a c)
1217                   (declare (type (integer 185501219873 303014665162) a))
1218                   (declare (type (integer -160758 255724) c))
1219                   (declare (optimize (speed 3)))
1220                   (let ((v8
1221                          (- -554046873252388011622614991634432
1222                             (ignore-errors c)
1223                             (unwind-protect 2791485))))
1224                     (max (ignore-errors a)
1225                          (let ((v6 (- v8 (restart-case 980))))
1226                            (min v8 v6)))))
1227   259448422916 173715)
1228  259448422916)
1229
1230(deftest misc.102
1231  (call-compiled '(lambda (b)
1232                   (declare (type (integer -1598566306 2941) b))
1233                   (declare (optimize (speed 3)))
1234                   (max -148949 (ignore-errors b)))
1235   0)
1236  0)
1237
1238(deftest misc.103
1239  (call-compiled '(lambda (a b)
1240                   (min -80
1241                        (abs
1242                         (ignore-errors
1243                           (+
1244                            (logeqv b
1245                                    (block b6
1246                                      (return-from b6
1247                                        (load-time-value -6876935))))
1248                            (if (logbitp 1 a) b (setq a -1522022182249)))))))
1249   -1802767029877 -12374959963)
1250  -80)
1251
1252(deftest misc.104
1253  (call-compiled '(lambda (a) (declare (type (integer 55400028 60748067) a))
1254                   (lognand 1505 (ash a (let () 40))))
1255   58194485)
1256  -1)
1257
1258(deftest misc.105
1259  (call-compiled '(lambda (b c)
1260                   (declare (type (integer -4 -3) c))
1261                   (block b7
1262                     (flet ((%f1 (f1-1 f1-2 f1-3)
1263                                 (if (logbitp 0 (return-from b7
1264                                                  (- -815145138 f1-2)))
1265                                     (return-from b7 -2611670)
1266                                   99345)))
1267                       (let ((v2 (%f1 -2464 (%f1 -1146 c c) -2)))
1268                         b))))
1269   2950453607 -4)
1270  -815145134)
1271
1272;;; Gives the error The value NIL is not of type INTEGER.  (in sbcl 0.8.4.40)
1273
1274(deftest misc.106
1275  (progn
1276    (eval '(defun misc.106-fn (a b c)
1277             (declare (optimize speed))
1278             (block b6
1279               (flet ((%f8 (f8-1 f8-2) b))
1280                 (%f8 (%f8 c 338) (if t (return-from b6 a) c))))))
1281    (misc.106-fn -30271 -1 -3043))
1282  -30271)
1283
1284 ;;; "The value NIL is not of type SB-C::IR2-LVAR." (sbcl 0.8.4.40)
1285(deftest misc.107
1286  (call-compiled
1287            '(lambda (b c)
1288               (declare (type (integer -29742055786 23602182204) b))
1289               (declare (type (integer -7409 -2075) c))
1290               (declare (optimize (speed 3)))
1291               (floor
1292                (labels ((%f2 ()
1293                              (block b6
1294                                (ignore-errors (return-from b6
1295                                                 (if (= c 8) b 82674))))))
1296                  (%f2))))
1297   22992834060 -5833)
1298  82674 0)
1299
1300;;; "The value NIL is not of type SB-C::IR2-LVAR." (sbcl 0.8.10.15)
1301(deftest misc.107a
1302  (call-compiled
1303    '(lambda ()
1304       (declare
1305        (optimize (speed 2) (space 0) (safety 1)
1306                  (debug 3) (compilation-speed 0)))
1307       (flet ((%f14
1308               (f14-1
1309                &optional (f14-2 (rationalize (catch 'ct4 0))) (f14-3 0)
1310                (f14-4 0))
1311               (dotimes (iv2 0 0) (progn f14-2))))
1312         (apply #'%f14 0 0 0 nil))))
1313  0)
1314
1315;;; "The value NIL is not of type SB-C::IR2-LVAR." (sbcl 0.8.14.18)
1316
1317(deftest misc.107b
1318  (call-compiled
1319    '(lambda (a b c)
1320       (declare (type (integer 7215 1030625885) a))
1321       (declare (type (integer -4361 -6) b))
1322       (declare (type (integer -3798210806 -898) c))
1323       (declare (ignorable a b c))
1324       (declare
1325        (optimize (speed 2)
1326                  (space 2)
1327                  (safety 2)
1328                  (debug 3)
1329                  (compilation-speed 1)))
1330       (block b4
1331         (let ((*s7* (cons c 0)))
1332           (declare (special *s7*))
1333           (return-from b4
1334             (prog1 0
1335               (the integer
1336                 (integer-length
1337                  (1+
1338                   (let ()
1339                     (gcd (cdr *s7*)
1340                          (case b
1341                            ((31 38 20 0 5 45) 2)
1342                            ((34 35 64 61 47) 39)
1343                            ((58) a)
1344                            (t 131788))))))))))))
1345   734649164 -3343 -2306504518)
1346  0)
1347
1348(deftest misc.107c
1349  (call-compiled
1350    '(lambda (c)
1351       (declare (optimize (speed 2) (space 1) (safety 1) (debug 3)
1352                          (compilation-speed 0)))
1353       (let* ((*s6*
1354               (unwind-protect 0 (the integer (ash 2914825 (min 8 c))))))
1355         (declare (special *s6*))
1356         0))
1357   -105)
1358  0)
1359
1360(deftest misc.107d
1361  (call-compiled
1362    '(lambda (a b)
1363       (declare (optimize (speed 1) (space 1) (safety 1) (debug 3)
1364                          (compilation-speed 1)))
1365       (catch 'ct4
1366         (logorc1
1367          (the integer
1368            (case (dotimes (iv2 2 2) (progn 203))
1369              ((-51) -59598)
1370              ((-31 -150) a)
1371              (t b)))
1372          (throw 'ct4 0))))
1373   10 20)
1374  0)
1375
1376(deftest misc.107e
1377  (call-compiled
1378    '(lambda (a)
1379       (declare (optimize (speed 1) (space 0) (safety 1)
1380                          (debug 3) (compilation-speed 1)))
1381       (flet ((%f11 (&key (key1 (the integer (- a 245241933)))) 0))
1382         (%f11)))
1383   1)
1384  0)
1385
1386;;; cmucl bug (Argument X is not a NUMBER: NIL)
1387
1388(deftest misc.108
1389  (call-compiled '(lambda (b)
1390                   (block b7 (- b (ignore-errors (return-from b7 57876)))))
1391   10)
1392  57876)
1393
1394;;; "The assertion (C::CONSTANT-CONTINUATION-P C::CONT) failed." (cmucl)
1395(deftest misc.109
1396  (call-compiled
1397            '(lambda ()
1398               (load-time-value
1399                (block b4
1400                  (* (return-from b4 -27)
1401                     (block b5
1402                       (return-from b4
1403                         (return-from b5
1404                           (ignore-errors (unwind-protect
1405                                              (return-from b5 0)))))))))))
1406  -27)
1407
1408;;; This bug was occuring a lot in sbcl, and now occurs in cmucl too
1409;;; NIL fell through ETYPECASE expression.  Wanted one of (C:FIXUP X86::EA C:TN).
1410(deftest misc.110
1411  (call-compiled
1412            '(lambda (c)
1413               (declare (type (integer -1441970837 -427) c))
1414               (declare (optimize (speed 3)))
1415               (block b7 (abs (min c (ignore-errors (return-from b7 c))))))
1416   -500)
1417  -500)
1418
1419;;; In sbcl 0.8.10.14
1420;;;  NIL fell through ETYPECASE expression.
1421;;;  Wanted one of (SB-C:FIXUP SB-VM::EA SB-C:TN).
1422
1423(deftest misc.110a
1424  (call-compiled
1425    '(lambda (a b c d e f)
1426       (declare (type (integer -1294746569 1640996137) a))
1427       (declare (type (integer 33628514900 90005963619) b))
1428       (declare (type (integer -807801310 3) c))
1429       (declare (type (integer 36607 121946) d))
1430       (declare (type (integer -6669690514043 -1776180885905) e))
1431       (declare (type (integer -1472 1979) f))
1432       (declare (ignorable a b c d e f))
1433       (declare
1434        (optimize (speed 3)
1435                  (space 3)
1436                  (safety 0)
1437                  (debug 0)
1438                  (compilation-speed 3)))
1439       (catch 'ct7
1440         (if
1441             (logbitp 0
1442                      (if (/= 0 a)
1443                          c
1444                        (ignore-errors
1445                          (progn
1446                            (if
1447                                (ldb-test (byte 0 0) (rational (throw 'ct7 0)))
1448                                0
1449                              0)
1450                            0))))
1451             0
1452           0)))
1453   391833530 36648101240 -32785211 91893 -4124561581760 1358)
1454  0)
1455
1456;;; CLISP (2.31+) compiler bug
1457
1458(deftest misc.111
1459  (call-compiled
1460            '(lambda (a c)
1461               (if (or (ldb-test (byte 12 18) a)
1462                       (not (and t (not (if (not (and c t)) nil nil)))))
1463                   170 -110730))
1464   3035465333 1919088834)
1465  170)
1466
1467;;; sbcl (0.8.5.8) "The value NIL is not of type SB-C::IR2-LVAR."
1468
1469(deftest misc.112
1470  (call-compiled '(lambda (a)
1471                   (declare (type (integer -944 -472) a))
1472                   (declare (optimize (speed 3)))
1473                   (round
1474                    (block b3
1475                      (return-from b3
1476                        (if (= 55957 a) -117 (ignore-errors
1477                                               (return-from b3 a)))))))
1478   -589)
1479  -589 0)
1480
1481;;; sbcl (0.8.5.8) "The value NIL is not of type SB-C::CTRAN"
1482
1483(deftest misc.113
1484  (call-compiled '(lambda (b c)
1485                   (if (or (ldb-test (byte 8 10) b) t)
1486                       c
1487                     (min (if (<= -6467 c) c 6)
1488                          (flet ((%f3 (f3-1 f3-2)
1489                                      f3-1))
1490                            (multiple-value-call #'%f3 (values b 107))))))
1491   -238 -23658556)
1492  -23658556)
1493
1494;;; clisp (1 Oct 2003 cvs HEAD)  "*** - CAR: #:G7744659 is not a LIST"
1495
1496(deftest misc.114
1497  (call-compiled
1498            '(lambda (a b)
1499               (unwind-protect
1500                   (block b2
1501                     (flet ((%f1 nil b))
1502                       (logior (if a
1503                                   (if (ldb-test (byte 23 1) 253966182)
1504                                       (return-from b2 a)
1505                                     -103275090)
1506                                 62410)
1507                               (if (not (not (if (not nil) t (ldb-test (byte 2 27) 253671809))))
1508                                   (return-from b2 -22)
1509                                 (%f1)))))))
1510   777595384624 -1510893868)
1511  777595384624)
1512
1513;;; clisp (1 Oct 2003 cvs HEAD) "Compiler bug!! Occurred in OPTIMIZE-LABEL."
1514
1515(deftest misc.115
1516  (call-compiled
1517            '(lambda (a b c)
1518               (declare (type (integer 0 1000) a b c))
1519               (if (and (if b (not (and (not (or a t)) nil)) nil)
1520                        (logbitp 6 c))
1521                   c b))
1522   0 100 600)
1523  600)
1524
1525(deftest misc.116
1526  (call-compiled
1527            '(lambda (a c)
1528               (declare (type (integer 0 1000) a c))
1529               (if (if (and (not (and (not (or a t)) nil)) t) c nil)
1530                   91 -1725615))
1531   0 0)
1532  91)
1533
1534(deftest misc.117
1535  (call-compiled
1536            '(lambda (a c)
1537               (declare (type (integer 0 1000) a c))
1538               (if (or c (not (or nil (not (and (not (or a t)) nil)))))
1539                   373146181 115))
1540   0 0)
1541  373146181)
1542
1543(deftest misc.118
1544  (call-compiled '(lambda (a)
1545                   (declare (type (integer 0 10000) a))
1546                   (if (or (or nil (not (or (not (or a nil)) t))) a) a 9376))
1547   0)
1548  0)
1549
1550(deftest misc.119
1551  (call-compiled
1552    '(lambda ()
1553       (if (and (if (1+ 0) nil (not (and (not (and (<= 3) nil)) nil)))
1554                (if (= -31) -20 -2371))
1555           1493 39720)))
1556  39720)
1557
1558(deftest misc.120
1559  (call-compiled
1560    '(lambda (c)
1561       (declare (type (integer 377036 4184626) c))
1562       (if (or (and t (not (and (not (and c nil)) nil))) nil)
1563           3470653 c))
1564   1000000)
1565  3470653)
1566
1567(deftest misc.121
1568  (call-compiled
1569    '(lambda (a b c)
1570       (if (and (and -92220 (not (and (not (or c nil)) nil))) a) b b))
1571   2000000 150000 -1)
1572  150000)
1573
1574;;; CAR: #:G243 is not a LIST
1575(deftest misc.122
1576  (call-compiled
1577    '(lambda (a b c)
1578       (declare (type (integer 2872749 5754655) a))
1579       (declare (type (integer 24114340 89504792) b))
1580       (declare (type (integer 506491 1412971) c))
1581       (declare (ignorable a b c))
1582       (declare (optimize (speed 3)))
1583       (declare (optimize (safety 1)))
1584       (declare (optimize (debug 1)))
1585       (- (let ((v7 (ignore-errors a))) -6)
1586          (logand (if c -13936 c)
1587                  (block b3 (if (if (or t b) (not nil) c)
1588                                (return-from b3 -3114)
1589                              (ignore-errors 7)
1590                              )))))
1591   3000000 30000000 600000)
1592  15978)
1593
1594;;; gcl bug (30 Oct 2003)
1595(deftest misc.123
1596  (let* ((fn1 '(lambda (b)
1597                 (declare (optimize (safety 1)))
1598                 (labels ((%f7 (f7-1 f7-2)
1599                               (let ((v2 (setq b 723149855)))
1600                                 25620)))
1601                   (max b
1602                        (multiple-value-call #'%f7 (values b 2))))))
1603         (fn2 '(lambda (b)
1604                 (labels ((%f7 (f7-1 f7-2)
1605                               (let ((v2 (setq b 723149855)))
1606                                 25620)))
1607                   (max b
1608                        (multiple-value-call #'%f7 (values b 2))))))
1609         (vals '(1439719153))
1610         (v1 (apply-compiled fn1 vals))
1611         (v2 (apply-compiled fn2 vals)))
1612    (if (eql v1 v2) :good (list v1 v2)))
1613  :good)
1614
1615(deftest misc.124
1616  (let* ((fn1 '(lambda (b)
1617                 (declare (optimize (safety 1)))
1618                 (labels ((%f7 (f7-1 f7-2)
1619                               (let ((v2 (setq b 723149855)))
1620                                 25620)))
1621                   (max b
1622                        (funcall #'%f7 b 2)))))
1623         (fn2 '(lambda (b)
1624                 (labels ((%f7 (f7-1 f7-2)
1625                               (let ((v2 (setq b 723149855)))
1626                                 25620)))
1627                   (max b
1628                        (funcall #'%f7 b 2)))))
1629         (vals '(1439719153))
1630         (v1 (apply-compiled fn1 vals))
1631         (v2 (apply-compiled fn2 vals)))
1632    (if (eql v1 v2) :good (list v1 v2)))
1633  :good)
1634
1635;;; This passed in gcl, but I added it for completeness.
1636(deftest misc.125
1637  (let* ((fn1 '(lambda (b)
1638                 (declare (optimize (safety 1)))
1639                 (labels ((%f7 (f7-1 f7-2)
1640                               (let ((v2 (setq b 723149855)))
1641                                 25620)))
1642                   (max b
1643                        (%f7 b 2)))))
1644         (fn2 '(lambda (b)
1645                 (labels ((%f7 (f7-1 f7-2)
1646                               (let ((v2 (setq b 723149855)))
1647                                 25620)))
1648                   (max b
1649                        (%f7 b 2)))))
1650         (vals '(1439719153))
1651         (v1 (apply-compiled fn1 vals))
1652         (v2 (apply-compiled fn2 vals)))
1653    (if (eql v1 v2) :good (list v1 v2)))
1654  :good)
1655
1656
1657;;; clisp optional argument bug: "SYMBOL-VALUE: 1 is not a SYMBOL"
1658
1659(deftest misc.126
1660  (call-compiled
1661    '(lambda ()
1662       (declare (special *should-always-be-true*))
1663       (labels ((%f10 (f10-1 &optional
1664                             (f10-2 (cl:handler-bind nil
1665                                                     (if *should-always-be-true*
1666                                                         (progn 878)
1667                                                       (should-never-be-called)
1668                                                       )))
1669                             (f10-3 (cl:handler-case 10)))
1670                      -15))
1671         (%f10 -144))))
1672  -15)
1673
1674(deftest misc.127
1675  (call-compiled
1676    '(lambda (a c)
1677       (flet ((%f10 (f10-1 f10-2) 10))
1678         (flet ((%f4
1679                 (&optional
1680                  (f4-1 (ldb (byte 10 6)
1681                             (* 828
1682                                (+ 30 (dpb c (byte 9 30) (%f10 1918433 34107)))
1683                                )))
1684                  (f4-2 (setq a 0)))
1685                 2))
1686           (%f4 -5))))
1687   0 0)
1688  2)
1689
1690;;; cmucl (22 Oct 2003 build) bug
1691;;; The assertion (EQ (C::COMPONENT-KIND C:COMPONENT) :INITIAL) failed.
1692
1693(deftest misc.128
1694  (flet ((%f14
1695          (f14-1 f14-2
1696                 &optional
1697                 (f14-3 (unwind-protect 13059412))
1698                 (f14-4 452384)
1699                 (f14-5 -6714))
1700          -1))
1701    (%f14 -2 1 1279896 589726354 -11))
1702  -1)
1703
1704(deftest misc.129
1705  (labels ((%f17 (f17-1 f17-2 &optional (f17-3 (unwind-protect 178)))
1706                 483633925))
1707    -661328075)
1708  -661328075)
1709
1710(deftest misc.130
1711  (let* ((fn1
1712          '(lambda (a c)
1713             (flet ((%f10 (&optional (f10-1 -6489) (f10-2 (+ c)))
1714                          a))
1715               (multiple-value-call #'%f10 (values -178858 a)))))
1716         (fn2
1717          '(lambda (a c)
1718             (declare (notinline values +) (optimize (speed 0) (debug 0)))
1719             (flet ((%f10 (&optional (f10-1 -6489) (f10-2 (+ c)))
1720                          a))
1721               (multiple-value-call #'%f10 (values -178858 a)))))
1722         (vals '(-13649921 -1813684177409))
1723         (v1 (apply-compiled fn1 vals))
1724         (v2 (apply-compiled fn2 vals)))
1725    (if (eql v1 v2) :good (list v1 v2)))
1726  :good)
1727
1728(deftest misc.131
1729  (let* ((fn1
1730          '(lambda (a b)
1731             (max
1732              (block b7
1733                (abs
1734                 (ignore-errors
1735                   (if (ldb-test (byte 33 15) (return-from b7 a))
1736                       b b)))))))
1737         (fn2
1738          '(lambda (a b)
1739             (declare (notinline abs max))
1740             (declare (optimize (speed 0)))
1741             (declare (optimize (debug 0)))
1742             (max
1743              (block b7
1744                (abs
1745                 (ignore-errors
1746                   (if (ldb-test (byte 33 15) (return-from b7 a))
1747                       b b)))))))
1748         (vals '(-823894140303 -3))
1749         (v1 (apply-compiled fn1 vals))
1750         (v2 (apply-compiled fn2 vals)))
1751    (if (eql v1 v2) :good (list v1 v2)))
1752  :good)
1753
1754;;; cmucl (22 Oct 2003)
1755;;; The assertion (EQ C::ENV
1756;;;                   (C::LAMBDA-ENVIRONMENT
1757;;;                      (C::LAMBDA-VAR-HOME C::THING))) failed.
1758
1759(deftest misc.132
1760  (call-compiled
1761            '(lambda (b c)
1762               (declare (type (integer -3358662 7782429) b))
1763               (declare (type (integer -513018 12740) c))
1764               (declare (optimize (speed 3)))
1765               (declare (optimize (safety 1)))
1766               (declare (optimize (debug 1)))
1767               (labels ((%f9
1768                         (&optional
1769                          (f9-1
1770                           (labels
1771                               ((%f5 (f5-1 f5-2)
1772                                     (floor (ignore-errors f5-1)
1773                                            (min -67 (if (equal -56 c)
1774                                                         -11197265 f5-2)))))
1775                             c))
1776                          (f9-2 -439518)
1777                          (f9-3 -2840573))
1778                         f9-1))
1779                 (%f9 -193644 b 1368)))
1780   10 20)
1781  -193644)
1782
1783(deftest misc.132a
1784  (call-compiled
1785    '(lambda ()
1786       (declare (optimize (speed 2) (space 0) (safety 0) (debug 2) (compilation-speed 0)))
1787       (labels ((%f1 () 0))
1788         (if t 0 (dotimes (iv1 5 (if (%f1) 0 0)) (catch 'ct1 0))))))
1789  0)
1790
1791;;; cmucl (22 Oct 2003)  Default for optional parameter is improperly chosen
1792(deftest misc.133
1793  (call-compiled
1794            '(lambda (a b c)
1795               (declare (notinline values))
1796               (declare (optimize (speed 0) (debug 0)))
1797               (flet ((%f15 (&optional (f15-5 c)) f15-5))
1798                 (multiple-value-call #'%f15 (values -2688612))))
1799   1 2 3)
1800  -2688612)
1801
1802;;; ACL 6.2 (x86 linux trial) bugs
1803;;; With optional flet/labels parameters, there's a very high frequency bug
1804;;; causing the compiler error "Error: `:INFERRED' is not of the expected
1805;;; type `NUMBER'".  The following tests show this bug.
1806
1807(deftest misc.134
1808  (call-compiled
1809            '(lambda (b)
1810               (labels ((%f5 (f5-1 f5-2 f5-3 &optional (f5-4 0)
1811                                   (f5-5
1812                                    (flet ((%f13 (f13-1)
1813                                                 (return-from %f13 b))) b)))
1814                             900654472))
1815                 183301))
1816   13775799184)
1817  183301)
1818
1819(deftest misc.135
1820  (call-compiled
1821            '(lambda (a b)
1822               (labels ((%f4 (&optional (f4-1 (labels ((%f17 nil a)) b)))
1823                             -14806404))
1824                 190134))
1825   1783745644 268410629)
1826  190134)
1827
1828(deftest misc.136
1829  (call-compiled
1830            '(lambda (c)
1831               (flet ((%f17 (&optional
1832                             (f17-1 (flet ((%f9 nil c)) 73574919)))
1833                            643))
1834                 1039017546))
1835   0)
1836  1039017546)
1837
1838;;; And these caused segfaults
1839
1840(deftest misc.137
1841  (call-compiled
1842            '(lambda ()
1843               (declare (optimize (speed 3)))
1844               (declare (optimize (safety 1)))
1845               (flet ((%f16 (&optional
1846                             (f16-2 (lognor -3897747
1847                                            (if nil -1 -127228378))))
1848                            10))
1849                 20)))
1850  20)
1851
1852(deftest misc.138
1853  (call-compiled
1854            '(lambda (c)
1855               (declare (type (integer 2996 39280) c))
1856               (declare (optimize (speed 3)))
1857               (declare (optimize (safety 1)))
1858               (if (zerop (labels ((%f8 (&optional
1859                                         (f8-2 (logorc2 c -161957)))
1860                                        2176))
1861                            3))
1862                   c c))
1863   3000)
1864  3000)
1865
1866;;; Lispworks 4.2 (x86 linux personal edition) failures
1867
1868
1869(deftest misc.139
1870  (let* ((fn1
1871          '(lambda (c)
1872             (declare (optimize (speed 3)))
1873             (logior (labels ((%f1 (f1-1 &optional (f1-2 (setq c 7))) f1-1))
1874                       (%f1 774 3616592)) c)))
1875         (fn2
1876          '(lambda (c)
1877             (logior (labels ((%f1 (f1-1 &optional (f1-2 (setq c 7))) f1-1))
1878                       (%f1 774 3616592)) c)))
1879         (vals '(-3))
1880         (v1 (apply-compiled fn1 vals))
1881         (v2 (apply-compiled fn2 vals)))
1882    (if (eql v1 v2) :good (list v1 v2)))
1883  :good)
1884
1885(deftest misc.140
1886  (call-compiled
1887            '(lambda (a)
1888               (ldb (byte 24 20)
1889                    (labels ((%f12 (&optional (f12-1 149) (f12-2 -3894159)) 34068))
1890                      (let* ((v4 (%f12))) a))))
1891   -1)
1892  16777215)
1893 
1894
1895;;; In Lispworks 4.2 (x86 linux personal edition)
1896;;; 'Error: *** Ran out of patterns in (MOVE) for (edi NIL)'
1897
1898(deftest misc.141
1899  (call-compiled
1900            '(lambda () (labels ((%f11 (&optional (f11-3 (restart-case 0))) f11-3))
1901                          (%f11 1))))
1902  1)
1903
1904(deftest misc.142
1905  (call-compiled
1906            '(lambda ()
1907               (labels ((%f15 (&optional (f15-3 (block b1 (+ 1 (return-from b1 -10)))))
1908                              f15-3))
1909                 (%f15))))
1910  -10)
1911
1912;;; cmucl (22 Oct 2003):  NIL is not of type C::REF
1913(deftest misc.143
1914  (block b2
1915      (max (return-from b2 1)
1916           (let ((v3
1917                  (unwind-protect
1918                      (let* ((v1 (ignore-errors -254)))
1919                        1))))
1920             -2)))
1921  1)
1922
1923;;; (was) The assertion (NOT (C::BLOCK-DELETE-P BLOCK)) failed.
1924;;; (now) The assertion (NOT (MEMBER C::KIND '(:DELETED :OPTIONAL :TOP-LEVEL))) failed.
1925
1926(deftest misc.144
1927  (call-compiled
1928            '(lambda (a b c)
1929               (declare (type (integer 9739325 14941321) c))
1930               (labels ((%f7 (f7-1 f7-2 f7-3 &optional (f7-4 b))
1931                             (return-from %f7 f7-4)))
1932                 (if (= -76482 c)
1933                     (if (>= c 10986082) (%f7 a b (%f7 -8088 c -147106 2)) -10502)
1934                   (%f7 509252 b b))))
1935   -200 17 10000000)
1936  17)
1937
1938(deftest misc.145
1939  (call-compiled
1940            '(lambda (a b c)
1941               (declare (optimize (safety 3)))
1942               (block b5
1943                 (return-from b5
1944                   (logior (if (or c t) b (load-time-value -61)) (return-from b5 -3)))))
1945   1 2 3)
1946  -3)
1947
1948;;; cmucl: order of evaluation error
1949(deftest misc.146
1950  (call-compiled
1951            '(lambda (b)
1952               (declare (optimize (speed 3)))
1953               (flet ((%f14 (&optional (f14-1 301917227)
1954                                       (f14-2 (setq b 995196571)))
1955                            f14-1))
1956                 (%f14 b (block b3 (%f14 -64)))))
1957   10)
1958  10)
1959
1960;;; cmucl (22 Oct 2003): NIL is not of type C::CLEANUP
1961(deftest misc.147
1962  (flet ((%f11 () (if nil (ignore-errors -19884254) (unwind-protect -2)))) :good)
1963  :good)
1964
1965;;; The assertion (C::CONSTANT-CONTINUATION-P C::CONT) failed.
1966(deftest misc.148
1967  (block b2 (logior (return-from b2 484) (restart-case (ignore-errors 1737021))))
1968  484)
1969
1970;;; Argument X is not a NUMBER: NIL.
1971(deftest misc.149
1972  (call-compiled '(lambda (b)
1973                   (block b1 (- (logand 0 -34 1026491) (ignore-errors (return-from b1 b)))))
1974   0)
1975  0)
1976
1977(deftest misc.149a
1978  (call-compiled '(lambda (a) (block b1 (- a (ignore-errors (return-from b1 1)))))
1979   0)
1980  1)
1981
1982;;; cmucl (11 2003 image)  "NIL is not of type C::CONTINUATION"
1983(deftest misc.150
1984  (call-compiled
1985    '(lambda (a b c)
1986       (flet ((%f17
1987               (&optional
1988                (f17-4
1989                 (labels ((%f13 (f13-1 &optional (f13-2 (multiple-value-prog1 b)))
1990                                -4))
1991                   (%f13 b (%f13 190)))))
1992               -157596))
1993         (labels ((%f6 () (%f17))) c)))
1994   10 20 30000)
1995  30000)
1996
1997(deftest misc.150a
1998  (call-compiled
1999    '(lambda ()
2000       (declare (optimize (speed 3) (space 2) (safety 3)
2001                          (debug 3) (compilation-speed 2)))
2002       (catch 'ct6 (apply (constantly 0) (list)))))
2003  0)
2004
2005(deftest misc.150b
2006  (call-compiled
2007    '(lambda (a)
2008       (declare (type integer a))
2009       (declare (optimize (speed 3) (space 0) (safety 3) (debug 2)
2010                          (compilation-speed 3)))
2011       (if (= a 0) 0 (truncate a)))
2012   0)
2013  0)
2014
2015(deftest misc.150c
2016  (call-compiled
2017    '(lambda (a b)
2018       (declare (optimize (speed 1) (space 3) (safety 2) (debug 3) (compilation-speed 3)))
2019       (labels ((%f4 (f4-1)
2020                     0))
2021         (labels ((%f15
2022                   (f15-1 f15-2
2023                          &optional (f15-3 (apply #'%f4 0 nil)) (f15-4 0)
2024                          (f15-5 (%f4 (%f4 (if (/= 0 0) a 0)))))
2025                   0))
2026           (labels ((%f13 (f13-1)
2027                          (%f15 b 0 0 0)))
2028             0))))
2029   1 2)
2030  0)
2031
2032(deftest misc.150d
2033  (call-compiled
2034    '(lambda (a b)
2035       (declare (type (integer 4146834609223 16403344221223) a))
2036       (declare (type (integer -35470308180 3523580009) b))
2037       (declare (optimize (speed 1) (space 3) (safety 3) (debug 0) (compilation-speed 0)))
2038       (catch 'ct1 (logand b a 0)))
2039   4146834609223 10)
2040  0)
2041
2042;;; cmucl (11 2003 x86 linux)  "NIL is not of type C::ENVIRONMENT"
2043(deftest misc.151
2044  (call-compiled
2045    '(lambda (b c)
2046       (declare (type (integer -249 97) b))
2047       (declare (type (integer 3565969 6559088) c))
2048       (let* ((v7
2049               (if (not (= 1030 4))
2050                   c
2051                 (logand (if (/= b c) b 34945725) (unwind-protect -12443701)))))
2052         5520737))
2053   -24 5657943)
2054  5520737)
2055
2056(deftest misc.151a
2057  (call-compiled
2058    '(lambda ()
2059       (declare
2060        (optimize (speed 3) (space 3) (safety 1) (debug 1) (compilation-speed 0)))
2061       (case 0 ((-12 -9 -12 -2 -5 -2 15) (catch 'ct7 (throw 'ct7 0))) (t 0))))
2062  0) 
2063
2064;;; sbcl bug (0.8.5.19)
2065;;; "The value NIL is not of type SB-C::REF."
2066
2067(deftest misc.152
2068  (call-compiled
2069            '(lambda (a)
2070               (block b5
2071                 (let ((v1 (let ((v8 (unwind-protect 9365)))
2072                             8862008)))
2073                   (*
2074                    (return-from b5
2075                      (labels ((%f11 (f11-1) f11-1))
2076                        (%f11 87246015)))
2077                    (return-from b5
2078                      (setq v1
2079                            (labels ((%f6 (f6-1 f6-2 f6-3) v1))
2080                              (dpb (unwind-protect a)
2081                                   (byte 18 13)
2082                                   (labels ((%f4 () 27322826))
2083                                     (%f6 -2 -108626545 (%f4)))))))))))
2084   -6)
2085  87246015)
2086
2087(deftest misc.153
2088  (call-compiled
2089            '(lambda (a)
2090               (if (logbitp 3
2091                            (case -2
2092                              ((-96879 -1035 -57680 -106404 -94516 -125088)
2093                               (unwind-protect 90309179))
2094                              ((-20811 -86901 -9368 -98520 -71594)
2095                               (let ((v9 (unwind-protect 136707)))
2096                                 (block b3
2097                                   (setq v9
2098                                         (let ((v4 (return-from b3 v9)))
2099                                           (- (ignore-errors (return-from b3 v4))))))))
2100                              (t -50)))
2101                   -20343
2102                 a))
2103   0)
2104  -20343)
2105
2106;;; Bug in ecl (cvs head, 4 Nov 2003)
2107;;; "/tmp/ecl04Coiwc0V.c:48: `lex0' undeclared (first use in this function)"
2108
2109(deftest misc.154
2110  (call-compiled
2111            '(lambda (b)
2112               (labels ((%f8 nil -39011))
2113                 (flet ((%f4 (f4-1 f4-2 &optional (f4-3 (%f8)) (f4-4 b))
2114                             (%f8)))
2115                   (%f4 -260093 -75538 -501684 (let ((v9 (%f8))) -3)))))
2116   0)
2117  -39011)
2118
2119;;; "/tmp/ecl1572CbKzu.c:16: too many arguments to function `APPLY'"
2120
2121(deftest misc.155
2122  (call-compiled
2123            '(lambda (a b c)
2124               (labels ((%f6 (f6-1 f6-2) c))
2125                 (multiple-value-call #'%f6 (values a c))))
2126   0 10 20)
2127  20)
2128
2129;;; "The function C::LDB1 is undefined."
2130
2131(deftest misc.156
2132  (call-compiled
2133            '(lambda ()
2134               (let ((v6 (ldb (byte 30 1) 1473))) (let ((v8 v6)) 2395))))
2135  2395)
2136
2137;;; "/tmp/ecl9CEiD1RL5.c:36: `lex0' undeclared (first use in this function)"
2138   
2139(deftest misc.157
2140  (call-compiled
2141            ' (lambda (c)
2142                (labels ((%f11 nil 1))
2143                  (flet ((%f9 (f9-1 f9-2)
2144                              (case 17466182 ((-12) (%f11)) (t c))))
2145                    (%f9 -9913 c))))
2146   17)
2147  17)
2148
2149;;; SBCL (0.8.5.24) bug:  "bogus operands to XOR"
2150
2151(deftest misc.158
2152  (call-compiled
2153            '(lambda (a b c)
2154               (declare (type (integer 79828 2625480458) a))
2155               (declare (type (integer -4363283 8171697) b))
2156               (declare (type (integer -301 0) c))
2157               (if (equal 6392154 (logxor a b))
2158                   1706
2159                 (let ((v5 (abs c)))
2160                   (logand v5
2161                           (logior (logandc2 c v5)
2162                                   (common-lisp:handler-case
2163                                    (ash a (min 36 22477))))))))
2164   100000 0 0)
2165  0)
2166
2167;;; sbcl (0.8.5.24) The value NIL is not of type SB-C::CTRAN.
2168
2169(deftest misc.159
2170  (call-compiled
2171            '(lambda ()
2172               (let ((v8 70696))
2173                 (if (equal v8 -536145083)
2174                     (let ((v2 (setq v8 v8)))
2175                       (flet ((%f9 (f9-1 f9-2)
2176                                   309257))
2177                         (multiple-value-call #'%f9 (values v2 v2))))
2178                   100))))
2179  100)
2180
2181;;; sbcl (0.8.5.37) The value NIL is not of type SB-C::CTRAN.
2182
2183(deftest misc.159a
2184  (call-compiled
2185    '(lambda (a b)
2186       (declare (type (integer -105680 2104974) a))
2187       (declare (type (integer -1881 -1134) b))
2188       (declare (ignorable a b))
2189       (declare (optimize (speed 3)))
2190       (declare (optimize (safety 1)))
2191       (declare (optimize (debug 1)))
2192       (block b5
2193         (let ((v2
2194                (if (or (>= 34 a) 108361696)
2195                    (return-from b5 -1)
2196                  (lognand b -16023672))))
2197           (flet ((%f10
2198                   (f10-1
2199                    &optional (f10-2 (if (eql -30 v2) v2 -5)) (f10-3 v2)
2200                    (f10-4 14))
2201                   (if (equal a f10-2) f10-4 380663047)))
2202             (flet ((%f6 (f6-1 f6-2 f6-3)
2203                         f6-1))
2204               (multiple-value-call #'%f6
2205                                    (values a (%f10 -37243) -47691)))))))
2206   100 -1200)
2207  -1)
2208
2209;;; gcl (9 Nov 2003) bug
2210;;; Error in FUNCALL [or a callee]: Caught fatal error [memory may be damaged]
2211
2212(deftest misc.160
2213  (call-compiled
2214            '(lambda (c)
2215               (declare (notinline + funcall))
2216               (+ (labels ((%f1 () -14)) (funcall #'%f1))
2217                  (flet ((%f2 () (floor c))) (funcall #'%f2))))
2218   0)
2219  -14)
2220
2221;;; cmucl (9 Nov 2003)
2222;;; The assertion (NOT (MEMBER C::KIND '(:DELETED :OPTIONAL :TOP-LEVEL))) failed.
2223
2224(deftest misc.161
2225  (call-compiled
2226            '(lambda (a b c)
2227               (flet ((%f17 (f17-1 f17-2 f17-3)
2228                            (flet ((%f2
2229                                    (f2-1 f2-2
2230                                          &optional (f2-3 (return-from %f17 f17-1))
2231                                          (f2-4 (return-from %f17 -57)))
2232                                    b))
2233                              (multiple-value-call #'%f2 (values c -588 55101157)))))
2234                 (if nil
2235                     (let* ((v6 (%f17 102136 3096194 a)))
2236                       b)
2237                   c)))
2238   -511 -2269809964 250738)
2239  250738)
2240
2241(deftest misc.161a
2242  (call-compiled
2243            '(lambda (a)
2244               (declare (optimize (speed 3) (space 2) (safety 3) (debug 0) (compilation-speed 0)))
2245               (progn (abs 0) (- a) 0))
2246   1)
2247  0)
2248
2249;;; cmucl (9 Nov 2003) Incorrect result at SPEED 0.
2250
2251(deftest misc.162
2252  (let* ((fn `(lambda (a c)
2253                (declare (notinline funcall)
2254                         (optimize (speed 0) (debug 0)))
2255                (labels ((%f17 (f17-1 &optional (f17-4 c))
2256                               (return-from %f17 (if f17-4 f17-1 49572640))))
2257                  (funcall #'%f17 15128425 a)))))
2258    (call-compiled fn 1 3))
2259  15128425)
2260
2261;;; gcl (12 Nov 2003)
2262;;; C compiler failure during compilation (duplicate case value)
2263
2264(deftest misc.163
2265  (call-compiled
2266            '(lambda (b)
2267               (declare (type (integer -15716 3947) b))
2268               (case b
2269                 ((-7 -6 -6) :good)
2270                 ((-5 -6) :bad)
2271                 ))
2272
2273   -6)
2274  :good)
2275
2276;;; gcl (13 Nov 2003)
2277;;; Error in FUNCALL [or a callee]: Caught fatal error [memory may be damaged]
2278
2279(deftest misc.164
2280  (call-compiled
2281    '(lambda (a)
2282     (labels ((%f6 (f6-1 f6-2)
2283                   (cl:handler-case
2284                    (labels ((%f2 nil (logior a)))
2285                      (if (eql (%f2) (%f2))
2286                          2829254 -10723))
2287                    (error (c) (error c))
2288                    )))
2289       (funcall #'%f6 10 20)
2290       ))
2291   0)
2292  2829254)
2293
2294;;; sbcl failures
2295
2296;;; The value NIL is not of type SB-C::NODE.
2297(deftest misc.165
2298  (call-compiled
2299    '(lambda (a b c)
2300       (block b3
2301         (flet ((%f15
2302                 (f15-1 f15-2 f15-3
2303                        &optional
2304                        (f15-4
2305                         (flet ((%f17
2306                                 (f17-1 f17-2 f17-3
2307                                        &optional (f17-4 185155520) (f17-5 c)
2308                                        (f17-6 37))
2309                                 c))
2310                           (%f17 -1046 a 1115306 (%f17 b -146330 422) -337817)))
2311                        (f15-5 a) (f15-6 -40))
2312                 (return-from b3 -16)))
2313           (multiple-value-call #'%f15 (values -519354 a 121 c -1905)))))
2314   0 0 -5)
2315  -16)
2316
2317;;; failed AVER:
2318;;;      "(NOT
2319;;; (AND (NULL (BLOCK-SUCC B))
2320;;;      (NOT (BLOCK-DELETE-P B))
2321;;;      (NOT (EQ B (COMPONENT-HEAD #)))))"
2322
2323(deftest misc.166
2324  (call-compiled
2325    '(lambda (a b c)
2326       (labels ((%f4
2327                 (f4-1 f4-2 &optional (f4-3 b) (f4-4 c) (f4-5 -170))
2328                 (let ((v2
2329                        (flet ((%f3
2330                                (f3-1
2331                                 &optional (f3-2 28476586) (f3-3 c)
2332                                 (f3-4 -9240))
2333                                (return-from %f4 1)))
2334                          (multiple-value-call
2335                           #'%f3
2336                           (values -479909 19843799 f4-5 -463858)))))
2337                       b)))
2338         c))
2339   0 0 -223721124)
2340  -223721124)
2341
2342(deftest misc.167
2343  (call-compiled
2344    '(lambda (a b c)
2345       (flet ((%f5 (f5-1 f5-2)
2346                   (return-from %f5 604245664)))
2347         (flet ((%f12
2348                 (f12-1 f12-2
2349                        &optional (f12-3 c) (f12-4 -579456)
2350                        (f12-5
2351                         (labels ((%f9
2352                                   (f9-1
2353                                    &optional
2354                                    (f9-2
2355                                     (%f5 1
2356                                          (let ((v4 (%f5 30732606 a)))
2357                                            b)))
2358                                    (f9-3 -29)
2359                                    (f9-4
2360                                     (block b4
2361                                       (labels ((%f14 ()
2362                                                      (labels ((%f18
2363                                                                (&optional
2364                                                                 (f18-1
2365                                                                  (locally
2366                                                                   592928))
2367                                                                 (f18-2 -3)
2368                                                                 (f18-3
2369                                                                  (return-from
2370                                                                      b4 a)))
2371                                                                f18-1))
2372                                                        (%f18 74214190 a))))
2373                                         (%f14)))))
2374                                   -1))
2375                           (flet ((%f17
2376                                   (f17-1 f17-2 &optional (f17-3 -136045032))
2377                                   -38655))
2378                             (%f17 43873 -138030706 -1372492)))))
2379                 (return-from %f12 -15216677)))
2380           (%f12 (%f5 b 2329383) a))))
2381   1 2 3)
2382  -15216677)
2383
2384(deftest misc.168
2385  (call-compiled
2386    '(lambda (a b c)
2387       (block b3
2388         (flet ((%f11
2389                 (f11-1 f11-2
2390                        &optional
2391                        (f11-3
2392                         (block b6
2393                           (labels ((%f11
2394                                     (f11-1
2395                                      &optional (f11-2 c)
2396                                      (f11-3 (return-from b6 -1806)))
2397                                     (return-from b3 -28432)))
2398                             (apply #'%f11 (list -114))))))
2399                 (return-from %f11 f11-2)))
2400           (%f11 b
2401                 c
2402                 (labels ((%f10
2403                           (f10-1 f10-2
2404                                  &optional (f10-3 a) (f10-4 (%f11 -3931 170)))
2405                           -1704759))
2406                   c)))))
2407   1 2 3)
2408  3)
2409
2410(deftest misc.169
2411  (call-compiled
2412    '(lambda (a b c)
2413       (if t -21705
2414         (flet ((%f15 (f15-1 f15-2)
2415                      b))
2416           (block b4
2417             (%f15 -11112264
2418                   (labels ((%f2
2419                             (f2-1
2420                              &optional (f2-2 (if b -5485340 -1534))
2421                              (f2-3 -6))
2422                             (return-from b4 f2-1)))
2423                     (return-from b4
2424                       (if b (%f2 c -320813) (%f2 b a a)))))))))
2425   1 2 3)
2426  -21705)
2427
2428;;; sbcl (0.8.5.26)
2429;;; failed AVER: "(FUNCTIONAL-LETLIKE-P CLAMBDA)"
2430
2431(deftest misc.170
2432  (call-compiled
2433    '(lambda (b)
2434       (flet ((%f14 (f14-1 f14-2)
2435                    (if (if (eql b -7) nil nil)
2436                        (labels ((%f10 (f10-1 f10-2 f10-3)
2437                                       7466))
2438                          (return-from %f14
2439                            (min
2440                             (multiple-value-call #'%f10 (values 0 492 f14-1))
2441                             (max 11 f14-1)
2442                             (multiple-value-call #'%f10
2443                                                  (values 439171 f14-2 0)))))
2444                      1)))
2445         (let ((v6 (%f14 (logcount b) -386283)))
2446           56211)))
2447   17)
2448  56211)
2449
2450(deftest misc.170a
2451  (call-compiled
2452    '(lambda (a b)
2453       (declare (type (integer -281 30570) a))
2454       (declare (type (integer -4247786 -199821) b))
2455       (declare
2456        (optimize (speed 3)
2457                  (space 0)
2458                  (safety 0)
2459                  (debug 2)
2460                  (compilation-speed 1)))
2461       (flet ((%f14 (f14-1 f14-2)
2462                    (coerce 0 'integer)))
2463         (labels ((%f3 (f3-1 f3-2 f3-3)
2464                       (if
2465                           (if
2466                               (typep (%f14 -864 -10620) '(integer -11672107617 -2))
2467                               t
2468                             (typep
2469                              (imagpart
2470                               (lcm 2120258 0 (logandc2 -6222 -1057382553)))
2471                              '(integer * -113)))
2472                           (dotimes
2473                               (iv3 5
2474                                    (flet ((%f11 (f11-1 f11-2 f11-3)
2475                                                 b))
2476                                      (multiple-value-call #'%f11
2477                                                           (values a a f3-3))))
2478                             0)
2479                         0)))
2480           (case (%f3 a a 0) (t 0)))))
2481   22087 -1787181)
2482  0)
2483
2484;;; The value NIL is not of type SB-C::NODE.
2485
2486(deftest misc.171
2487  (call-compiled
2488    '(lambda (b)
2489       (block b6
2490         (flet ((%f11 (f11-1 f11-2 &optional (f11-3 -2369157) (f11-4 409468))
2491                      (return-from b6 1)))
2492           (block b2
2493             (flet ((%f10 (f10-1 f10-2
2494                            &optional (f10-3 (return-from b6 (return-from b6 -3))))
2495                     -8))
2496               (%f10
2497                (multiple-value-call #'%f11 (values -5945959 1654846427 -22))
2498                (return-from b2 b)
2499                (return-from b2 31258361)))))))
2500   10)
2501  1)
2502
2503 
2504;;;   segmentation violation at #XA4A0B59
2505
2506(deftest misc.172
2507  (call-compiled
2508    '(lambda (a b c)
2509       (declare (notinline list apply))
2510       (declare (optimize (safety 3)))
2511       (declare (optimize (speed 0)))
2512       (declare (optimize (debug 0)))
2513       (labels ((%f12 (f12-1 f12-2)
2514                      (labels ((%f2 (f2-1 f2-2)
2515                                    (flet ((%f6 ()
2516                                                (flet ((%f18
2517                                                        (f18-1
2518                                                         &optional (f18-2 a)
2519                                                         (f18-3 -207465075)
2520                                                         (f18-4 a))
2521                                                        (return-from %f12 b)))
2522                                                  (%f18 -3489553
2523                                                        -7
2524                                                        (%f18 (%f18 150 -64 f12-1)
2525                                                              (%f18 (%f18 -8531)
2526                                                                    11410)
2527                                                              b)
2528                                                        56362666))))
2529                                      (labels ((%f7
2530                                                (f7-1 f7-2
2531                                                      &optional (f7-3 (%f6)))
2532                                                7767415))
2533                                        f12-1))))
2534                        (%f2 b -36582571))))
2535         (apply #'%f12 (list 774 -4413))))
2536   0 1 2)
2537  774)
2538
2539;;; In sbcl 0.8.5.37
2540;;; "Unreachable code is found or flow graph is not properly depth-first ordered."
2541
2542(deftest misc.173
2543  (call-compiled
2544    '(lambda (a b c)
2545       (declare (notinline values))
2546       (declare (optimize (safety 3)))
2547       (declare (optimize (speed 0)))
2548       (declare (optimize (debug 0)))
2549       (flet ((%f11
2550               (f11-1 f11-2
2551                      &optional (f11-3 c) (f11-4 7947114)
2552                      (f11-5
2553                       (flet ((%f3 (f3-1 &optional (f3-2 b) (f3-3 5529))
2554                                   8134))
2555                         (multiple-value-call #'%f3
2556                                              (values (%f3 -30637724 b) c)))))
2557               (setq c 555910)))
2558         (if (and nil (%f11 a a))
2559             (if (%f11 a 421778 4030 1)
2560                 (labels ((%f7
2561                           (f7-1 f7-2
2562                                 &optional
2563                                 (f7-3
2564                                  (%f11 -79192293
2565                                        (%f11 c a c -4 214720)
2566                                        b
2567                                        b
2568                                        (%f11 b 985)))
2569                                 (f7-4 a))
2570                           b))
2571                   (%f11 c b -25644))
2572               54)
2573           -32326608)))
2574   1 2 3)
2575  -32326608)
2576
2577;;; In sbcl 0.8.5.37
2578;;; The value NIL is not of type SB-C:COMPONENT.
2579
2580(deftest misc.174
2581  (call-compiled
2582    '(lambda (a b c)
2583         (declare (type (integer 10292971433 14459537906) b))
2584         (declare (optimize (speed 3)))
2585         (declare (optimize (safety 1)))
2586         (declare (optimize (debug 1)))
2587         (if
2588          (and (and (/= -51885 b) nil)
2589               (case (1+ b)
2590                 ((4 4 3 -4)
2591                  (let* ((v1
2592                          (flet ((%f16 (f16-1)
2593                                   -1858366))
2594                            (apply #'%f16 b (list)))))
2595                    -1602321))
2596                 (t 3)))
2597          19
2598          c))
2599   0 11000000000 0)
2600  0)
2601
2602(deftest misc.174a
2603  (call-compiled
2604    '(lambda (a b)
2605       (declare (type (integer 23 365478242977) a))
2606       (declare (type (integer -38847 268231) b))
2607       (declare (optimize (speed 3)))
2608       (declare (optimize (safety 1)))
2609       (declare (optimize (debug 1)))
2610       (if (not (if (/= b 7) t (not (not a))))
2611           (case (setq b -5880)
2612             ((8382 3401 2058 39167 62228)
2613              (flet ((%f7 (f7-1 f7-2 f7-3) f7-1))
2614                (multiple-value-call #'%f7 (values -135629 a -410168200))))
2615             (t a))
2616         15173))
2617   30 0)
2618  15173)
2619
2620(deftest misc.174b
2621  (call-compiled
2622    '(lambda (a b)
2623       (declare (type (integer -8688 2170) a))
2624       (declare (type (integer -9938931470 1964967743) b))
2625       (declare (optimize (speed 3)))
2626       (declare (optimize (safety 1)))
2627       (declare (optimize (debug 1)))
2628       (if
2629           (and
2630            (if (if (equal b 9) nil t)
2631                nil
2632              (not
2633               (logbitp 5
2634                        (labels ((%f5 (f5-1 f5-2 f5-3)
2635                                      4057223))
2636                          (let ((v9 (%f5 -42 -27504 45026809)))
2637                            15011)))))
2638            (if
2639                (or a
2640                    (labels ((%f16 (f16-1)
2641                                   61))
2642                      (apply #'%f16 275 (list))))
2643                a
2644              t))
2645           (setq a -4803)
2646         (rem a (max 47 b))))
2647   0 0)
2648  0)
2649
2650;;; In sbcl 0.8.5.37
2651;;; "Unreachable code is found or flow graph is not properly depth-first ordered."
2652
2653(deftest misc.175
2654  (call-compiled
2655    '(lambda (a b c)
2656       (declare (notinline list apply values signum funcall))
2657       (declare (optimize (safety 3)))
2658       (declare (optimize (speed 0)))
2659       (declare (optimize (debug 0)))
2660       (labels ((%f4 (f4-1 f4-2 f4-3)
2661                     (labels ((%f1 (f1-1 f1-2 f1-3)
2662                                   2))
2663                       (labels ((%f11
2664                                 (f11-1
2665                                  &optional
2666                                  (f11-2
2667                                   (return-from %f4
2668                                     (labels ((%f8
2669                                               (f8-1 f8-2 f8-3
2670                                                     &optional (f8-4 -35)
2671                                                     (f8-5 f4-2))
2672                                               f4-1))
2673                                       (funcall #'%f8 53 b f4-1)))))
2674                                 (return-from %f4 a)))
2675                         (signum
2676                          (let ((v4
2677                                 (flet ((%f8
2678                                         (f8-1 f8-2 f8-3
2679                                               &optional (f8-4 b) (f8-5 -560367))
2680                                         f8-4))
2681                                   (%f8 -27 35395 c -69))))
2682                            (%f11
2683                             (multiple-value-call #'%f11
2684                                                  (values (%f1 (%f11 b (%f11 v4 f4-3)) f4-3 77936)
2685                                                          1628490976))
2686                             (return-from %f4 (%f1 -9432 f4-1 f4-1)))))))))
2687         (flet ((%f7 (f7-1 f7-2 f7-3)
2688                     (%f4 b f7-3 f7-3)))
2689           (flet ((%f14 (f14-1)
2690                        (apply #'%f7 -252 -56169265 -7322946 (list))))
2691             (%f14 a)))))
2692   -70313091 577425217 28052774417)
2693  -70313091)
2694
2695(deftest misc.175a
2696  (call-compiled
2697    '(lambda (a b)
2698         (declare (notinline values list apply logior))
2699         (declare (optimize (safety 3)))
2700         (declare (optimize (speed 0)))
2701         (declare (optimize (debug 0)))
2702         (if nil
2703             (logior (flet ((%f5 (f5-1) b)) (%f5 56288))
2704              (flet ((%f17 (f17-1 f17-2
2705                          &optional
2706                          (f17-3 (let () 6857))
2707                          (f17-4
2708                           (labels ((%f3 (f3-1 f3-2 f3-3  &optional (f3-4 a) (f3-5 877))
2709                                         139))
2710                             (apply #'%f3 (list -33052082 b a 1572)))))
2711                           b))
2712                (multiple-value-call #'%f17 (values 31 b a b))))
2713             392))
2714   0 0)
2715  392)
2716
2717(deftest misc.175b
2718  (call-compiled
2719    '(lambda (a b)
2720       (declare (type (integer -1185422977 2286472818) a))
2721       (declare (type (integer -211381289038 74868) b))
2722       (declare (ignorable a b))
2723       (declare (optimize (speed 3)))
2724       (declare (optimize (safety 1)))
2725       (declare (optimize (debug 1)))
2726       (lognor (unwind-protect -1248)
2727               (flet ((%f7
2728                       (&optional
2729                        (f7-1
2730                         (flet ((%f1 (f1-1 f1-2 f1-3) 121426))
2731                           (%f1 b 2337452 (%f1 61767 b a))))
2732                        (f7-2
2733                         (block b8
2734                           (logandc1
2735                            (labels ((%f10 (f10-1 f10-2 f10-3) 323734600))
2736                              (%f10 (%f10 323734600 323734600 -10165)
2737                                    -607741 (ignore-errors 971588)))
2738                            (if (>= b -27) (return-from b8 -2)
2739                              (ignore-errors 237138926))))))
2740                       f7-2))
2741                 (apply #'%f7 (list 761316125 b)))))
2742   1792769319 -60202244870)
2743  5)
2744
2745
2746;;; sbcl 0.8.5.37
2747;;; failed AVER: "(FUNCTIONAL-LETLIKE-P CLAMBDA)"
2748
2749(deftest misc.176
2750  (call-compiled
2751    '(lambda (a b c)
2752       (declare (type (integer 162180298 184143783) a))
2753       (declare (type (integer 702599480988 725878356286) b))
2754       (declare (type (integer 168 80719238530) c))
2755       (declare (optimize (speed 3)))
2756       (declare (optimize (safety 1)))
2757       (declare (optimize (debug 1)))
2758       (block b6
2759         (flet ((%f10 (f10-1 f10-2)
2760                      (labels ((%f6 (f6-1 f6-2)
2761                                    f6-1))
2762                        (let ((v2
2763                               (flet ((%f1 (f1-1 f1-2 f1-3)
2764                                           f1-3))
2765                                 (let ((v8
2766                                        (%f1 -11350578
2767                                             (%f6 10414199 13)
2768                                             -58931837)))
2769                                   -239755))))
2770                          323))))
2771           (labels ((%f4
2772                     (f4-1
2773                      &optional (f4-2 204) (f4-3 -1)
2774                      (f4-4
2775                       (flet ((%f2 (f2-1)
2776                                   (if t (return-from b6 c) a)))
2777                         (logorc2 (multiple-value-call #'%f2 (values 1))
2778                                  (let* ((v5 (floor (%f2 -1260))))
2779                                    (case (abs (logxor 185664 a))
2780                                      ((-2 5975)
2781                                       (if (or (< b v5) nil)
2782                                           (return-from b6
2783                                             (let ((v10 (%f2 c)))
2784                                               0))
2785                                         (multiple-value-call #'%f10
2786                                                              (values -3 a))))
2787                                      (t b)))))))
2788                     1503938))
2789             (multiple-value-call #'%f4 (values -1 a 1853966))))))
2790   173549795 725346738048 993243799)
2791  993243799)
2792
2793;;; different results (sbcl 0.8.5.37)
2794;;; May be that setq side effects bug again?
2795
2796(deftest misc.177
2797  (let* ((form '(flet ((%f11
2798                        (f11-1 f11-2)
2799                        (labels ((%f4 () (round 200048 (max 99 c))))
2800                          (logand
2801                           f11-1
2802                           (labels ((%f3 (f3-1) -162967612))
2803                             (%f3 (let* ((v8 (%f4)))
2804                                    (setq f11-1 (%f4)))))))))
2805                  (%f11 -120429363 (%f11 62362 b))))
2806         (vars '(a b c))
2807         (vals '(6714367 9645616 -637681868))
2808         (fn1 `(lambda ,vars
2809                  (declare (type (integer 804561 7640697) a))
2810                  (declare (type (integer -1 10441401) b))
2811                  (declare (type (integer -864634669 55189745) c))
2812                  (declare (ignorable a b c))
2813                  (declare (optimize (speed 3)))
2814                  (declare (optimize (safety 1)))
2815                  (declare (optimize (debug 1)))
2816                  ,form))
2817         (fn2 `(lambda ,vars
2818                 (declare (notinline list apply logand max round))
2819                 (declare (optimize (safety 3)))
2820                 (declare (optimize (speed 0)))
2821                 (declare (optimize (debug 0)))
2822                 ,form))
2823         (results1 (multiple-value-list (apply-compiled fn1 vals)))
2824         (results2 (multiple-value-list (apply-compiled fn2 vals))))
2825    (if (equal results1 results2)
2826        :good
2827      (values results1 results2)))
2828  :good)
2829
2830;;; sbcl 0.8.5.37
2831;;; The value NIL is not of type INTEGER.
2832
2833(deftest misc.178
2834  (call-compiled
2835    '(lambda (a b c)
2836         (declare (ignorable a b c))
2837         (declare (optimize (speed 3)))
2838         (declare (optimize (safety 1)))
2839         (declare (optimize (debug 1)))
2840         (let ((v9
2841                (flet ((%f9
2842                           (f9-1 f9-2 f9-3
2843                            &optional (f9-4 -40538)
2844                            (f9-5
2845                             (flet ((%f10 (f10-1 f10-2)
2846                                      (labels ((%f11 (f11-1 f11-2)
2847                                                 (labels ((%f10 (f10-1 f10-2)
2848                                                            -1422))
2849                                                   (if
2850                                                    (< b
2851                                                       (%f10
2852                                                        (%f10 28262437 95387)
2853                                                        f10-2))
2854                                                    -1562
2855                                                    f10-2))))
2856                                        (let* ((v6 (%f11 59 b)))
2857                                          (return-from %f10
2858                                            (apply #'%f11
2859                                                   f10-1
2860                                                   (list
2861                                                    (return-from %f10
2862                                                      2029647))))))))
2863                               (apply #'%f10 -3067 3854883 (list)))))
2864                         64066))
2865                  (%f9 a 2774 0 c))))
2866           (flet ((%f18 (f18-1 f18-2 &optional (f18-3 66) (f18-4 b))
2867                    -6939342))
2868             (%f18 1274880 (%f18 b a 46746370 -1)))))
2869   0 0 0)
2870  -6939342)
2871
2872;;; sbcl 0.8.5.37
2873;;; failed AVER: "(FUNCTIONAL-LETLIKE-P CLAMBDA)"
2874
2875(deftest misc.179
2876  (call-compiled
2877    '(lambda (a b)
2878       (declare (type (integer 1135 16722) a))
2879       (declare (type (integer -640723637053 -9049) b))
2880       (declare (optimize (speed 3)))
2881       (declare (optimize (safety 1)))
2882       (declare (optimize (debug 1)))
2883       (block b3
2884         (return-from b3
2885           (flet ((%f17 (f17-1 &optional (f17-2 b) (f17-3 b))
2886                        (+ (if t (return-from b3 -64796) a))))
2887             (case (%f17 -3908648 -7026139 a)
2888               ((41771 -113272 -48004 -39699 50691 -13222)
2889                (multiple-value-call #'%f17 (values -1963404294 -105)))
2890               (t -7026139))))))
2891   2000 -10000)
2892  -64796)
2893
2894(deftest misc.180
2895  (call-compiled
2896    '(lambda (a b)
2897       (declare (type (integer 41 484) a))
2898       (declare (type (integer -2546947 1008697961708) b))
2899       (declare (optimize (speed 3)))
2900       (declare (optimize (safety 1)))
2901       (declare (optimize (debug 1)))
2902       (if (and (ldb-test (byte 30 10) b) nil)
2903           (labels ((%f7 (f7-1 f7-2 &optional (f7-3 -508405733))
2904                         390004056))
2905             (let* ((v4 (multiple-value-call #'%f7 (values b (%f7 b b)))))
2906               (multiple-value-call #'%f7
2907                                    (values (%f7 80199 a)
2908                                            (%f7
2909                                             (%f7 a
2910                                                  (let* ((v6 (%f7 -226 250)))
2911                                                    a))
2912                                             (abs (ceiling v4)))))))
2913         -6001))
2914   50 0)
2915  -6001)
2916
2917;;; sbcl 0.8.5.37
2918;;; The value NIL is not of type SB-C::TAIL-SET.
2919
2920(deftest misc.181
2921  (call-compiled
2922    '(lambda (a b)
2923         (declare (type (integer -74233251043 -16478648860) a))
2924         (declare (type (integer 0 960962) b))
2925         (declare (optimize (speed 3)))
2926         (declare (optimize (safety 1)))
2927         (declare (optimize (debug 1)))
2928         (flet ((%f14 ()
2929                  (if 1
2930                      (return-from %f14 a)
2931                      (labels ((%f10 (f10-1 f10-2 f10-3
2932                                            &optional (f10-4 (let* ((v7 a)) 915)))
2933                                 -1268205049))
2934                        (labels ((%f18 (f18-1)
2935                                   (multiple-value-call #'%f10
2936                                     (values f18-1
2937                                             (%f10
2938                                              (%f10 -1495
2939                                                    (%f10 -384
2940                                                          -84
2941                                                          (%f10 -1
2942                                                                48052
2943                                                                58909027
2944                                                                -35812)
2945                                                          -114)
2946                                                    (%f10 -391646964
2947                                                          -28131299
2948                                                          f18-1
2949                                                          (%f10 b 368193 a)))
2950                                              (%f10 f18-1
2951                                                    -1415811
2952                                                    f18-1
2953                                                    267932407)
2954                                              174)
2955                                             -58
2956                                             320))))
2957                          (let* ((v3 (let ((v7 (return-from %f14 (%f18 -418731))))
2958                                       (%f10 104871 -1196 -21 a))))
2959                            (labels ((%f1 () (%f18 (%f18 -794761))))
2960                              (return-from %f14 b))))))))
2961           (if (%f14) b 887481)))
2962   -51967629256 809047)
2963  809047)
2964
2965(deftest misc.181a
2966  (call-compiled
2967    '(lambda (a b)
2968       (declare (type (integer -982285129 -90) a))
2969       (declare (type (integer 1 82987) b))
2970       (declare (optimize (speed 3)))
2971       (declare (optimize (safety 1)))
2972       (declare (optimize (debug 1)))
2973       (labels ((%f1 (f1-1 &optional (f1-2 -34) (f1-3 3318057) (f1-4 117))
2974                     (let ((v9 (let ((v9 (if t (return-from %f1 f1-2) 606042)))
2975                                 f1-1)))
2976                       (flet ((%f16 (f16-1 f16-2)  292))
2977                         (labels ((%f2 (f2-1 f2-2 f2-3
2978                                             &optional (f2-4 f1-3) (f2-5 f1-4)
2979                                             (f2-6 -418207187))
2980                                       (%f16 2099 (%f16 f1-2 1157))))
2981                           (return-from %f1 (%f2 f1-4 -12066040 v9 122107)))))))
2982         (flet ((%f5
2983                 (f5-1
2984                  &optional
2985                  (f5-2 (labels ((%f13 (f13-1 f13-2 f13-3
2986                                              &optional (f13-4 a) (f13-5 b))
2987                                       1054213657))
2988                          (%f13 b 166441 -3)))
2989                  (f5-3 20102220)
2990                  (f5-4 (labels ((%f11 (f11-1 f11-2 f11-3)
2991                                       (%f1 -110148 (%f1 -12336576 f11-1 -61))))
2992                          (let ((v1 (apply #'%f11 -29706 a b (list))))
2993                            a))))
2994                 b))
2995           (labels ((%f17 (f17-1 f17-2 f17-3
2996                                 &optional (f17-4 -107566292) (f17-5 63) (f17-6 -2))
2997                          105656))
2998             (%f5
2999              (%f17 185703492 a a -511
3000                    (%f1 b b -218142
3001                         (%f17 -240978 2923208 22 (%f5 1542 68917407 a) b)))
3002              -2018
3003              -1)))))
3004   -100 1)
3005  1)
3006
3007;;; sbcl 0.8.5.40
3008;;; Different results from exprs containing ROUND
3009
3010(deftest misc.182
3011  (let* ((form '(labels ((%f14 (f14-1 f14-2)
3012                               (labels ((%f16
3013                                         (f16-1 f16-2
3014                                                &optional
3015                                                (f16-3 (setq f14-1 (ash f14-1 (min 77 b)))))
3016                                         (logandc2 c -100)))
3017                                 (return-from %f14 (* 2 (gcd f14-1 (%f16 c f14-1)))))))
3018                  (round (%f14 c c)
3019                         (max 83 (%f14 (multiple-value-call #'%f14 (values 0 2)) 0)))))
3020         (fn1 `(lambda (a b c)
3021                 (declare (type (integer 5628 8762) a))
3022                 (declare (type (integer 778 33310188747) b))
3023                 (declare (type (integer -6699 4554) c))
3024                 (declare (optimize (speed 3)))
3025                 (declare (optimize (safety 1)))
3026                 (declare (optimize (debug 1)))
3027                 ,form))
3028         (fn2 `(lambda (a b c)
3029                 (declare (notinline values max round gcd * logandc2 min ash))
3030                 (declare (optimize (safety 3)))
3031                 (declare (optimize (speed 0)))
3032                 (declare (optimize (debug 0)))
3033                 ,form))
3034         (vals '(7395 1602862793 -2384))
3035         (result1 (multiple-value-list (apply-compiled fn1 vals)))
3036         (result2 (multiple-value-list (apply-compiled fn2 vals))))
3037    (if (equal result1 result2)
3038        :good
3039      (values result1 result2)))
3040  :good)
3041
3042;;; sbcl 0.8.5.42
3043;;; failed AVER: "(NOT POPPING)"
3044;;; Also occurs in cmucl (11/2003 snapshot)
3045
3046(deftest misc.183
3047  (call-compiled
3048    '(lambda (a b c)
3049       (declare (type (integer -368154 377964) a))
3050       (declare (type (integer 5044 14959) b))
3051       (declare (type (integer -184859815 -8066427) c))
3052       (declare (ignorable a b c))
3053       (declare (optimize (speed 3)))
3054       (declare (optimize (safety 1)))
3055       (declare (optimize (debug 1)))
3056       (block b7
3057         (flet ((%f3 (f3-1 f3-2 f3-3) 0))
3058           (apply #'%f3 0 (catch 'foo (return-from b7 (%f3 0 b c))) c nil))))
3059   0 6000 -9000000)
3060  0)
3061
3062(deftest misc.183a
3063  (let () (apply #'list 1 (list (catch 'a (throw 'a (block b 2))))))
3064  (1 2))
3065
3066;;; sbcl 0.8.5.42
3067;;; failed AVER: "(FUNCTIONAL-LETLIKE-P CLAMBDA)"
3068
3069(deftest misc.184
3070  (call-compiled
3071    '(lambda (a b c)
3072       (declare (type (integer 867934833 3293695878) a))
3073       (declare (type (integer -82111 1776797) b))
3074       (declare (type (integer -1432413516 54121964) c))
3075       (declare (optimize (speed 3)))
3076       (declare (optimize (safety 1)))
3077       (declare (optimize (debug 1)))
3078       (if nil
3079           (flet ((%f15 (f15-1 &optional (f15-2 c))
3080                        (labels ((%f1 (f1-1 f1-2) 0))
3081                          (%f1 a 0))))
3082             (flet ((%f4 ()
3083                         (multiple-value-call #'%f15
3084                                              (values (%f15 c 0) (%f15 0)))))
3085               (if nil (%f4)
3086                 (flet ((%f8 (f8-1 &optional (f8-2 (%f4)) (f8-3 0))
3087                             f8-3))
3088                   0))))
3089         0))
3090   3040851270 1664281 -1340106197)
3091  0)
3092
3093;;; sbcl 0.8.5.42
3094;;; invalid number of arguments: 1
3095;;; ("XEP for LABELS CL-TEST::%F10" ...
3096
3097(deftest misc.185
3098  (call-compiled
3099    '(lambda (a b c)
3100       (declare (type (integer 5 155656586618) a))
3101       (declare (type (integer -15492 196529) b))
3102       (declare (type (integer 7 10) c))
3103       (declare (optimize (speed 3)))
3104       (declare (optimize (safety 1)))
3105       (declare (optimize (debug 1)))
3106       (flet ((%f3
3107               (f3-1 f3-2 f3-3
3108                     &optional (f3-4 a) (f3-5 0)
3109                     (f3-6
3110                      (labels ((%f10 (f10-1 f10-2 f10-3)
3111                                     0))
3112                        (apply #'%f10
3113                               0
3114                               a
3115                               (- (if (equal a b) b (%f10 c a 0))
3116                                  (catch 'ct2 (throw 'ct2 c)))
3117                               nil))))
3118               0))
3119         (%f3 (%f3 (%f3 b 0 0 0) a 0) a b b b c)))
3120   5 0 7)
3121  0)
3122
3123(deftest misc.185a
3124  (call-compiled
3125    '(lambda (a b c)
3126       (declare (type (integer -1304066 1995764) a))
3127       (declare (type (integer -52262604195 5419515202) b))
3128       (declare (type (integer -13 94521) c))
3129       (declare (optimize (speed 3)))
3130       (declare (optimize (safety 1)))
3131       (declare (optimize (debug 1)))
3132       (flet ((%f13 (f13-1 f13-2 f13-3)
3133                    0))
3134         (apply #'%f13
3135                (%f13 b 0 0)
3136                (catch 'ct1 0)
3137                (catch 'ct2 (throw 'ct2 c))
3138                nil)))
3139   0 0 0)
3140  0)
3141
3142;;; sbcl 0.8.5.42
3143;;; Different results
3144
3145(deftest misc.186
3146  (let* ((form '(labels ((%f3 (f3-1 f3-2) f3-1))
3147                  (apply #'%f3 b (catch 'ct8 (throw 'ct8 (logeqv (%f3 c 0)))) nil)))
3148         (vars '(b c))
3149         (fn1 `(lambda ,vars
3150                 (declare (type (integer -2 19) b)
3151                          (type (integer -1520 218978) c)
3152                          (optimize (speed 3) (safety 1) (debug 1)))
3153                 ,form))
3154         (fn2 `(lambda ,vars
3155                 (declare (notinline logeqv apply)
3156                          (optimize (safety 3) (speed 0) (debug 0)))
3157                 ,form))
3158         (result1 (multiple-value-list (call-compiled fn1 2 18886)))
3159         (result2 (multiple-value-list (call-compiled fn2 2 18886))))
3160    (if (equal result1 result2)
3161        :good
3162      (values result1 result2)))
3163  :good)
3164
3165;;; cmucl (11/2003 snapshot)
3166;;; The assertion (NOT (EQ (C::FUNCTIONAL-KIND C::LEAF) :ESCAPE)) failed.
3167
3168(deftest misc.187
3169  (apply
3170   (eval '(function
3171           (lambda (a b c)
3172             (declare (notinline))
3173             (declare (optimize (safety 3)))
3174             (declare (optimize (speed 0)))
3175             (declare (optimize (debug 0)))
3176             (flet ((%f7 (&optional (f7-1 (catch (quote ct7) 0)) (f7-2 0))
3177                         c))
3178               (let ((v8
3179                      (flet ((%f14 (f14-1 &optional (f14-2 (%f7 b)))
3180                                   0))
3181                        0)))
3182                 (%f7 b))))))
3183   '(2374299 70496 -6321798384))
3184  -6321798384)
3185
3186;;; ecl bug
3187;;; Segmentation violation
3188
3189(deftest misc.188
3190  (call-compiled
3191    '(lambda (a b c)
3192          (declare (notinline floor min funcall))
3193          (declare (optimize (safety 3) (speed 0) (debug 0)))
3194          (floor (flet ((%f10 (f10-1 f10-2) b)) (%f10 (%f10 0 0) a))
3195                 (min -37
3196                      (labels ((%f6 (f6-1 f6-2 f6-3) b))
3197                        (funcall #'%f6 b b b)))))
3198   7187592 -3970792748407 -14760)
3199  1 0)
3200
3201;;; Wrong number of arguments passed to an anonymous function
3202(deftest misc.189
3203  (call-compiled
3204    '(lambda (a b c)
3205       (declare (optimize (speed 3) (safety 1) (debug 1)))
3206       (let* ((v7 (labels ((%f13 (f13-1 f13-2 f13-3) 0))
3207                    (multiple-value-call #'%f13 (values a a a)))))
3208         (flet ((%f10 nil v7)) (%f10))))
3209   1733 3000 1314076)
3210  0)
3211
3212;;; gcl bug
3213;;; Error in FUNCALL [or a callee]: #<compiled-closure 088ab770> is not of type NUMBER.
3214
3215(deftest misc.190
3216  (let* ((form '(flet ((%f15 ()
3217                             (labels ((%f4 (f4-1) 0))
3218                               (flet ((%f6 (&optional
3219                                            (f6-2
3220                                             (logand (apply #'%f4 (list (%f4 0)))
3221                                                     (round (* a)))))
3222                                           -284))
3223                                 (%f6)))))
3224                  (funcall #'%f15)))
3225         (fn `(lambda (a b c)
3226                (declare (notinline values equal abs isqrt < >= byte
3227                                    mask-field funcall + * logcount logand logior
3228                                    round list apply min))
3229                (declare (optimize (safety 3)))
3230                (declare (optimize (speed 0)))
3231                (declare (optimize (debug 0)))
3232                ,form))
3233         (vals '(538754530150 -199250645748 105109641)))
3234    (apply-compiled fn vals))
3235  -284)
3236
3237;;; gcl
3238;;; Error in COMPILER::CMP-ANON [or a callee]: 0 is not of type FUNCTION.
3239
3240(deftest misc.191
3241  (call-compiled
3242    '(lambda (a b c)
3243          (declare (optimize (speed 3) (safety 1)))
3244          (labels ((%f1 nil c))
3245            (flet ((%f12 (f12-1)
3246                         (labels ((%f9 (f9-1 f9-2 f9-3) (%f1)))
3247                           (apply #'%f9 (%f9 a b 0) a 0 nil))))
3248              (apply #'%f12 0 nil))))
3249   0 0 0)
3250  0)
3251
3252;;; acl 6.2 (trial, x86)
3253;;; Returns incorrect value
3254
3255(deftest misc.192
3256  (call-compiled
3257    '(lambda (a b)
3258       (declare (optimize (speed 3)))
3259       (declare (optimize (safety 1)))
3260       (declare (optimize (debug 1)))
3261       (flet ((%f8 (f8-1 f8-2 f8-3) f8-2))
3262         (catch 'ct6 (%f8 0 b (catch 'ct6 (throw 'ct6 a))))))
3263   1 2)
3264  2)
3265
3266(deftest misc.193
3267  (let* ((form '(if (if (<= a (truncate c (min -43 b)))
3268                        (logbitp 0 0) (logbitp 0 -1))
3269                    0 -36223))
3270         (fn1 `(lambda (a b c)
3271                 (declare (type (integer -3 15350342) a))
3272                 (declare (type (integer -4357 -1555) b))
3273                 (declare (type (integer 5389300879793 6422214587951) c))
3274                 (declare (optimize (speed 3)))
3275                 (declare (optimize (safety 1)))
3276                 (declare (optimize (debug 1)))
3277                 ,form))
3278         (fn2 `(lambda (a b c)
3279                 (declare (notinline logbitp min truncate <=))
3280                 (declare (optimize (safety 3)))
3281                 (declare (optimize (speed 0)))
3282                 (declare (optimize (debug 0)))
3283                 ,form))
3284         (vals '(7792101 -1615 6070931814551))
3285         (result1 (multiple-value-list (apply-compiled fn1 vals)))
3286         (result2 (multiple-value-list (apply-compiled fn2 vals))))
3287    (if (equal result1 result2)
3288        :good
3289      (values result1 result2)))
3290  :good)
3291
3292;;; cmucl (4 Nov 2003 snapshot)
3293;;;  The assertion (EQ (C::TN-ENVIRONMENT C:TN) C::TN-ENV) failed.
3294
3295(deftest misc.194
3296  (call-compiled
3297    '(lambda (a b c)
3298       (declare (notinline funcall))
3299       (declare (optimize (safety 3) (speed 0) (debug 3)))
3300       (flet ((%f14
3301               (f14-1 f14-2
3302                      &optional (f14-3 0) (f14-4 (catch 'ct8 0))
3303                      (f14-5 (unwind-protect c)))
3304               0))
3305         (funcall #'%f14 0 0)))
3306   1 2 3)
3307  0)
3308
3309;;; incorrect value (in cmucl)
3310(deftest misc.195
3311  (call-compiled
3312    '(lambda (a b)
3313       (declare (type (integer -5906488825 254936878485) a))
3314       (declare (type (integer -350857549 -11423) b))
3315       (declare (ignorable a b))
3316       (declare (optimize (speed 3) (safety 1) (debug 1)))
3317       (block b8
3318         (labels ((%f6 (f6-1 &optional (f6-2 0) (f6-3 0) (f6-4 0))
3319                       0))
3320           (multiple-value-call #'%f6 (values 0)))))
3321   100 -100000)
3322  0)
3323
3324;;; NIL is not of type C::ENVIRONMENT
3325(deftest misc.196
3326  (call-compiled
3327    '(lambda (a b)
3328       (declare (type (integer 1 46794484349) a))
3329       (declare (type (integer -627 -2) b))
3330       (declare (ignorable a b))
3331       (declare (optimize (speed 3) (safety 1) (debug 1)))
3332       (if (not (logbitp 0 0))
3333           0
3334         (labels ((%f9 (f9-1 f9-2 f9-3)
3335                       0))
3336           (%f9 (catch 'ct6 a) (catch 'ct4 0) 0))))
3337   1 -200)
3338  0)
3339
3340;;; The assertion (EQ (C::TN-ENVIRONMENT C:TN) C::TN-ENV) failed.
3341(deftest misc.197
3342  (call-compiled
3343    '(lambda (a b)
3344       (declare (notinline logcount))
3345       (declare (optimize (safety 3) (speed 0) (debug 3)))
3346       (labels ((%f5 (&optional (f5-1 b) (f5-2 0) (f5-3 (catch (quote ct2) 0)))
3347                     (prog1 (logcount (block b1 f5-1)))))
3348         (if (%f5 0 0 0) (%f5 a) 0)))
3349   1 2)
3350  1)
3351
3352;;; gcl bug (30-11-2003)
3353;;; Different results
3354;;; These tests appear to be for the same bug.
3355
3356(deftest misc.198
3357  (let* ((form '(min (catch 'ct4 (throw 'ct4 (setq c 29119897960))) c))
3358         (fn1 `(lambda (c)
3359                 (declare (type (integer -70450 39128850560) c))
3360                 (declare (optimize (speed 3) (safety 1)))
3361                 ,form)))
3362    (call-compiled fn1 3512352656))
3363  29119897960)
3364
3365(deftest misc.199
3366  (let* ((fn '(lambda (b)
3367                (declare (type (integer 3352138624 13120037248) b))
3368                (declare (optimize (speed 3) (safety 1) (space 1)))
3369                (progn (catch 'ct1
3370                         (progn (setq b 11159349376)
3371                                (throw 'ct1 0)))
3372                       b))))
3373    (call-compiled fn 4108962100))
3374  11159349376)
3375
3376;;; sbcl
3377;;; "The value 0 is not of type REAL."  (???)
3378
3379(deftest misc.200
3380  (call-compiled '(lambda ()
3381                   (declare (optimize (speed 1) (space 0) (safety 3) (debug 3) (compilation-speed 1)))
3382                   (ceiling
3383                    (ceiling
3384                     (flet ((%f16 () 0)) (%f16))))))
3385  0 0)
3386
3387;;; ecl 5 Dec 2003
3388;;; Wrong number of arguments passed to an anonymous function
3389
3390(deftest misc.201
3391  ;; form to be evaluated
3392  (call-compiled
3393    '(lambda (a b)
3394       (declare (optimize (speed 1) (space 0) (safety 0) (debug 2)
3395                          (compilation-speed 1)))
3396       (flet ((%f10 (f10-1) (return-from %f10 a)))
3397         (multiple-value-call #'%f10 (values b))))
3398   10 -100)
3399  ;; expected return value
3400  10)
3401
3402;;; Does not terminate?
3403(deftest misc.202
3404  (call-compiled
3405    '(lambda (a b c)
3406             (declare (type (integer -363953100 5324773015552) a))
3407             (declare (type (integer -5744998440960 59520311) b))
3408             (declare (type (integer -1864645998 -14608) c))
3409             (declare (ignorable a b c))
3410             (declare (optimize (speed 3) (space 0) (safety 2) (debug 0)
3411                                (compilation-speed 2)))
3412             (flet ((%f1 (f1-1 f1-2)
3413                         (labels ((%f1 (f1-1 f1-2) 0)) (%f1 a f1-2))))
3414                   (%f1 0 c)))
3415   10 20 -20000)
3416  0)
3417
3418;;; #<illegal pointer bfffe90c>
3419(deftest misc.203
3420  (call-compiled
3421    '(lambda (a)
3422       (declare (optimize (speed 3) (space 1) (safety 2) (debug 0)
3423                          (compilation-speed 0)))
3424       (labels ((%f18 (f18-1 f18-2 &optional (f18-3 a) (f18-4 a))
3425                      f18-2))
3426         (multiple-value-call #'%f18 (values a 0))))
3427   100)
3428  0)
3429
3430;;; `env0' undeclared (first use in this function)
3431(deftest misc.204
3432  (call-compiled
3433    '(lambda (a b)
3434          (declare (type (integer -4801373 -50300) a))
3435          (declare (type (integer -62 -28) b))
3436          (declare (ignorable a b))
3437          (declare (optimize (speed 1) (space 3) (safety 3) (debug 2)
3438                       (compilation-speed 2)))
3439          (flet ((%f12 (f12-1) 0))
3440            (labels ((%f3 (f3-1 f3-2 f3-3 &optional (f3-4 b) (f3-5 b)
3441                                (f3-6 (labels ((%f9 nil b))
3442                                        (apply #'%f12 (%f9) nil))))
3443                          (%f12 0)))
3444              (%f3 b 0 a))))
3445   -2224841 -54)
3446  0)
3447
3448;;; #<compiled-function 08405fd8> is not of type INTEGER.
3449(deftest misc.205
3450  (call-compiled
3451    '(lambda (a b)
3452       (declare (optimize (speed 3) (space 1) (safety 1) (debug 0)
3453                          (compilation-speed 3)))
3454       (labels ((%f1 nil b))
3455         (flet ((%f11 (f11-1 f11-2 f11-3) 0))
3456           (apply #'%f11 a (logand (%f1))
3457                  (flet ((%f13 (f13-1 f13-2) b))
3458                    (apply #'%f13 0 0 nil))
3459                  nil))))
3460   100 200)
3461  0)
3462
3463;;; #<bytecompiled-function %F14> is not of type INTEGER.
3464(deftest misc.206
3465  (funcall
3466   #'(lambda (a b)
3467       (declare (notinline mask-field byte))
3468       (declare (optimize (speed 1) (space 1) (safety 2) (debug 1)
3469                          (compilation-speed 2)))
3470       (mask-field (byte 0 0)
3471                   (block b3
3472                     (labels ((%f14 nil (return-from b3 a))) (%f14)))))
3473   1 2)
3474  0)
3475
3476;;; #<compiled-closure 08405fd8> is not of type INTEGER
3477(deftest misc.207
3478  (call-compiled
3479    '(lambda (a)
3480       (declare (optimize (speed 3) (space 2) (safety 0) (debug 1)
3481                          (compilation-speed 0)))
3482       (labels ((%f3 (f3-1) a))
3483         (labels ((%f10 (f10-1 f10-2) a))
3484           (apply #'%f10 0 (logior (%f3 0)) nil))))
3485   -10000)
3486  -10000)
3487
3488;;; `env0' undeclared (first use in this function)
3489(deftest misc.208
3490  (call-compiled
3491    '(lambda (b)
3492       (declare (optimize (speed 3) (space 2) (safety 3) (debug 3)
3493                          (compilation-speed 0)))
3494       (flet ((%f6 (f6-1 f6-2 f6-3) f6-3))
3495         (labels ((%f8 (f8-1) (let* ((v1 (%f6 0 0 0))) 0)))
3496           (apply #'%f6 b b (%f8 b) nil))))
3497   10)
3498  0)
3499
3500;;; Wrong value computed
3501(deftest misc.209
3502  (call-compiled
3503    '(lambda (b)
3504       (declare (optimize (speed 3) (space 2) (safety 3) (debug 3)
3505                          (compilation-speed 3)))
3506       (max (catch 'ct4 (throw 'ct4 (setq b 0))) b))
3507   6353)
3508  0)
3509
3510;;; Wrong value computed
3511(deftest misc.210
3512  (call-compiled
3513    '(lambda (c)
3514       (declare (type (integer 3 65500689) c))
3515       (declare (optimize (speed 2) (space 1) (safety 3) (debug 3)
3516                          (compilation-speed 2)))
3517       (catch 'ct6
3518         (let ((v10 (truncate (integer-length (throw 'ct6 0))))) c)))
3519   100)
3520  0)
3521
3522(deftest misc.210a
3523  (call-compiled
3524    '(lambda (a)
3525       (declare (type (integer -55982525 -1) a))
3526       (declare (optimize (speed 1) (space 2) (safety 1) (debug 2)
3527                          (compilation-speed 1)))
3528       (flet ((%f11 (f11-1 f11-2 f11-3) a))
3529         (let ((v6 0))
3530           (flet ((%f12 (f12-1) v6))
3531             (if (<= 0) (%f11 v6 0 0)
3532               (multiple-value-call #'%f11
3533                                    (values 0 0 (%f11 0 0 (apply #'%f12 0 nil)))))))))
3534   -100)
3535  -100)
3536
3537;;; Segmentation violation
3538(deftest misc.211
3539  (call-compiled
3540    '(lambda (a b c)
3541       (declare (type (integer -1439706333184 1191686946816) a))
3542       (declare (type (integer -28 282229324) b))
3543       (declare (type (integer -108149896 38889958912) c))
3544       (declare (optimize (speed 3) (space 1) (safety 2) (debug 1)
3545                          (compilation-speed 3)))
3546       (let ((v4 (labels ((%f8 (f8-1 &optional (f8-2 0) (f8-3 b)) 0))
3547                   (logior (%f8 0) (%f8 0 0)))))
3548         (truncate
3549          (labels ((%f4 (&optional (f4-1 (ceiling c))) a))
3550            (%f4 v4))
3551          (max 38
3552               (labels ((%f8 (f8-1 &optional (f8-2 (+ c a))) 0))
3553                 (apply #'%f8 a nil))))))
3554   -979021452526 138874383 21099308459)
3555  -25763722434
3556  -34)
3557
3558;;; Wrong value returned
3559(deftest misc.212
3560  (funcall #'(lambda ()
3561               (declare (optimize (speed 2) (space 0) (safety 3) (debug 2)
3562                                  (compilation-speed 0)))
3563               (let* ((v9 (unwind-protect 0))) v9)))
3564  0)
3565
3566;;; segmentation violation
3567(deftest misc.213
3568  (call-compiled
3569    '(lambda (a b)
3570       (declare (type (integer -2 -1) b))
3571       (declare (optimize (speed 1) (space 0) (safety 1) (debug 1)
3572                          (compilation-speed 3)))
3573       (max (labels ((%f15 (f15-1) b)) (if (< 0 (%f15 a)) 0 0))
3574            (labels ((%f11 (f11-1 f11-2 f11-3) b))
3575              (apply #'%f11 0 0 0 nil))))
3576   0 -2)
3577  0)
3578
3579(deftest misc.213a
3580  (call-compiled
3581    '(lambda (a)
3582       (declare (optimize (speed 3) (space 3) (safety 0) (debug 1)
3583                          (compilation-speed 3)))
3584       (max (labels ((%f7 (f7-1) a)) (%f7 0))
3585            (flet ((%f12 (f12-1 f12-2) (if a f12-2 0)))
3586              (apply #'%f12 0 a nil))))
3587   123)
3588  123)
3589
3590;;; Wrong value
3591(deftest misc.214
3592  (call-compiled
3593    '(lambda (a)
3594       (declare (optimize (speed 3) (space 1) (safety 2) (debug 0)
3595                          (compilation-speed 2)))
3596       (flet ((%f8 nil (setq a 0))) (max a (%f8))))
3597   100)
3598  100)
3599
3600;;; Wrong value
3601(deftest misc.215
3602  (call-compiled
3603    '(lambda ()
3604       (declare (optimize (speed 3) (space 3) (safety 3) (debug 0)
3605                          (compilation-speed 2)))
3606       (ldb (byte 26 6) -1252)))
3607  67108844)
3608
3609(deftest misc.215a
3610  (call-compiled '(lambda ()
3611                   (declare (optimize (speed 3) (space 2) (safety 2) (debug 1)
3612                                      (compilation-speed 2)))
3613                   (ldb (byte 30 0) -407020740)))
3614  666721084)
3615
3616;;; Floating point exception
3617(deftest misc.216
3618  (truncate 0 -2549795210)
3619  0 0)
3620
3621(deftest misc.217
3622  (ceiling 0 -2549795210)
3623  0 0)
3624   
3625(deftest misc.218
3626  (floor 0 -2549795210)
3627  0 0)
3628
3629;;; Infinite loop
3630(deftest misc.219
3631  (call-compiled
3632    '(lambda ()
3633       (labels ((%f (a b)
3634                    (labels ((%f (c d) 0))
3635                      (%f 1 2))))
3636         (%f 3 4))))
3637  0)
3638
3639;;; #\^E is not of type NUMBER.
3640(deftest misc.220
3641  (call-compiled
3642    '(lambda (a b)
3643       (declare (type (integer -3218770816 9386121) a))
3644       (declare (type (integer -1 13) b))
3645       (declare (ignorable a b))
3646       (declare (optimize (speed 2) (space 1) (safety 1) (debug 0)
3647                          (compilation-speed 1)))
3648       (labels ((%f18 (f18-1 f18-2 f18-3) a))
3649         (apply #'%f18 0 a
3650                (%f18 b
3651                      (- (labels ((%f11 (f11-1 f11-2 f11-3) a))
3652                           (%f11 0 0 0)))
3653                      a)
3654                nil)))
3655   -468614602 3)
3656  -468614602)
3657
3658;;; Floating point exception
3659(deftest misc.221
3660  (truncate 0 3006819284014656913408)
3661  0 0)
3662
3663(deftest misc.222
3664  (ceiling 0 3006819284014656913408)
3665  0 0)
3666
3667(deftest misc.223
3668  (floor 0 3006819284014656913408)
3669  0 0)
3670
3671;;; clisp (10 Dec 2003 cvs head)
3672;;; *** - SYMBOL-VALUE: 2 is not a SYMBOL
3673
3674(deftest misc.224
3675  (call-compiled
3676    '(lambda (a b c)
3677       (declare (optimize (speed 2) (space 3) (safety 0)
3678                          (debug 1) (compilation-speed 0)))
3679       (flet ((%f14 (f14-1 f14-2
3680                           &optional (f14-3 c)
3681                           (f14-4 (if (not nil)
3682                                      (labels ((%f9 nil 0)) (%f9))
3683                                    a)))
3684                    (flet ((%f17 (f17-1 f17-2) f14-1)) (%f17 0 f14-3))))
3685         (%f14 (%f14 0 a) 0 b a)))
3686   248000 5409415 227923)
3687  0)
3688
3689;;; Wrong values
3690(deftest misc.225
3691  (call-compiled '(lambda () (values (values 'a 'b))))
3692  a)
3693
3694;;; clisp (12 Dec 2003, 2:30AM CST cvs head)
3695;;; SYMBOL-VALUE: 1 is not a SYMBOL
3696(deftest misc.226
3697  (call-compiled
3698            '(lambda (a)
3699               (flet ((%f (&optional (x (setq a 1))
3700                                     (y (setq a 2)))
3701                           0))
3702                 (%f 0 0)))
3703   0)
3704  0)
3705
3706(deftest misc.227
3707  (call-compiled
3708    '(lambda (b)
3709       (flet ((%f (&optional x (y (setq b 1))) x))
3710         (%f 0)))
3711   0)
3712  0)
3713
3714;;; acl (x86 linux 6.2, patched 12 Dec 2003)
3715;;; No from-creg to move to...
3716(deftest misc.228
3717  (call-compiled
3718    '(lambda (a b c)
3719       (declare (optimize (speed 1) (space 2) (safety 0) (debug 2)
3720                          (compilation-speed 2)))
3721       (catch 'ct2
3722         (case 0
3723           ((-56087 86404 -94716)
3724            (signum (labels ((%f7 (f7-1 f7-2 f7-3) f7-2)) 0)))
3725           ((12986)
3726            (let ((v3 (catch 'ct2 (throw 'ct2 0))))
3727              (labels ((%f14 (f14-1 f14-2) 0)) (%f14 b c))))
3728           (t 0))))
3729   -3847091255 -13482 -7577750)
3730  0)
3731
3732(deftest misc.228a
3733  (call-compiled
3734    '(lambda (a b c)
3735       (declare (type (integer -249606 2) a))
3736       (declare (type (integer 125 511) b))
3737       (declare (type (integer -2 1) c))
3738       (declare (ignorable a b c))
3739       (declare (optimize (speed 2) (space 2) (safety 1) (debug 3)
3740                          (compilation-speed 3)))
3741       (catch 'ct4
3742         (rational (case b
3743                     ((350 244 1059) (prog2 (numerator c) 0))
3744                     ((1705 493)
3745                      (unwind-protect
3746                          (throw 'ct4 c)
3747                        (loop for lv2 below 2 count (logbitp 0 c))))
3748                     (t a)))))
3749   0 200 -1)
3750  0)
3751
3752(deftest misc.228b
3753  (call-compiled
3754    '(lambda (c)
3755       (declare (type (integer -1 412413109) c))
3756       (declare (optimize (speed 1) (space 2) (safety 2) (debug 1)
3757                          (compilation-speed 3)))
3758       (catch 'ct2
3759         (logior (* (progn (if c 0 (throw 'ct2 0)) 0)
3760                    (catch 'ct2 (throw 'ct2 0)))
3761                 (complex c 0)
3762                 )))
3763   62151)
3764  62151)
3765
3766;;; Error: `T' is not of the expected type `INTEGER'
3767(deftest misc.229
3768  (call-compiled
3769    '(lambda nil
3770       (declare (optimize (speed 2) (space 1) (safety 1) (debug 2)
3771                          (compilation-speed 3)))
3772       (labels ((%f15 (f15-1) 0))
3773         (let ((v4 0))
3774           (catch 'ct5
3775             (%f15
3776              (gcd (catch 'ct5 (let* ((v5 (throw 'ct5 0))) 0)) v4)))))))
3777  0)
3778
3779;;; ecl
3780;;; Wrong result (order of evaluation problem)
3781
3782(deftest misc.230
3783  (call-compiled
3784    '(lambda (a)
3785       (declare (type (integer -6527559920 -247050) a))
3786       (declare (optimize (speed 1) (space 3) (safety 0) (debug 0)
3787                          (compilation-speed 3)))
3788       (labels ((%f10 (&optional (f10-1 0)
3789                                 (f10-2 (setq a -4456327156)))
3790                      0))
3791         (logxor a (%f10 a))))
3792   -3444248334)
3793  -3444248334)
3794
3795;;; cmucl
3796;;; Wrong value
3797
3798(deftest misc.231
3799  (call-compiled
3800    '(lambda (b)
3801       (declare (type (integer -5209401 3339878) b))
3802       (declare (optimize (speed 1) (space 2) (safety 0) (debug 2)
3803                          (compilation-speed 3)))
3804       (flet ((%f3 (f3-1 f3-2)
3805                   f3-1))
3806         (apply #'%f3 0 (logxor (catch 'ct2 b)
3807                                (catch 'ct5 (throw 'ct5 0))) nil)))
3808   -2179757)
3809  0)
3810
3811;;; Invalid number of arguments: 1
3812(deftest misc.232
3813  (call-compiled
3814    '(lambda (a b)
3815       (declare (type (integer 197447754 495807327) a))
3816       (declare (type (integer -125379462 1863191461) b))
3817       (declare
3818        (optimize (speed 2) (space 2) (safety 2) (debug 1) (compilation-speed 2)))
3819       (flet ((%f8
3820               (&optional
3821                (f8-1
3822                 (max (catch (quote ct4) 0)
3823                      (catch (quote ct6) (throw (quote ct6) 0)))))
3824               b))
3825         (flet ((%f16 (f16-1 f16-2 f16-3)
3826                      0))
3827           (apply #'%f16 a 0 (%f8) nil))))
3828   348270365 28780966)
3829  0)
3830
3831;;;  The assertion (EQ C::CHECK :SIMPLE) failed.
3832(deftest misc.233
3833  (call-compiled
3834    '(lambda (a b)
3835       (declare (type (integer -2333758327203 -321096206070) a))
3836       (declare (type (integer -2842843403569 258395684270) b))
3837       (declare (optimize (speed 2) (space 0) (safety 1) (debug 2)
3838                          (compilation-speed 2)))
3839       (flet ((%f18 (f18-1)
3840                    (the integer
3841                      (labels ((%f9 (f9-1 f9-2)
3842                                    (* (- -1 -210032251)
3843                                       (1+
3844                                        (floor
3845                                         (labels ((%f11 (f11-1 f11-2)
3846                                                        -96773966))
3847                                           (%f11 b -3440758)))))))
3848                        (flet ((%f2
3849                                (f2-1 f2-2 f2-3
3850                                      &optional (f2-4 (%f9 -429204 -63))
3851                                      (f2-5 (- (%f9 b 17) a))
3852                                      (f2-6
3853                                       (multiple-value-call #'%f9
3854                                                            (values
3855                                                             (let () 7127585)
3856                                                             (flet ((%f1 (f1-1 f1-2 f1-3)
3857                                                                         (catch 'ct6 -569234)))
3858                                                               (macrolet () 13))))))
3859                                1027))
3860                          (if nil
3861                              (%f2 b a f18-1 69968 4 -217193265)
3862                            (catch 'ct1 129548688)))))))
3863         (max (apply #'%f18 (list 0)))))
3864   -2067244683733 143879071206)
3865  129548688)
3866
3867;;;  NIL is not of type C::TAIL-SET
3868(deftest misc.234
3869  (call-compiled
3870    '(lambda (b) ;; (a b)
3871       (declare (type (integer -13583709 -3876310) b))
3872       (declare (optimize (speed 1) (space 2) (safety 3) (debug 3)
3873                          (compilation-speed 1)))
3874       (flet ((%f14 (f14-1 f14-2 f14-3)
3875                    (flet ((%f2
3876                            (f2-1
3877                             &optional (f2-2 0) (f2-3 0)
3878                             (f2-4
3879                              (block b8 (if (ldb-test (byte 0 0) 0) (* 0 f14-2) 0))))
3880                            0))
3881                      (%f2 b f14-2))))
3882         (%f14 0 0 (%f14 0 0 0))))
3883   ;; -155589
3884   -5694124)
3885  0)
3886
3887;;; sbcl 0.8.6.34
3888;;; Wrong value
3889(deftest misc.235
3890  (call-compiled
3891    '(lambda (b)
3892         (declare (notinline not))
3893         (declare (optimize (speed 1) (space 0) (safety 0)
3894                            (debug 2) (compilation-speed 3)))
3895         (multiple-value-prog1 0 (catch 'ct2 (if (not nil) (throw 'ct2 b) 0))))
3896   :wrong)
3897  0)
3898
3899(deftest misc.236
3900  (call-compiled
3901    '(lambda (a b)
3902       (declare (optimize (speed 1) (space 0) (safety 3)
3903                          (debug 0) (compilation-speed 1)))
3904       (flet ((%f8 (f8-1) 0))
3905         (labels ((%f18 (f18-1 f18-2 &optional (f18-3 0))
3906                        (%f8 (catch 'ct7 (throw 'ct7 f18-1)))))
3907           (multiple-value-prog1 (catch 'ct7 a)
3908                                 0
3909                                 (multiple-value-call #'%f18 (values 0 (%f8 b)))))))
3910   :good :bad)
3911  :good)
3912
3913(deftest misc.237
3914  (call-compiled
3915    '(lambda ()
3916       (declare (optimize (speed 2) (space 2) (safety 3)
3917                          (debug 3) (compilation-speed 1)))
3918       (multiple-value-prog1 0
3919                             (catch 'ct7 (logandc1 (block b7 0)
3920                                                   (throw 'ct7 -908543))))))
3921  0)
3922
3923;;; cmucl (11 2003 snapshot)
3924
3925;;;  NIL is not of type C::CONTINUATION
3926(deftest misc.238
3927  (call-compiled
3928    '(lambda (a)
3929       (declare (type (integer -77145797 -1) a))
3930       (declare (optimize (speed 1) (space 1) (safety 3) (debug 3) (compilation-speed 1)))
3931       (flet ((%f5 (f5-1) a))
3932         (%f5 (unwind-protect 0 (logand (- (catch 'ct5 0)))))))
3933   -100)
3934  -100)
3935
3936(deftest misc.238a
3937  (call-compiled
3938    '(lambda ()
3939       (declare (optimize (speed 3) (space 2) (safety 3)
3940                          (debug 0) (compilation-speed 0)))
3941       (min (load-time-value 0))
3942       0))
3943  0)
3944
3945;;; (in C::MAYBE-LET-CONVERT)
3946(deftest misc.239
3947  (call-compiled
3948    '(lambda (a)
3949       (declare (type (integer -2315418108387 111852261677) a))
3950       (declare (optimize (speed 2) (space 0) (safety 2) (debug 2) (compilation-speed 1)))
3951       (labels ((%f4 ()
3952                     (labels ((%f16 (f16-1 f16-2) 0))
3953                       (flet ((%f9 () 0))
3954                         (%f16 0 (%f16 (%f9) a))))))
3955         (flet ((%f10 (f10-1 f10-2 f10-3)
3956                      (flet ((%f15 (f15-1 &optional (f15-2 (%f4)) (f15-3 0)) f15-3))
3957                        0)))
3958           0)))
3959   100)
3960  0)
3961
3962(deftest misc.239a
3963  (call-compiled '(lambda () (declare (optimize speed safety))
3964                   (LET ((x (PROG1 0 (ROUND 18916)))) (catch 'ct4 0))))
3965  0)
3966
3967(deftest misc.240
3968  (call-compiled
3969    '(lambda (b)
3970       (declare (type (integer 4 7) b))
3971       (declare (optimize (speed 2) (space 3) (safety 3) (debug 1) (compilation-speed 3)))
3972       (unwind-protect 0
3973         (common-lisp:handler-case
3974          (max
3975           (let ((*s1* b))
3976             (declare (special *s1*))
3977             (+ 0 *s1*))))))
3978   5)
3979  0)
3980
3981;;; clisp (12 Dec 2003 cvs head)
3982;;; *** - Compiler bug!! Occurred in ASSEMBLE-LAP at ILLEGAL INSTRUCTION.
3983(deftest misc.241
3984  (call-compiled
3985    '(lambda ()
3986       (declare (optimize (speed 3) (space 3) (safety 0) (debug 0) (compilation-speed 2)))
3987       (labels ((%f17 (f17-1 f17-2) (multiple-value-prog1 0 0 0 (return-from %f17 0)))) (%f17 0 0))))
3988  0)
3989
3990(deftest misc.242
3991  (call-compiled '(lambda (a) (block b6 (multiple-value-prog1 a (return-from b6 0)))) :wrong)
3992  0)
3993
3994(deftest misc.243
3995  (call-compiled '(lambda () (block b3 (return-from b3 (multiple-value-prog1 0 (return-from b3 0))))))
3996  0)
3997
3998;;; lispworks 4.3 (personal edition)
3999(deftest misc.244
4000  (call-compiled
4001    '(lambda (b)
4002       (declare (optimize (speed 3) (space 1) (safety 2) (debug 3) (compilation-speed 2)))
4003       (catch 'ct8 (labels ((%f4 (&optional (f4-1 0) (f4-2 (throw 'ct8 0))) f4-1)) (%f4 b))))
4004   :wrong)
4005  0)
4006
4007(deftest misc.245
4008  (call-compiled
4009    '(lambda (a)
4010       (declare (optimize (speed 2) (space 0) (safety 0) (debug 2) (compilation-speed 1)))
4011       (catch 'ct2 (labels ((%f11 (&optional (f11-1 (throw 'ct2 0))) a)) (apply #'%f11 0 nil))))
4012   20)
4013  20)
4014
4015;;; ecl (cvs head, 18 Dec 2003)
4016(deftest misc.246
4017  (let ((x (unwind-protect 0))) x)
4018  0)
4019
4020(deftest misc.247
4021  (let ((x (dotimes (i 0 10)))) x)
4022  10)
4023
4024;;; acl 6.2 trial
4025;;; "Error: Attempt to access the plist field of 0 which is not a symbol."
4026
4027(deftest misc.248
4028  (call-compiled '(lambda () (dotimes (i 0 0) 0)))
4029  0)
4030
4031;;; sbcl
4032;;;  #<SB-C::LAMBDA-VAR :%SOURCE-NAME IV4 :TYPE # {A67BE29}>
4033;;;  not found in
4034;;;  #<SB-C::PHYSENV :LAMBDA # :NLX-INFO # {A680EF1}>
4035
4036(deftest misc.249
4037  (call-compiled
4038    '(lambda (a b)
4039         (declare (notinline <=))
4040         (declare (optimize (speed 2) (space 3) (safety 0)
4041                            (debug 1) (compilation-speed 3)))
4042         (if (if (<= 0) nil nil)
4043             (labels ((%f9 (f9-1 f9-2 f9-3)
4044                           (ignore-errors 0)))
4045               (dotimes (iv4 5 a) (%f9 0 0 b)))
4046           0))
4047   1 2)
4048  0)
4049
4050;;; cmucl 11/2003
4051(deftest misc.250
4052  (call-compiled
4053    '(lambda (a)
4054       (declare (type (integer -12 14) a))
4055       (declare        (optimize (speed 1) (space 2) (safety 1) (debug 1) (compilation-speed 3)))
4056       (let ((v6 0))
4057         (flet ((%f11
4058                 (f11-1
4059                  &optional
4060                  (f11-2
4061                   (case (catch 'ct7 0)
4062                     (t
4063                      (let* ((v2 (ignore-errors a)))
4064                        v6)))))
4065                 0))
4066           (%f11 0 0))))
4067   5)
4068  0)
4069
4070;;; NIL is not of type C::CONTINUATION
4071;;; (C::MAYBE-CONVERT-TO-ASSIGNMENT
4072;;;  #<LAMBDA #x48A3031D
4073;;;     NAME= (FLET %F3
4074;;;             NIL)
4075;;;     TYPE= #<KERNEL::BUILT-IN-CLASS FUNCTION (read-only) {2803AE6D}>
4076;;;     WHERE-FROM= :DEFINED
4077;;;     VARS= (F3-1 F3-2 F3-3)>)
4078
4079(deftest misc.251
4080  (call-compiled
4081    '(lambda (a b)
4082       (declare (type (integer -186585769 -7483) a))
4083       (declare (type (integer -550 524) b))
4084       (declare
4085        (optimize (speed 2) (space 1) (safety 1) (debug 2) (compilation-speed 3)))
4086       (flet ((%f3 (f3-1 f3-2 f3-3)
4087                   0))
4088         (%f3 0 0
4089              (flet ((%f13 (f13-1 f13-2)
4090                           0))
4091                (if (/= b a)
4092                    b
4093                  (deposit-field (%f3 0 b 0) (byte 0 0) (%f3 0 0 (%f13 0 0))))))))
4094   -10000 0)
4095  0)
4096
4097;;; 8061593093 is not of type (INTEGER -2147483648 4294967295)
4098(deftest misc.252
4099  (call-compiled
4100    '(lambda (b)
4101       (declare (type (integer -43443 9126488423) b))
4102       (declare (optimize (speed 3) (space 1) (safety 1) (debug 3) (compilation-speed 0)))
4103       (logand (setq b 8061593093) (min b 0)))
4104   0)
4105  0)
4106
4107(deftest misc.252a
4108  (call-compiled
4109    '(lambda (a b)
4110       (declare (type (integer -30189 -6047) a))
4111       (declare (type (integer -10 16391481067) b))
4112       (declare (optimize (speed 3) (space 1) (safety 2) (debug 3)
4113                          (compilation-speed 0)))
4114       (if
4115           (<= 0
4116               (let ((*s1* (setq b 12204309028)))
4117                 (declare (special *s1*))
4118                 (truncate b)))
4119           a
4120         0))
4121   -12618 16130777867)
4122  -12618)
4123
4124;;; #<C::ENTRY #x48DCC585> fell through ETYPECASE expression.
4125;;; Wanted one of (C::BASIC-COMBINATION C::EXIT C::CRETURN C::CSET C::CIF
4126;;;                (OR C::REF C:BIND)).
4127;;;    [Condition of type CONDITIONS::CASE-FAILURE]
4128;;;[...]
4129;;; (C::SUBSTITUTE-CONTINUATION #<Continuation c1> #<Continuation c2>)
4130
4131(deftest misc.253
4132  (call-compiled
4133    '(lambda ()
4134       (declare (optimize (speed 2) (space 2) (safety 3) (debug 3) (compilation-speed 2)))
4135       (flet ((%f17 (f17-1) 0))
4136         (%f17 (logandc1 0 (catch 'ct2 0))))))
4137  0)
4138
4139(deftest misc.253a
4140  (call-compiled
4141    '(lambda (c)
4142       (declare (optimize (speed 1) (space 1) (safety 3) (debug 2)
4143                          (compilation-speed 1)))
4144       (labels ((%f1 (f1-1 f1-2)
4145                     (isqrt (abs (complex f1-1 0)))))
4146         (progn
4147           (/
4148            (multiple-value-call #'%f1
4149                                 (values (1- (restart-bind nil 1416182210))
4150                                         123337746))
4151            1)
4152           (tagbody)
4153           c)))
4154   -34661)
4155  -34661)
4156
4157;;; Wrong return value
4158(deftest misc.254
4159  (call-compiled
4160    '(lambda (a)
4161       (declare (type (integer -5241 -1159) a))
4162       (declare (optimize (speed 3) (space 2) (safety 0) (debug 3) (compilation-speed 1)))
4163       (gcd a
4164            (let ((*misc.254* (setq a -4929)))  ;; special variable
4165              (declare (special *misc.254*))
4166              0)))
4167   -3000)
4168  3000)
4169
4170(deftest misc.255
4171  (call-compiled
4172    '(lambda (b)
4173       (declare (type (integer -3474321 15089206) b))
4174       (declare (optimize (speed 3) (space 3) (safety 3) (debug 3) (compilation-speed 0)))
4175       (- b
4176          (block b3
4177            (setq b 9367613)
4178            0)))
4179   10)
4180  10)
4181
4182;;; clisp (20 Dec 2003)
4183;;; Bug involving tagbody and go in lexical function
4184
4185(deftest misc.256
4186  (call-compiled
4187    '(lambda ()
4188       (declare (optimize (speed 3) (space 0) (safety 3) (debug 0) (compilation-speed 0)))
4189       (tagbody (flet ((%f6 () (go 18))) (%f6))
4190                18)))
4191  nil)
4192
4193;;; clisp (22 Dec 2003)
4194;;; *** - Compiler bug!! Occurred in ACCESS-IN-STACK at STACKZ-END.
4195
4196(deftest misc.257
4197  (call-compiled
4198    '(lambda ()
4199       (declare (optimize (speed 1) (space 2) (safety 3) (debug 3) (compilation-speed 1)))
4200       (declare (special b))
4201       (tagbody (flet ((%f1 (f1-1)
4202                            (flet ((%f9 (&optional (f9-1 b) (f9-2 (go tag2)) (f9-3 0)) 0))
4203                              (%f9 0 0 0))))
4204                  (%f1 0))
4205                tag2)))
4206  nil)
4207
4208;;; clisp (26 Dec 2003)
4209;;; PROGV binding is not having the correct effect in compiled code
4210
4211(deftest misc.258
4212  (call-compiled
4213    '(lambda ()
4214       (declare (optimize (speed 1) (space 2) (safety 1) (debug 1)
4215                          (compilation-speed 0)))
4216       (let ((*s4* :right))
4217         (declare (special *s4*))
4218         (progv '(*s4*) (list :wrong1) (setq *s4* :wrong2))
4219         *s4*)))
4220  :right)
4221
4222;;; sbcl 0.8.7.5
4223;;; The value 215067723 is not of type (INTEGER 177547470 226026978).
4224
4225(deftest misc.259
4226  (call-compiled
4227    '(lambda (a)
4228         (declare (type (integer 177547470 226026978) a))
4229         (declare (optimize (speed 3) (space 0) (safety 0) (debug 0)
4230                            (compilation-speed 1)))
4231         (logand a (* a 438810)))
4232   215067723)
4233  13739018)
4234
4235(deftest misc.260
4236  (call-compiled
4237    '(lambda (a)
4238         (declare (type (integer 43369342 45325981) a))
4239         (declare (optimize (speed 2) (space 0) (safety 2)
4240                            (debug 0) (compilation-speed 3)))
4241         (logand 0 (* 5459177 a)))
4242   44219966)
4243  0)
4244
4245(deftest misc.261
4246  (call-compiled
4247    '(lambda (b)
4248         (declare (type (integer 379442022 806547932) b))
4249         (declare (optimize (speed 2) (space 0) (safety 0)
4250                            (debug 3) (compilation-speed 2)))
4251         (logand b (* 227 b)))
4252   551173513)
4253  545263625)
4254
4255(deftest misc.262
4256  (call-compiled
4257    '(lambda (a)
4258       (declare (type (integer 515644 54674673) a))
4259       (declare (optimize (speed 3) (space 2) (safety 3)
4260                          (debug 0) (compilation-speed 1)))
4261       (mask-field (byte 0 0) (* 613783109 a)))
4262   28831407)
4263  0)
4264
4265(deftest misc.263
4266  (call-compiled
4267    '(lambda (a)
4268       (declare (type (integer 862944 60462138) a))
4269       (declare (optimize (speed 3) (space 3) (safety 0)
4270                          (debug 1) (compilation-speed 1)))
4271       (logandc2 0 (* a 18094747)))
4272   36157847)
4273  0)
4274
4275(deftest misc.264
4276  (call-compiled
4277    '(lambda (a)
4278       (declare (type (integer 896520522 1249309734) a))
4279       (declare (optimize (speed 3) (space 3) (safety 1)
4280                          (debug 1) (compilation-speed 2)))
4281       (lognand 0 (* a 1381212086)))
4282   1202966173)
4283  -1)
4284
4285;;; sbcl 0.8.7.6
4286;;; Lisp error during constant folding:
4287;;; The function SB-VM::%LEA-MOD32 is undefined.
4288
4289(deftest misc.265
4290  (call-compiled
4291    '(lambda (a)
4292       (declare (type (integer -19621 11895) a))
4293       (declare (optimize (speed 3) (space 2) (safety 3)
4294                          (debug 3) (compilation-speed 3)))
4295       (* 0 a 103754))
4296   1)
4297  0)
4298
4299;;; ecl (10 jan 2004)
4300;;; A bug was found in the compiler.  Contact worm@arrakis.es.
4301;;; Broken at C::C2GO.
4302
4303(deftest misc.266
4304  (call-compiled
4305    '(lambda ()
4306       (tagbody
4307        (flet ((%f (x) :bad)) (multiple-value-call #'%f (go done)))
4308        done)))
4309  nil)
4310
4311(deftest misc.266a
4312  (call-compiled
4313    '(lambda (b)
4314       (declare (type (integer -14356828946432 -24266) b))
4315       (declare (optimize (speed 3) (space 1) (safety 1) (debug 3)
4316                          (compilation-speed 2)))
4317       (progn (tagbody (unwind-protect 0 (go 3)) 3) b))
4318   -30000)
4319  -30000)
4320
4321;;; Broken at C::C2VAR.
4322(deftest misc.266b
4323  (call-compiled
4324    '(lambda (b)
4325       (declare (optimize (speed 2) (space 3) (safety 2) (debug 0)
4326                          (compilation-speed 0)))
4327       (unwind-protect 0 (catch 'ct7 (prog1 b 0))))
4328   1)
4329  0)
4330
4331;;; Incorrect return value
4332
4333(deftest misc.267
4334  (locally (declare (special *s5*))
4335           (let ((v8 (progv '(*s5*) (list 0) (if t *s5* *s5*))))
4336             v8))
4337  0)
4338
4339(deftest misc.267a
4340  (let ((x (progv nil nil 0))) x)
4341  0)
4342
4343(deftest misc.268
4344  (call-compiled
4345    '(lambda ()
4346       (declare (optimize (speed 1) (space 1) (safety 3) (debug 2)
4347                          (compilation-speed 2)))
4348       (catch 'ct7
4349         (rationalize (let ((v9 (1+ (throw 'ct7 0)))) 48955)))))
4350  0)
4351
4352(deftest misc.269
4353  (call-compiled
4354    '(lambda (a)
4355       (declare (type (integer -1 20) a))
4356       (declare (optimize (speed 3) (space 1) (safety 2) (debug 2)
4357                          (compilation-speed 3)))
4358       (if (if a (logbitp 34 a) nil) 0 -230678))
4359   14)
4360  -230678)
4361
4362(deftest misc.270
4363  (let ((*s3* (dotimes (iv4 0 10) (if t iv4 8))))
4364    (declare (special *s3*))
4365    *s3*)
4366  10)
4367
4368(deftest misc.271
4369  (let ((v2 (unwind-protect 0))) v2)
4370  0)
4371
4372;;; wrong number of values passed to anonymous function
4373
4374(deftest misc.272
4375  (call-compiled
4376    '(lambda ()
4377       (declare (optimize (speed 3) (space 1) (safety 0) (debug 3)
4378                          (compilation-speed 2)))
4379       (flet ((%f17 (f17-1) 1))
4380         (multiple-value-call #'%f17 (values (floor 0))))))
4381  1)
4382
4383;;; clisp (10 jan 2004)
4384;;; Improper handling of a jump to an exit point from unwind-protect
4385;;; (see CLHS section 5.2)
4386
4387(deftest misc.273
4388  (call-compiled
4389    '(lambda (d)
4390       (declare (optimize (speed 3) (space 0) (safety 3)
4391                          (debug 2) (compilation-speed 0)))
4392       (gcd 39
4393            (catch 'ct2
4394              (block b7
4395                (throw 'ct2
4396                       (unwind-protect
4397                           (return-from b7 17)
4398                         (return-from b7
4399                           (progv '(*s6*) (list 31) d))
4400                         ))))))
4401   65)
4402  13)
4403
4404;;; sbcl 0.8.7.13
4405;;; Lexical unwinding of UVL stack is not implemented.
4406
4407(deftest misc.274
4408  (call-compiled
4409    '(lambda ()
4410       (declare
4411        (optimize (speed 2)
4412                  (space 2)
4413                  (safety 1)
4414                  (debug 2)
4415                  (compilation-speed 0)))
4416       (multiple-value-prog1
4417        (ignore-errors 0)
4418        0
4419        (catch 'ct7 0)
4420        (catch 'ct1
4421          (catch 'ct4
4422            (complex (throw 'ct4 (dotimes (iv4 0 0) (throw 'ct1 0))) 0))))))
4423  0)
4424
4425(deftest misc.274a
4426  (call-compiled
4427    '(lambda ()
4428         (declare (optimize (speed 3) (space 1) (safety 3)
4429                            (debug 1) (compilation-speed 3)))
4430         (dotimes (iv4 3 0)
4431           (apply (constantly 0)
4432                  0
4433                  (catch 'ct2 (throw 'ct2 (rem 0 (max 46 0))))
4434                  nil))))
4435  0)
4436
4437
4438;;;  failed AVER: "SUCC"
4439
4440(deftest misc.275
4441  (call-compiled
4442    '(lambda (b)
4443       (declare (notinline funcall min coerce))
4444       (declare
4445        (optimize (speed 1)
4446                  (space 2)
4447                  (safety 2)
4448                  (debug 1)
4449                  (compilation-speed 1)))
4450       (flet ((%f12 (f12-1)
4451                    (coerce
4452                     (min
4453                      (if f12-1 (multiple-value-prog1
4454                                 b (return-from %f12 0))
4455                        0))
4456                     'integer)))
4457         (funcall #'%f12 0)))
4458   -33)
4459  0)
4460
4461(deftest misc.275a
4462  (call-compiled
4463    '(lambda ()
4464       (declare (optimize (speed 2) (space 0) (safety 2)
4465                          (debug 1) (compilation-speed 1)))
4466       (block b4
4467         (coerce
4468          (logcount
4469           (if t 0 (multiple-value-prog1 (identity 0) (return-from b4 0))))
4470          'integer))))
4471  0)
4472
4473;;; clisp (28 Jan 2004)
4474;;; Different return values
4475
4476(deftest misc.276
4477  (call-compiled
4478    `(lambda (b)
4479       (declare (optimize (speed 2) (space 0) (safety 0)
4480                          (debug 3) (compilation-speed 3)))
4481       (labels
4482           ((%f2 ()
4483                 (let ((v10 (progn (dotimes (iv2 0 0) iv2)
4484                                   b)))
4485                   (unwind-protect b (labels ((%f6 ())) (%f6))
4486                                   ))))
4487         (%f2)))
4488   :good)
4489  :good)
4490
4491;;; Lispworks 4.3 linux (personal edition)
4492
4493;;; Error: In - of (1 NIL) arguments should be of type NUMBER
4494(deftest misc.277
4495  (call-compiled
4496    '(lambda ()
4497       (declare (optimize (speed 3) (space 1) (safety 0)
4498                          (debug 3) (compilation-speed 0)))
4499       (labels ((%f15 (&optional (f15-3
4500                                  (tagbody (labels ((%f6 () (go tag1))) (%f6)) tag1)))
4501                      0))
4502         (%f15))))
4503  0)
4504
4505;;; incorrect return value
4506(deftest misc.278
4507  (call-compiled
4508    '(lambda ()
4509       (declare (optimize (speed 1) (space 0) (safety 2) (debug 3)
4510                          (compilation-speed 0)))
4511       (catch 'ct5 (flet ((%f2 (&optional (f2-4 (throw 'ct5 0))) 1))
4512                     (%f2 (%f2 0))))))
4513  1)
4514
4515;;; incorrect return value
4516(deftest misc.279
4517  (call-compiled
4518    '(lambda ()
4519       (declare (optimize (speed 1) (space 1) (safety 3) (debug 0) (compilation-speed 3)))
4520       (flet ((%f10 ()
4521                    (if (< 0 (dotimes (iv2 1 -501162)))
4522                        0 -14)))
4523         (%f10))))
4524  -14)
4525
4526;;; incorrect return value (may be same bug as misc.278)
4527(deftest misc.280
4528  (call-compiled
4529    '(lambda (a)
4530       (declare (optimize (speed 1) (space 3) (safety 1) (debug 3) (compilation-speed 2)))
4531       (catch 'ct6
4532         (labels ((%f12 ()
4533                        (labels ((%f14 (&optional (f14-3 (return-from %f12 5))) 4))
4534                          (funcall (constantly 3)
4535                                   (let ((v2 (%f14))) 2)
4536                                   (throw 'ct6 1)
4537                                   ))))
4538           (%f12)
4539           a)))
4540   :good)
4541  :good)
4542
4543;;; incorrect return value
4544(deftest misc.281
4545  (call-compiled
4546    '(lambda (c)
4547       (declare (optimize (speed 3) (space 3) (safety 3) (debug 2) (compilation-speed 3)))
4548       (ldb (byte 24 0) c))
4549   -227016367797)
4550  12919115)
4551
4552;;; gcl: Error in COMPILER::CMP-ANON [or a callee]: The function COMPILER::LDB1 is undefined.
4553(deftest misc.282
4554  (call-compiled '(lambda () (declare (optimize safety))
4555                           (ldb (byte 13 13) 43710)))
4556  5)
4557
4558;;; gcl (2/28/2004)
4559;;; Error in COMPILER::CMP-ANON [or a callee]: T is not of type INTEGER.
4560(deftest misc.283
4561  (call-compiled
4562    '(lambda (b d)
4563       (declare (optimize (speed 2) (space 2) (safety 1) (compilation-speed 3)))
4564       (expt (logxor (progn
4565                       (tagbody
4566                        (multiple-value-prog1 0 (go 7))
4567                        7)
4568                       0)
4569                     0 b
4570                     (rational d))
4571             0))
4572   2 4)
4573  1)
4574
4575;;; Error in COMPILER::CMP-ANON [or a callee]: 3 is not of type FUNCTION.
4576;;; (possibly the same bug as misc.283)
4577(deftest misc.284
4578  (call-compiled
4579    '(lambda (c)
4580       (declare (optimize (speed 1) (space 1) (safety 2) (debug 3)
4581                          (compilation-speed 2)))
4582       (progn
4583         (tagbody
4584          (multiple-value-prog1 0 (go tag2))
4585          0
4586          tag2)
4587         (funcall (constantly 0)
4588                  (apply (constantly 0) (signum c) nil))))
4589   3)
4590  0)
4591
4592;;; ecl 29 Feb 2004
4593;;; Incorrect constant propagation
4594(deftest misc.285
4595  (call-compiled
4596    '(lambda (a)
4597       (declare (optimize (speed 2) (space 0) (safety 0) (debug 2)
4598                          (compilation-speed 3)))
4599       (block b7 (let* ((v1 (* (return-from b7 0) a))) -4359852)))
4600   1)
4601  0)
4602
4603(deftest misc.286
4604  (let ((v4 (dotimes (iv4 0 18494910) (progn 0)))) v4)
4605  18494910)
4606
4607;;; gcl (found by Camm)
4608;;; Error in COMPILER::CMP-ANON [or a callee]: The function NIL is undefined.
4609(deftest misc.287
4610  (call-compiled
4611    '(lambda (e)
4612       (declare (optimize (speed 1) (space 3) (safety 3) (debug 3)
4613                          (compilation-speed 1)))
4614       (flet ((%f11 (f11-2) 0))
4615         (%f11 (unwind-protect
4616                   e
4617                 (tagbody
4618                  (let* ((v4 (unwind-protect (go 0)))) 0)
4619                  0)
4620                 (logand (handler-bind () 0))))))
4621   10)
4622  0)
4623
4624#|
4625ecl (6 Mar 2004)
4626(LAMBDA (C::LOC1 C::LOC2) (IF (AND (CONSP C::LOC1)
4627                                   (EQ (CAR C::LOC1) 'FIXNUM)
4628                                   (CONSP (CADR C::LOC1))
4629                                   (EQ (CAADR C::LOC1) 'C::FIXNUM-VALUE)
4630                                   (EQ (CADR (CADR C::LOC1)) 2))
4631                              (PROGN (C::WT1 "(1<<(")
4632                                     (C::WT1 C::LOC2) (C::WT1 "))"))
4633                              (PROGN (C::WT1 "fixnum_expt(")
4634                                     (C::WT1 C::LOC1)
4635                                     (C::WT1 #\,)
4636                                     (C::WT1 C::LOC2)
4637                                     (C::WT1 #\)))))
4638is not of type STRING.
4639Broken at C::WT-C-INLINE-LOC.
4640|#
4641
4642(deftest misc.288
4643  (call-compiled
4644    '(lambda ()
4645       (declare (optimize (speed 1) (space 2) (safety 3) (debug 3)
4646                          (compilation-speed 2)))
4647       (let ((v2 (integer-length (expt 0 0))))
4648         (dotimes (iv4 0 0) (logand v2)))))
4649  0)
4650
4651;;; cmucl
4652;;; wrong return value
4653
4654(deftest misc.289
4655  (call-compiled
4656    '(lambda (b)
4657       (declare (optimize (speed 3) (space 1) (safety 1) (debug 2)
4658                          (compilation-speed 2)))
4659       (multiple-value-prog1 (apply (constantly 0) b 0 0 nil)
4660                             (catch 'ct8 (throw 'ct8 -2))))
4661   1)
4662  0)
4663
4664;;; sbcl (0.8.8.23.stack.1)
4665;;; failed AVER: "(TAILP BLOCK2-STACK BLOCK1-STACK)"
4666
4667(deftest misc.290
4668  (call-compiled
4669    '(lambda ()
4670       (declare
4671        (optimize (speed 3) (space 3) (safety 1)
4672                  (debug 2) (compilation-speed 0)))
4673       (apply (constantly 0) (catch 'ct2 0) 0 (catch 'ct2 0) nil)))
4674  0)
4675
4676(deftest misc.290a
4677  (call-compiled
4678    '(lambda ()
4679       (declare (optimize (speed 2) (space 1) (safety 0)
4680                          (debug 0) (compilation-speed 0)))
4681       (boole boole-nor
4682              (expt
4683               (let ((v2 (expt (catch 'ct7 0) 0)))
4684                 0)
4685               0)
4686              (expt (apply (constantly 0) 0 0 (catch 'ct6 0) nil) 0))))
4687  -2)
4688
4689;; Allegro CL 6.2 (14 Mar 2004) interpreter bug
4690;; Error: Cannot go to TAG, its body has been exited.
4691
4692(deftest misc.291
4693  (funcall
4694   #'(lambda (a)
4695       (declare (notinline numerator))
4696       (declare (optimize (speed 2) (space 3) (safety 2) (debug 0)
4697                          (compilation-speed 2)))
4698       (tagbody (tagbody (progn a) tag)
4699                (go tag)
4700                tag))
4701   17)
4702  nil)
4703
4704;;; sbcl 0.8.8.23.stack.2
4705;;; The value -1 is not of type (MOD 536870911).
4706
4707(deftest misc.292
4708  (call-compiled
4709    '(lambda (a b c)
4710       (declare
4711        (optimize (speed 3) (space 2) (safety 3) (debug 0)
4712                  (compilation-speed 1)))
4713       (flet ((%f15 (f15-1 f15-2 f15-3)
4714                    (apply (constantly 0)
4715                           0
4716                           0
4717                           (ignore-errors
4718                             (let ((v10 (apply (constantly 0)
4719                                               b a (max 0 c) nil)))
4720                               0))
4721                           nil)))
4722         (flet ((%f14 (f14-1 &optional (f14-2 b) (f14-3 0) (f14-4 0))
4723                      (%f15 0 0 b)))
4724           (%f14 0 c))))
4725   1 2 3)
4726  0)
4727
4728(deftest misc.292a
4729  (call-compiled
4730    '(lambda (a b)
4731       (declare (optimize (speed 2) (space 0) (safety 3) (debug 1)
4732                          (compilation-speed 2)))
4733       (apply (constantly 0)
4734              a
4735              0
4736              (catch 'ct6
4737                (apply (constantly 0)
4738                       0
4739                       0
4740                       (let* ((v1
4741                               (let ((*s7* 0))
4742                                 b)))
4743                         0)
4744                       0
4745                       nil))
4746              0
4747              nil))
4748   1 2)
4749  0)
4750
4751;;; failed AVER: "(NOT (MEMQ PUSH END-STACK))"
4752
4753(deftest misc.293
4754  (call-compiled
4755    '(lambda (a)
4756       (declare (optimize (speed 2) (space 1) (safety 3) (debug 3)
4757                          (compilation-speed 3)))
4758       (let ((v6
4759              (labels ((%f9 (f9-1)
4760                            (multiple-value-prog1 0 (return-from %f9 0) a)))
4761                (let ((*s4* (%f9 0)))
4762                  0))))
4763         0))
4764   1)
4765  0)
4766
4767(deftest misc.293a
4768  (call-compiled
4769    '(lambda (a b c)
4770       (declare (optimize (speed 2) (space 3) (safety 1)
4771                          (debug 2) (compilation-speed 2)))
4772       (block b6
4773         (multiple-value-prog1
4774          0 b 0
4775          (catch 'ct7
4776            (return-from b6
4777              (catch 'ct2
4778                (complex (cl::handler-bind nil -254932942) 0)))))))
4779   1 2 3)
4780  -254932942)
4781
4782(deftest misc.293b
4783  (call-compiled
4784    '(lambda ()
4785       (declare (notinline complex))
4786       (declare (optimize (speed 1) (space 0) (safety 1)
4787                          (debug 3) (compilation-speed 3)))
4788       (flet ((%f () (multiple-value-prog1 0 (return-from %f 0))))
4789         (complex (%f) 0))))
4790  0)
4791
4792(deftest misc.293c
4793  (call-compiled
4794    '(lambda (a b)
4795           (declare (type (integer -6556 -33) a))
4796           (declare (type (integer -1973908574551 1125) b))
4797           (declare (ignorable a b))
4798           (declare
4799            (optimize (compilation-speed 0)
4800                      (space 2)
4801                      (safety 0)
4802                      (debug 2)
4803                      (speed 0)
4804                      #+sbcl (sb-c:insert-step-conditions 0)
4805                      ))
4806           (block b4
4807             (multiple-value-prog1 0
4808               (catch 'ct7 (return-from b4 (catch 'ct6 (if a 0 b))))
4809               0
4810               0)))
4811   -237 -1365751422718)
4812  0)
4813
4814(deftest misc.293d
4815  (call-compiled
4816    '(lambda ()
4817       (declare (optimize (debug 3) (safety 0) (space 2)
4818                          (compilation-speed 2) (speed 2)))
4819       (block b4
4820              (multiple-value-prog1
4821               0
4822               (catch 'ct8
4823                 (return-from b4 (catch 'ct2 (progn (tagbody) 0))))))))
4824  0)
4825   
4826
4827;;; failed AVER: "(SUBSETP START START-STACK)"
4828
4829(deftest misc.294
4830  (call-compiled
4831    '(lambda (a b c)
4832       (declare (notinline /=))
4833       (declare (optimize (speed 2) (space 0) (safety 1)
4834                          (debug 0)(compilation-speed 1)))
4835         (catch 'ct1
4836           (flet ((%f1 (f1-1 f1-2 f1-3)
4837                    (throw 'ct1
4838                      (if (/= 0) 0 (multiple-value-prog1
4839                                    0 (throw 'ct1 a) c)))))
4840             (let ((*s3* (%f1 a a 0)))
4841               0))))
4842   1 2 3)
4843  0)
4844
4845(deftest misc.294a
4846  (call-compiled
4847    '(lambda (a b c)
4848       (declare (notinline expt))
4849       (declare (optimize (speed 1) (space 2) (safety 3)
4850                          (debug 0) (compilation-speed 0)))
4851       (catch 'ct2
4852         (expt
4853          (catch 'ct2
4854            (throw 'ct2 (if a 0 (multiple-value-prog1 0 (throw 'ct2 c) 0))))
4855          0)))
4856   1 2 3)
4857  1)
4858
4859;;;  The value NIL is not of type SB-C::IR2-BLOCK.
4860
4861(deftest misc.295
4862  (call-compiled
4863    '(lambda (a b c)
4864       (declare (type (integer -2858 1050811) a))
4865       (declare (type (integer -419372 1395833) b))
4866       (declare (type (integer -4717708 795706) c))
4867       (declare (ignorable a b c))
4868       (declare
4869        (optimize (speed 1)
4870                  (space 0)
4871                  (safety 2)
4872                  (debug 1)
4873                  (compilation-speed 2)))
4874       (multiple-value-prog1
4875        (the integer
4876          (catch 'ct8
4877            (catch 'ct5
4878              (catch 'ct7
4879                (flet ((%f3 (f3-1 f3-2 &optional (f3-3 a) (f3-4 c)) b))
4880                  (labels ((%f13 (f13-1 f13-2 f13-3)
4881                                 (let* ((*s4*
4882                                         (return-from %f13
4883                                           (flet ((%f18 (f18-1 f18-2)
4884                                                        (apply #'%f3
4885                                                               (progv nil nil f13-2)
4886                                                               (list (%f3 -460 f18-1 10095 352819651)))))
4887                                             (flet ((%f5 ()
4888                                                         (funcall #'%f3
4889                                                                  f13-2
4890                                                                  (flet ((%f14 (f14-1 f14-2 &optional (f14-3 f13-2) (f14-4 -15))
4891                                                                               160080387))
4892                                                                    -196377)
4893                                                                  (isqrt
4894                                                                   (abs
4895                                                                    (if        (/= 117 (%f18 -14 -46574))
4896                                                                        (return-from
4897                                                                            %f13
4898                                                                          (ignore-errors
4899                                                                            (flet ((%f12 (f12-1 f12-2 &optional (f12-3 740148786)
4900                                                                                                (f12-4 -20)
4901                                                                                                (f12-5 -35261))
4902                                                                                         f12-3))
4903                                                                              (%f3
4904                                                                               (%f3 b (%f12 c b f13-3 f13-1 -1124))
4905                                                                               0
4906                                                                               -1003264058
4907                                                                               f13-1))))
4908                                                                      (block b3 (labels ((%f15 () f13-2))  -4858377)))))
4909                                                                  (%f3 793 f13-2 f13-3 a))))
4910                                               f13-3)))))
4911                                   (* -420793
4912                                      (%f3 (%f3 f13-1 f13-3 f13-3 f13-2) 0 8604 f13-1)))))
4913                    (lognor
4914                     (progv nil nil
4915                       (if (< -16 c)
4916                           15867134
4917                         (-
4918                          (throw 'ct5
4919                                 (prog1 7
4920                                   (floor
4921                                    (max (%f13 -4862 -888 -53824112) a -17974 1540006)
4922                                    (min -74 -473379)))))))
4923                     (progv nil nil (prog1 b 22 c a)))))))))
4924        (catch 'ct1 (throw 'ct1 0))
4925        0))
4926   794801 211700 -1246335)
4927  7)
4928
4929;;; Tests added by Camm for gcl
4930
4931(deftest misc.296
4932  (call-compiled
4933    '(lambda (a b c d e f g h)
4934          (declare (type (integer -2016726144 234357120) a))
4935          (declare (type (integer -10569521299456 -1307998945280) b))
4936          (declare (type (integer -45429002240 -17228484608) c))
4937          (declare (type (integer 228451840 1454976512) d))
4938          (declare (type (integer -4797 -2609) e))
4939          (declare (type (integer -21 36300536) f))
4940          (declare (type (integer -15983530 31646604) g))
4941          (declare (type (integer -208720272 -357) h))
4942          (declare (ignorable a b c d e f g h))
4943          (declare (optimize (speed 1) (space 3) (safety 3) (debug 0)
4944                       (compilation-speed 3)))
4945          (expt (labels ((%f14 (f14-1 f14-2)
4946                               (progn
4947                                 (tagbody
4948                                   (+
4949                                    (unwind-protect
4950                                      (labels ((%f1 (f1-1) (go tag1)))
4951                                        (let ((*s6* (%f1 d))) 0))))
4952                                   tag1
4953                                   (+
4954                                    (cl::handler-bind ()
4955                                      (if (<= -11215713 -819)
4956                                       (integer-length
4957                                        (floor (conjugate f14-1)
4958                                         (max 12
4959                                          (ceiling
4960                                           (block b2
4961                                             (catch 'ct2
4962                                               (ignore-errors
4963                                                (flet
4964                                                 ((%f13 (f13-1)
4965                                                   (logior 87 f14-2)))
4966                                                  f14-1))))))))
4967                                       (progv '(*s8*) (list 472865632)
4968                                         *s8*)))))
4969                                 0)))
4970                  (%f14 0 0))
4971                0))
4972   -28594854 -3859203606860 -40757449218 894599577 -4163 11621230
4973   29558853 -92216802)
4974  1)
4975
4976
4977(deftest misc.297
4978  (call-compiled
4979    '(lambda (a b c d e f g h)
4980          (declare (type (integer -4354712743936 666241234) a))
4981          (declare (type (integer -23496787232 13342697120) b))
4982          (declare (type (integer -6834570 6274788) c))
4983          (declare (type (integer -1988742 -250650) d))
4984          (declare (type (integer 10523345 10868247) e))
4985          (declare (type (integer -489185 -46267) f))
4986          (declare (type (integer -627627253760 226529) g))
4987          (declare (type (integer -1039260485 -22498) h))
4988          (declare (ignorable a b c d e f g h))
4989          (declare (optimize (speed 1) (space 3) (safety 2) (debug 2)
4990                       (compilation-speed 0)))
4991          (labels ((%f7 (f7-1 f7-2 f7-3 &optional (f7-4 0) (f7-5 0)
4992                              (f7-6 (labels
4993                                     ((%f6 (f6-1)
4994                                       (labels ((%f9 (f9-1) 0))
4995                                         (progn
4996                                           (tagbody
4997                                             (unwind-protect
4998                                               (if (%f9 (go tag4)) 0 0))
4999                                             tag4
5000                                             (cl::handler-case
5001                                              0))
5002                                           h))))
5003                                      (apply #'%f6 0 nil))))
5004                        0))
5005            (%f7 0 d 0 f d)))
5006    -4319330882538 -3195059121 -2799927 -1466395 10630639 -224479
5007    -502579707077 -985908422)
5008   0)
5009
5010(deftest misc.298
5011  (call-compiled
5012    '(lambda (a b c d e f g h)
5013          (declare (type (integer 1296736620544 1680954654720) a))
5014          (declare (type (integer -2 -2) b))
5015          (declare (type (integer 1 42303) c))
5016          (declare (type (integer -38881008000 1333202563072) d))
5017          (declare (type (integer -435684 1289298) e))
5018          (declare (type (integer -164302654464 -10150328832) f))
5019          (declare (type (integer 30759259904 38429537792) g))
5020          (declare (type (integer -1628949299200 -47724342) h))
5021          (declare (ignorable a b c d e f g h))
5022          (declare (optimize (speed 3) (space 1) (safety 0) (debug 0)
5023                       (compilation-speed 1)))
5024          (progn
5025            (tagbody
5026              (let ((v9 (unwind-protect (go 0)))) 0)
5027              0
5028              (numerator (funcall (constantly 0) (logorc2 0 0) 0)))
5029            0))
5030   1451922002679 -2 285 1067997670626 1115209 -37445463114
5031         36530345360 -80501559891)
5032   0)
5033
5034(deftest misc.299
5035  (call-compiled
5036    '(lambda (a b c d e f g h)
5037          (declare (type (integer -1814 3348) a))
5038          (declare (type (integer -32239015 12) b))
5039          (declare (type (integer 128412 101411593) c))
5040          (declare (type (integer -329076792320 -22) d))
5041          (declare (type (integer 77651198 86069496) e))
5042          (declare (type (integer -4616 3453771) f))
5043          (declare (type (integer -14889981824 53610580608) g))
5044          (declare (type (integer -1049733788 46605484288) h))
5045          (declare (ignorable a b c d e f g h))
5046          (declare (optimize (speed 2) (space 1) (safety 3) (debug 2)
5047                       (compilation-speed 2)))
5048          (conjugate
5049              (progn
5050                (tagbody
5051                  (flet ((%f3 nil 0))
5052                    (unwind-protect
5053                      (flet ((%f10 (f10-1) (let ((*s6* (%f3))) (go 6))))
5054                        (funcall #'%f10 f))))
5055                  6
5056                  (let ((*s1* (restart-bind ()
5057                                (labels ((%f1 (f1-1) 3136))
5058                                  (let ()
5059                                    (progv '(*s5* *s1*)
5060                                     (list
5061                                      (labels
5062                                       ((%f2 nil (catch 'ct8 -11)))
5063                                        -70941710)
5064                                      (if nil (%f1 -1) 87))
5065                                      (progn
5066                                        (tagbody
5067                                          (%f1 *s1*)
5068                                          3
5069                                          (block b2 (progn a))
5070                                          tag3)
5071                                        h)))))))
5072                    0))
5073                0)))
5074   1555 -22062210 85224215 -161218251003 78463284 730073
5075   33930166854 37839245921)
5076   0)
5077
5078(deftest misc.300
5079  (call-compiled
5080    '(lambda (a b c d e f g h)
5081          (declare (type (integer -29429 -3320) a))
5082          (declare (type (integer -407874593 279639852) b))
5083          (declare (type (integer -542849760256 3344389718016) c))
5084          (declare (type (integer -2 12012755) d))
5085          (declare (type (integer -248 -228) e))
5086          (declare (type (integer 5 15636824592) f))
5087          (declare (type (integer 21039 21595) g))
5088          (declare (type (integer -1867743555584 -1621183025152) h))
5089          (declare (ignorable a b c d e f g h))
5090          (declare (optimize (speed 1) (space 3) (safety 1) (debug 2)
5091                       (compilation-speed 3)))
5092          (labels ((%f12 (f12-1 f12-2 f12-3) 0))
5093            (labels ((%f17 (f17-1)
5094                           (progn
5095                             (tagbody
5096                               (max (apply (constantly 0)
5097                                     (list
5098                                      (%f12 (unwind-protect (go tag1))
5099                                       0 d)
5100                                      0 f)))
5101                               tag1
5102                               (dpb (realpart
5103                                     (expt
5104                                      (round
5105                                       (return-from %f17
5106                                         (restart-bind ()
5107                                           (complex e 0)))
5108                                       (max 40 0))
5109                                      0))
5110                                    (byte 0 0) 0))
5111                             0)))
5112              (%f12 0 (%f17 0) 0))))
5113   -6416 -274982013 2946309248013 1724720 -228 5782683458 21484
5114   -1681168611256)
5115  0)
5116
5117
5118(deftest misc.301
5119  (call-compiled
5120    '(lambda (a b c d e f g h)
5121          (declare (type (integer -1814 3348) a))
5122          (declare (type (integer -32239015 12) b))
5123          (declare (type (integer 128412 101411593) c))
5124          (declare (type (integer -329076792320 -22) d))
5125          (declare (type (integer 77651198 86069496) e))
5126          (declare (type (integer -4616 3453771) f))
5127          (declare (type (integer -14889981824 53610580608) g))
5128          (declare (type (integer -1049733788 46605484288) h))
5129          (declare (ignorable a b c d e f g h))
5130          (declare (optimize (speed 2) (space 1) (safety 3) (debug 2)
5131                       (compilation-speed 2)))
5132          (conjugate
5133              (progn
5134                (tagbody
5135                  (flet ((%f3 nil 0))
5136                    (unwind-protect
5137                      (flet ((%f10 (f10-1) (let ((*s6* (%f3))) (go 6))))
5138                        (funcall #'%f10 f))))
5139                  6
5140                  (let ((*s1* (restart-bind ()
5141                                (labels ((%f1 (f1-1) 3136))
5142                                  (let ()
5143                                    (progv '(*s5* *s1*)
5144                                     (list
5145                                      (labels
5146                                       ((%f2 nil (catch 'ct8 -11)))
5147                                        -70941710)
5148                                      (if nil (%f1 -1) 87))
5149                                      (progn
5150                                        (tagbody
5151                                          (%f1 *s1*)
5152                                          3
5153                                          (block b2 (progn a))
5154                                          tag3)
5155                                        h)))))))
5156                    0))
5157                0)))
5158   1555 -22062210 85224215 -161218251003 78463284 730073
5159   33930166854 37839245921)
5160  0)
5161
5162(deftest misc.302
5163  (call-compiled
5164    '(lambda (a b c d e f g h)
5165          (declare (type (integer -206837809920 -126404559104) a))
5166          (declare (type (integer -277874608640 -63724432) b))
5167          (declare (type (integer -2 0) c))
5168          (declare (type (integer -5992710 9946878) d))
5169          (declare (type (integer -4345390743552 -76504514048) e))
5170          (declare (type (integer -330 3826137) f))
5171          (declare (type (integer -517792898560 -1193868) g))
5172          (declare (type (integer 2018 98092396) h))
5173          (declare (ignorable a b c d e f g h))
5174          (declare (optimize (speed 2) (space 2) (safety 2) (debug 1)
5175                       (compilation-speed 1)))
5176          (flet ((%f12 (f12-1 f12-2 &optional (f12-3 0)
5177                              (f12-4 (progn
5178                                       (tagbody
5179                                         (unwind-protect (go tag6))
5180                                         tag6)
5181                                       (flet ((%f1 (f1-1 f1-2) 0))
5182                                         (apply #'%f1 0 0 (list))))))
5183                       0))
5184            (%f12 0 e)))
5185   -195379170409 -30212852077 -1 -2082141 -1686846623470 360505
5186   -324299330279 37218064)
5187  0)
5188
5189(deftest misc.303
5190  (call-compiled
5191    '(lambda (a b c d e f g h)
5192          (declare (type (integer -55724018 0) a))
5193          (declare (type (integer -4929718 2777256) b))
5194          (declare (type (integer 18939493568 24064422528) c))
5195          (declare (type (integer -13157393 112210531) d))
5196          (declare (type (integer -75775 -4883) e))
5197          (declare (type (integer 5071 1584913674240) f))
5198          (declare (type (integer -1 -1) g))
5199          (declare (type (integer -100 7017454141440) h))
5200          (declare (ignorable a b c d e f g h))
5201          (declare (optimize (speed 1) (space 3) (safety 3) (debug 1)
5202                       (compilation-speed 1)))
5203          (labels ((%f7 (f7-1 &optional (f7-2 0) (f7-3 0) (f7-4 0)) 0))
5204            (progn
5205              (denominator
5206                  (progn
5207                    (let ((*s6* (progn
5208                                  (tagbody
5209                                    (unwind-protect
5210                                      (%f7 0 0 (go tag6) d))
5211                                    tag6
5212                                    (restart-case 0))
5213                                  0)))
5214                      0)
5215                    0))
5216              0)))
5217   -23410726 -4342503 20297113275 80145634 -17664 937086103773 -1
5218   2923877584757)
5219  0)
5220
5221(deftest misc.304
5222  (call-compiled
5223    '(lambda (a b c d e f g h)
5224          (declare (type (integer -11679 1672) a))
5225          (declare (type (integer -359757 -216048) b))
5226          (declare (type (integer -46345706880 -1824) c))
5227          (declare (type (integer -18 18) d))
5228          (declare (type (integer -70852138 427028370944) e))
5229          (declare (type (integer -428904547840 535369082368) f))
5230          (declare (type (integer -4372225 83) g))
5231          (declare (type (integer -2 0) h))
5232          (declare (ignorable a b c d e f g h))
5233          (declare (optimize (speed 2) (space 1) (safety 3) (debug 0)
5234                       (compilation-speed 1)))
5235          (labels ((%f1 (f1-1 f1-2 f1-3) 0))
5236            (rationalize
5237                (%f1 (progn
5238                       (tagbody
5239                         (let ((v3 (%f1 (unwind-protect (go tag2)) b 0)))
5240                           0)
5241                         tag2)
5242                       0)
5243                     h (cl::handler-case 0)))))
5244   -7209 -223767 -42093806027 -9 132172281069 138363461574
5245   -3751010 0)
5246  0)
5247
5248(deftest misc.305
5249  (call-compiled
5250    '(lambda (a b c d e f g h)
5251          (declare (type (integer -438 247) a))
5252          (declare (type (integer -93662232 112841) b))
5253          (declare (type (integer 8769 2766606) c))
5254          (declare (type (integer -33007133760 32531429568) d))
5255          (declare (type (integer 419 3712) e))
5256          (declare (type (integer 1628 20513914304) f))
5257          (declare (type (integer -1347290 47) g))
5258          (declare (type (integer -12 3030073088) h))
5259          (declare (ignorable a b c d e f g h))
5260          (declare (optimize (speed 3) (space 3) (safety 0) (debug 3)
5261                       (compilation-speed 0)))
5262          (flet ((%f5 (f5-1 f5-2 &optional (f5-3 0) (f5-4 0) (f5-5 0))
5263                      (progn
5264                        (tagbody (unwind-protect (go tag1)) tag1)
5265                        (coerce (let* ((*s4*
5266                                        (flet
5267                                         ((%f1 nil
5268                                           (let*
5269                                            ((v7 (dpb 0 (byte 0 0) c)))
5270                                             a)))
5271                                          (progv '(*s6* *s7*)
5272                                           (list (%f1) 0)
5273                                            g))))
5274                                  c)
5275                                'integer))))
5276            (if (%f5 d 0 e 0 0) h 0)))
5277   -58 -22237190 2055343 -8144832891 1213 19038103159 -1009345
5278   929619162)
5279  929619162)
5280
5281(deftest misc.306
5282  (call-compiled
5283    '(lambda (a b c d e f g h)
5284          (declare (type (integer 261 234565) a))
5285          (declare (type (integer -1454263719936 -3279802168) b))
5286          (declare (type (integer -1251120498 -49518770) c))
5287          (declare (type (integer 0 369) d))
5288          (declare (type (integer -12465203856 -45) e))
5289          (declare (type (integer -94321486 -91941853) f))
5290          (declare (type (integer -16528338864 11322249648) g))
5291          (declare (type (integer -1230549 -1143976) h))
5292          (declare (ignorable a b c d e f g h))
5293          (declare (optimize (speed 2) (space 1) (safety 0) (debug 0)
5294                       (compilation-speed 0)))
5295          (denominator
5296              (progn
5297                (tagbody (unwind-protect (go tag7)) tag7)
5298                (logxor f
5299                        (multiple-value-bind (*s4*)
5300                            (logxor 0 (expt -2 1))
5301                          (truncate 0))))))
5302   130724 -736795298357 -1221747467 326 -9775240900 -94105708
5303   -2273680158 -1156846)
5304  1)
5305
5306(deftest misc.307
5307  (call-compiled
5308    '(lambda (a b c d e f g h)
5309          (declare (type (integer -2903632 1282236) a))
5310          (declare (type (integer 7 10741) b))
5311          (declare (type (integer -249635 214804) c))
5312          (declare (type (integer -50422 10469) d))
5313          (declare (type (integer -52337314 10771161) e))
5314          (declare (type (integer 0 5333060) f))
5315          (declare (type (integer -1 0) g))
5316          (declare (type (integer 1595835 4577573) h))
5317          (declare (ignorable a b c d e f g h))
5318          (declare (optimize (speed 1) (space 3) (safety 3) (debug 3)
5319                       (compilation-speed 1)))
5320          (flet ((%f11 (f11-1 f11-2) 0))
5321            (%f11 0
5322                  (unwind-protect
5323                    e
5324                    (progn
5325                      (tagbody
5326                        (let* ((v4 (progn (unwind-protect (go 0)) 0)))
5327                          0)
5328                        0)
5329                      (logand (cl::handler-bind ()
5330                                (logand -15 -2 32578787 10349 e
5331                                        -24781944 -8))))))))
5332   60336 1625 124302 -33193 -8095855 4995857 0 4572381)
5333  0)
5334
5335(deftest misc.308
5336  (call-compiled
5337    '(lambda (a b c d e f g h)
5338          (declare (type (integer -2806612475904 8750665416704) a))
5339          (declare (type (integer -3 10) b))
5340          (declare (type (integer -94336824 116591592) c))
5341          (declare (type (integer 456813135872 903636350976) d))
5342          (declare (type (integer -2364199833600 -172353318912) e))
5343          (declare (type (integer 717 1760915) f))
5344          (declare (type (integer -21 105) g))
5345          (declare (type (integer -3579048169472 -346272903168) h))
5346          (declare (ignorable a b c d e f g h))
5347          (declare (optimize (speed 2) (space 1) (safety 0) (debug 0)
5348                       (compilation-speed 0)))
5349          (labels ((%f7 (f7-1)
5350                        (multiple-value-prog1 0
5351                          0
5352                          (return-from %f7 (mask-field (byte 0 0) 0)))))
5353            (unwind-protect (%f7 0))))
5354   1951007924893 10 -49879990 614214833752 -1808568999586 1282634
5355   99 -2783010573143)
5356  0)
5357
5358(deftest misc.309
5359  (call-compiled
5360    '(lambda (a b c d e f g h)
5361          (declare (type (integer -521338 12) a))
5362          (declare (type (integer -1787856009216 1182078822400) b))
5363          (declare (type (integer -3313 28535137344) c))
5364          (declare (type (integer -38914612 -25121536) d))
5365          (declare (type (integer 403073126400 2632230309888) e))
5366          (declare (type (integer -39663606528 -1238304) f))
5367          (declare (type (integer -103560 -70383) g))
5368          (declare (type (integer -894 -227) h))
5369          (declare (ignorable a b c d e f g h))
5370          (declare (optimize (speed 3) (space 1) (safety 1) (debug 3)
5371                       (compilation-speed 2)))
5372          (block b8
5373            (multiple-value-prog1
5374                (logand (logior 0
5375                                (if (logbitp 0 0) 0
5376                                    (multiple-value-bind (v2) 0 0))))
5377              (gcd (let* ((*s4* 0))
5378                     (logior 0
5379                             (return-from b8
5380                               (let ((*s8* 0)) (round 0))))))
5381              0
5382              0)))
5383   -275760 -565946697213 9650536069 -37585973 1536165173011
5384   -12895970021 -102192 -534)
5385  0 0)
5386
5387
5388(deftest misc.310
5389  (call-compiled
5390    '(lambda (a b c d e f g h)
5391          (declare (type (integer -2016726144 234357120) a))
5392          (declare (type (integer -10569521299456 -1307998945280) b))
5393          (declare (type (integer -45429002240 -17228484608) c))
5394          (declare (type (integer 228451840 1454976512) d))
5395          (declare (type (integer -4797 -2609) e))
5396          (declare (type (integer -21 36300536) f))
5397          (declare (type (integer -15983530 31646604) g))
5398          (declare (type (integer -208720272 -357) h))
5399          (declare (ignorable a b c d e f g h))
5400          (declare (optimize (speed 1) (space 3) (safety 3) (debug 0)
5401                       (compilation-speed 3)))
5402          (expt (labels ((%f14 (f14-1 f14-2)
5403                               (progn
5404                                 (tagbody
5405                                   (+
5406                                    (unwind-protect
5407                                      (labels ((%f1 (f1-1) (go tag1)))
5408                                        (let ((*s6* (%f1 d))) 0))))
5409                                   tag1
5410                                   (+
5411                                    (cl::handler-bind ()
5412                                      (if (<= -11215713 -819)
5413                                       (integer-length
5414                                        (floor (conjugate f14-1)
5415                                         (max 12
5416                                          (ceiling
5417                                           (block b2
5418                                             (catch 'ct2
5419                                               (ignore-errors
5420                                                (flet
5421                                                 ((%f13 (f13-1)
5422                                                   (logior 87 f14-2)))
5423                                                  f14-1))))))))
5424                                       (progv '(*s8*) (list 472865632)
5425                                         *s8*)))))
5426                                 0)))
5427                  (%f14 0 0))
5428                0))
5429   -28594854 -3859203606860 -40757449218 894599577 -4163 11621230
5430   29558853 -92216802)
5431  1)
5432
5433(deftest misc.311
5434  (call-compiled
5435    '(lambda (a b c d e f g h)
5436          (declare (type (integer -1203392327680 -3017953) a))
5437          (declare (type (integer -34222 -1) b))
5438          (declare (type (integer -871294987 19) c))
5439          (declare (type (integer 717979131904 3341735845888) d))
5440          (declare (type (integer -7521858 3) e))
5441          (declare (type (integer -52 49) f))
5442          (declare (type (integer 18 43) g))
5443          (declare (type (integer -503567246 -46) h))
5444          (declare (ignorable a b c d e f g h))
5445          (declare (optimize (speed 1) (space 3) (safety 1) (debug 2)
5446                       (compilation-speed 2)))
5447          (labels ((%f2 (f2-1 f2-2 f2-3 &optional
5448                              (f2-4 (let
5449                                     ((*s6*
5450                                       (progn
5451                                         (tagbody
5452                                           (flet
5453                                            ((%f17 (f17-1 f17-2 f17-3)
5454                                              (go 6)))
5455                                             (%f17 0 b 0))
5456                                           6)
5457                                         0)))
5458                                      (complex
5459                                       (progn
5460                                         (tagbody
5461                                           (labels
5462                                            ((%f18
5463                                              (f18-1 f18-2 &optional
5464                                               (f18-3 0) (f18-4 f))
5465                                              0))
5466                                             (apply #'%f18 g 0 0
5467                                              (list)))
5468                                           0)
5469                                         0)
5470                                       0)))
5471                              (f2-5 0) (f2-6 0))
5472                        0))
5473            (%f2 0 0 f)))
5474   -738307241633 -25016 -846570136 2181696281793 -983259 24 36
5475   -185316211)
5476  0)
5477
5478
5479(deftest misc.312
5480  (call-compiled
5481    '(lambda (a b c d e f g h)
5482          (declare (type (integer -18334222 14354736) a))
5483          (declare (type (integer 11163582 6421184978944) b))
5484          (declare (type (integer -13690431913984 -64765792960) c))
5485          (declare (type (integer -12750925 31112834) d))
5486          (declare (type (integer -5188669232 2246825616) e))
5487          (declare (type (integer -31235593088 -134) f))
5488          (declare (type (integer -1 -1) g))
5489          (declare (type (integer -647589424 12392126736) h))
5490          (declare (ignorable a b c d e f g h))
5491          (declare (optimize (speed 3) (space 2) (safety 1) (debug 1)
5492                       (compilation-speed 1)))
5493          (let ((*s4* (if (progn
5494                            (tagbody (unwind-protect (go 2)) 2)
5495                            0)
5496                          (numerator
5497                              (let* ((v1
5498                                      (let ((*s6* 0))
5499                                        (logand b
5500                                         (rationalize
5501                                          (coerce 0 'integer))))))
5502                                0))
5503                          0)))
5504            0))
5505   7112398 3547401482305 -12827294644277 23312291 -444957551
5506   -5443955020 -1 4998457143)
5507  0)
5508
5509(deftest misc.313
5510  (call-compiled
5511    '(lambda (a b c d e f g h)
5512          (declare (type (integer 55474 401001) a))
5513          (declare (type (integer -8359558987776 8684176949248) b))
5514          (declare (type (integer -54332 116292) c))
5515          (declare (type (integer 0 0) d))
5516          (declare (type (integer -609311104000 959776553984) e))
5517          (declare (type (integer -2031580 3834807) f))
5518          (declare (type (integer -10955 2549) g))
5519          (declare (type (integer -8362590032 -210369) h))
5520          (declare (ignorable a b c d e f g h))
5521          (declare (optimize (speed 1) (space 3) (safety 1) (debug 0)
5522                       (compilation-speed 1)))
5523          (dotimes (iv1 3 0)
5524            (labels ((%f6 (f6-1 f6-2 f6-3 &optional
5525                                (f6-4 (flet
5526                                       ((%f3
5527                                         (f3-1 f3-2 f3-3 &optional
5528                                          (f3-4 0))
5529                                         (flet ((%f11 nil 0))
5530                                           (ash
5531                                            (progn
5532                                              (tagbody
5533                                                (labels
5534                                                 ((%f3
5535                                                   (f3-1 &optional
5536                                                    (f3-2 (go tag4)))
5537                                                   0))
5538                                                  (%f3 0))
5539                                                tag4)
5540                                              0)
5541                                            (min 42
5542                                             (conjugate
5543                                              (coerce
5544                                               (conjugate
5545                                                (let ((v9 (%f11)))
5546                                                  f3-1))
5547                                               'integer)))))))
5548                                        (%f3 c 0 a)))
5549                                (f6-5 0))
5550                          0))
5551              (apply #'%f6 0 0 h nil))))
5552   93287 3146418586486 -51786 0 -63479145888 1935918 -10058 -2033798238)
5553  0)
5554
5555(deftest misc.314
5556  (call-compiled
5557    '(lambda (a b c d e f g h)
5558          (declare (type (integer -176150296 698) a))
5559          (declare (type (integer -62799871488 -56234210816) b))
5560          (declare (type (integer -1 1) c))
5561          (declare (type (integer 31 215808) d))
5562          (declare (type (integer -3 -1) e))
5563          (declare (type (integer -3 3387651) f))
5564          (declare (type (integer -14370846720 -56648624) g))
5565          (declare (type (integer -8316238784 -6221617344) h))
5566          (declare (ignorable a b c d e f g h))
5567          (declare (optimize (speed 1) (space 1) (safety 1) (debug 2)
5568                       (compilation-speed 2)))
5569          (progn
5570            (tagbody
5571              (unwind-protect
5572                (let ((v10 (let* ((v7 (if (go tag6) 0 0))) 0))) 0))
5573              tag6
5574              (let ((v7 (flet ((%f11 nil 0))
5575                          (flet ((%f13 (f13-1 f13-2 f13-3) f13-2))
5576                            (funcall #'%f13 0 a (%f11))))))
5577                0))
5578            0))
5579   -90583503 -61289371485 -1 175888 -3 3257970 -3264725617  -6816839328)
5580  0)
5581
5582;;; (misc.315 deleted)
5583
5584;;; ACL 6.2 interpreter bugs
5585;;; Error: `NIL' is not of the expected type `NUMBER'
5586;;; (in COMP::IA-RESOLVE-REFS)
5587
5588(deftest misc.316
5589  (call-compiled
5590    '(lambda (a c)
5591       (declare (optimize (speed 2) (space 3) (safety 2) (debug 2)
5592                          (compilation-speed 0)))
5593       (unwind-protect
5594           0
5595         (progn (tagbody (bit #*000000111 (min 8 (max 0 a)))
5596                         tag5    (flet ((%f17 (f17-1 f17-2 f17-3)
5597                                              (complex (numerator (go tag4)) 0)))
5598                                   c)
5599                         tag4)
5600                c)))
5601   1 2)
5602  0)
5603
5604;;; ecl failures (12 April 2004)
5605
5606;;; wrong value returned
5607(deftest misc.317
5608  (call-compiled
5609    '(lambda ()
5610       (declare (optimize (speed 1) (space 1) (safety 3) (debug 0)
5611                          (compilation-speed 3)))
5612       (catch 'ct4
5613         (elt '(40760)
5614              (min 0 (max 0 (let* ((v3 (* (throw 'ct4 0) 0))) 0)))))))
5615  0)
5616
5617;;; seg fault
5618(deftest misc.318
5619  (call-compiled
5620    '(lambda (a b c)
5621       (declare (type (integer -2050548150 4917) a))
5622       (declare (type (integer -4 1) b))
5623       (declare (type (integer 99335934976 442465125376) c))
5624       (declare (ignorable a b c))
5625       (declare (optimize (speed 1) (space 1) (safety 1) (debug 0)
5626                          (compilation-speed 0)))
5627       (if (rationalize
5628            (labels ((%f12 (f12-1)
5629                           (if c 0
5630                             (bit #*101010011000011
5631                                  (min 14 (max 0 0))))))
5632              (if (> 0 c) 0 (%f12 0))))
5633           (progn
5634             (expt (flet ((%f18 (f18-1 f18-2 &optional (f18-3 0)
5635                                       (f18-4 c) (f18-5 b))
5636                                0))
5637                     (apply #'%f18 b b 0 0 nil))
5638                   0)
5639             a)
5640         0))
5641   10 1 99335934976)
5642  10)
5643
5644;;; seg fault
5645(deftest misc.319
5646  (call-compiled
5647    '(lambda (a b c)
5648       (declare (type (integer -626615938 3649977016320) a))
5649       (declare (type (integer -3615553 6013683) b))
5650       (declare (type (integer -746719 1431737508) c))
5651       (declare (ignorable a b c))
5652       (declare (optimize (speed 3) (space 1) (safety 2) (debug 3)
5653                          (compilation-speed 3)))
5654       (if (logbitp 0
5655                    (flet ((%f10 (f10-1 f10-2 f10-3) b))
5656                      (flet ((%f4 (f4-1 f4-2)
5657                                  (apply #'%f10 (%f10 0 a 0) 0 c nil)))
5658                        (complex (%f4 0 0) 0))))
5659           0 0))
5660   2378435476701 1646880 246794654)
5661  0)
5662
5663;;; sbcl 0.8.9.35
5664;;; failed AVER: "(EQL (LAMBDA-COMPONENT FUNCTIONAL) *CURRENT-COMPONENT*)"
5665
5666(deftest misc.320
5667  (call-compiled
5668    '(lambda ()
5669       (declare (optimize (speed 3) (space 0) (safety 2)
5670                          (debug 2) (compilation-speed 0)))
5671       (catch 'ct2
5672         (elt '(102)
5673              (flet ((%f12 () (rem 0 -43)))
5674                (multiple-value-call #'%f12 (values)))))))
5675  102)
5676
5677(deftest misc.320a
5678  (call-compiled
5679    '(lambda (b)
5680       (declare (optimize (speed 3) (space 0) (safety 2)
5681                            (debug 2) (compilation-speed 0)))
5682         (reduce '*
5683                 (list (elt '(10 20 30 40 50) b)
5684                       (expt (reduce #'(lambda (lmv1 lmv3) (mod lmv3 15))
5685                                     (vector 0 0))
5686                             0)
5687                       (rem 0 -71))
5688                 ))
5689   2)
5690  0)
5691
5692(deftest misc.320b
5693  (call-compiled
5694    '(lambda (a b c)
5695       (declare (type (integer -690191 -454473) a))
5696       (declare (type (integer -459197 -62) b))
5697       (declare (type (integer 445621505781 8489194559765) c))
5698       (declare (ignorable a b c))
5699       (declare
5700        (optimize (speed 1)
5701                  (space 0)
5702                  (safety 2)
5703                  (debug 3)
5704                  (compilation-speed 3)))
5705       (elt '(3327764 3386241)
5706            (min 1
5707                 (max 0
5708                      (reduce #'(lambda (lmv6 lmv5) (mod 0 (min -86 0)))
5709                              (list 0 0))))))
5710   -512398 -156405 1140919327630)
5711  3327764) 
5712
5713;;; ecl
5714;;; Wrong value
5715
5716(deftest misc.321
5717  (call-compiled
5718    '(lambda (p)
5719       (declare (optimize (speed 1) (space 3) (safety 2) (debug 1)
5720                          (compilation-speed 3)))
5721       (catch 'ct2
5722         (let* ((v3 (- (if p (throw 'ct2 :good) 0))))
5723           :bad)))
5724   t)
5725  :good)
5726
5727;;; segfault
5728(deftest misc.322
5729  (call-compiled
5730    '(lambda (a)
5731       (declare (optimize (speed 2) (space 2) (safety 0) (debug 3)
5732                          (compilation-speed 2)))
5733       (logorc2 (labels ((%f14 (f14-1) a)) (%f14 0))
5734                (reduce #'(lambda (lmv1 lmv2) a) (list 0 0))))
5735   3151096069)
5736  -1)
5737
5738;; #1# is undefined
5739
5740(deftest misc.323
5741  (let* ((tail '(:from-end t))
5742         (form
5743          `(lambda ()
5744            (declare (optimize (speed 3) (space 1) (safety 2) (debug 2)
5745                               (compilation-speed 2)))
5746            (eval '(reduce #'logior
5747                           (vector (reduce #'logand (vector 0 0) . ,tail) 0)
5748                           . ,tail)))))
5749    (call-compiled form))
5750  0)
5751
5752;;; Bad value
5753
5754(deftest misc.324
5755  (call-compiled
5756    '(lambda (a)
5757       (declare (optimize (speed 2) (space 2) (safety 3) (debug 2)
5758                          (compilation-speed 3)))
5759       (labels ((%f6 (f6-1) (multiple-value-setq (a) 0)))
5760         (reduce #'(lambda (lmv4 lmv3) a)
5761                 (list (%f6 0) 2))))
5762   1)
5763  0)
5764
5765;;; "A bug was found in the compiler.  Contact worm@arrakis.es."
5766;;; Broken at C::C2MULTIPLE-VALUE-SETQ.
5767
5768(deftest misc.325
5769  (call-compiled
5770    '(lambda (a b)
5771       (declare (type (integer -1659358 3099614928896) a))
5772       (declare (type (integer -492625 197903) b))
5773       (declare (ignorable a b))
5774       (declare (optimize (speed 3) (space 1) (safety 3) (debug 0)
5775                          (compilation-speed 1)))
5776       (reduce #'(lambda (lmv5 lmv6)
5777                   (multiple-value-setq (a) 2443855591508))
5778               (vector b a 0 0) :from-end t))
5779   1 2)
5780  2443855591508)
5781
5782;;; wrong value
5783(deftest misc.326
5784  (call-compiled
5785    '(lambda (b)
5786       (declare (type (integer 155 7955) b))
5787       (declare (optimize (speed 3) (space 3) (safety 3) (debug 1)
5788                          (compilation-speed 0)))
5789       (flet ((%f13 (f13-1) (shiftf b 3019))) (+ b (%f13 0))))
5790   200)
5791  400)
5792
5793;;; acl 6.2 (x86 linux trial edition, patched, 4/15/04)
5794;;; Error: `NIL' is not of the expected type `REAL'
5795
5796(deftest misc.327
5797  (call-compiled
5798    '(lambda (a b)
5799       (declare (type (integer -67668056 -55) a))
5800       (declare (type (integer -586950907 -10945000) b))
5801       (declare (ignorable a b))
5802       (declare (optimize (speed 2) (space 0) (safety 2) (debug 2)
5803                          (compilation-speed 1)))
5804       (labels ((%f15 (f15-1)
5805                      (elt #(1073730663 1073689230 596123606 1073713997
5806                                        311527378 186184643 1073713230 1316881)
5807                           (min 7
5808                                (max 0
5809                                     (catch 'ct7
5810                                       (reduce
5811                                        #'min
5812                                        (list 0 b (catch 'ct7
5813                                                    (throw 'ct7 f15-1))
5814                                              0)
5815                                        :start 1
5816                                        :from-end t)))))))
5817     (%f15 0)))
5818   -38276611 -11001852)
5819  1073730663)
5820
5821;;; wrong return value: T
5822(deftest misc.327a
5823  (call-compiled
5824    '(lambda (a b c d e)
5825       (declare (notinline max vector reduce))
5826       (declare (optimize (speed 1) (space 2) (safety 1) (debug 1)
5827                          (compilation-speed 2)))
5828       (reduce #'(lambda (lmv6 lmv3) lmv3)
5829               (vector 0 (max 0) 0 0
5830                       (catch 'ct2 (catch 'ct2 (throw 'ct2 0))) 0 e 0)
5831               
5832               :end 2
5833               :from-end t))
5834   68664683637 328245 881497115 -303855 311427)
5835  0)
5836   
5837;;; Bugs from abcl
5838;;; Debugger invoked on condition of type TYPE-ERROR:
5839;;;   The value org.armedbear.lisp.Symbol@54 is not of type integer.
5840
5841(deftest misc.328
5842  (call-compiled
5843    '(lambda (a b)
5844       (declare (type (integer -11368047588 14412128900) a))
5845       (declare (type (integer -10 0) b))
5846       (declare (ignorable a b))
5847       (declare (optimize (speed 3) (space 1) (safety 3) (debug 0)
5848                          (compilation-speed 0)))
5849       (if (logbitp 0 (if (or t nil) (setf a -2616861879) 0)) 0 0))
5850   -4836700955 -1)
5851  0)
5852
5853;;; Incorrect value
5854(deftest misc.329
5855  (call-compiled
5856    '(lambda (a b)
5857       (declare (type (integer -725661427 405092) a))
5858       (declare (type (integer 84176291516 98216856233) b))
5859       (declare (ignorable a b))
5860       (declare (optimize (speed 3) (space 3) (safety 0) (debug 0)
5861                          (compilation-speed 0)))
5862       (let ((*s2* (case b ((53651 62711 29537 25305 62250) 0) (t 0))))
5863         (declare (special *s2*))
5864         (setq a -688292831)))
5865   -406606203 84436335326)
5866  -688292831)
5867
5868(deftest misc.330
5869  (call-compiled
5870    '(lambda (a b)
5871       (declare (type (integer -12816761394938 -8706928710678) a))
5872       (declare (type (integer -3683497948554 427) b))
5873       (declare (ignorable a b))
5874       (declare (optimize (speed 3) (space 0) (safety 0) (debug 3)
5875                          (compilation-speed 2)))
5876       (lcm (block b8 (signum (return-from b8 a)))))
5877   -12715609319989 -582329850697)
5878  12715609319989)
5879
5880(deftest misc.331
5881  (call-compiled
5882    '(lambda (a b)
5883       (declare (type (integer -777352478 239900) a))
5884       (declare (type (integer -63500163479 -8671) b))
5885       (declare (ignorable a b))
5886       (declare (optimize (speed 3) (space 0) (safety 0) (debug 2)
5887                          (compilation-speed 3)))
5888       (if (if (>= 0) t t) (setq b -25319949896) b))
5889   0 -10000)
5890  -25319949896)
5891
5892;;; Debugger invoked on condition of type TYPE-ERROR:
5893;;;   The value 0 is not of type org.armedbear.lisp.Symbol@80f563d8.
5894(deftest misc.332
5895  (call-compiled
5896    '(lambda (a b)
5897       (declare (notinline max logorc1 numerator rem))
5898       (declare (optimize (speed 3) (space 1) (safety 1) (debug 1)
5899                          (compilation-speed 2)))
5900       (rem (progn (tagbody (numerator (logorc1 0 (go tag5)))
5901                            tag5)
5902                   0)
5903            (max 93 0)))
5904   -801 17641908)
5905  0)
5906
5907;;; Debugger invoked on condition of type TYPE-ERROR:
5908;;;   The value #<THREAD @ #x15c40eb> is not of type org.armedbear.lisp.Symbol@80f563d8.
5909
5910(deftest misc.333
5911  (call-compiled
5912    '(lambda ()
5913       (declare (notinline logxor))
5914       (declare (optimize (speed 3) (space 0) (safety 0) (debug 3)
5915                          (compilation-speed 3)))
5916       (logxor (progn (tagbody (let* ((*s4* (progn (go 1) 0))) 0)
5917                               1)
5918                      0))))
5919  0)
5920
5921;;; Debugger invoked on condition of type PROGRAM-ERROR:
5922;;;  Wrong number of arguments for EXPT.
5923(deftest misc.334
5924  (call-compiled
5925    '(lambda (a b c)
5926       (declare (type (integer 1892675246514 8763564964618) a))
5927       (declare (type (integer -1353 -456) b))
5928       (declare (type (integer 2010840649 2119165101) c))
5929       (declare (ignorable a b c))
5930       (declare (optimize (speed 3) (space 2) (safety 0) (debug 2)
5931                          (compilation-speed 1)))
5932       (+ (block b6 (expt (return-from b6 b) 0))))
5933   3966745735633 -1123 2030094113)
5934  -1123)
5935
5936;;; The value NIL is not of type number.
5937(deftest misc.335
5938  (let ((c 10))
5939    (denominator (progn (tagbody (realpart (loop for lv4 below 2 sum (go 0)))
5940                                 0)
5941                        c)))
5942  1)
5943
5944(deftest misc.336
5945  (prog2 (progn (tagbody (- (common-lisp:handler-case (go tag2)))
5946                         tag2)
5947                0)
5948         0)
5949  0)
5950
5951;;; Incorrect return value
5952(deftest misc.337
5953  (call-compiled
5954    '(lambda ()
5955       (declare (optimize (speed 2) (space 2) (safety 2) (debug 0)
5956                          (compilation-speed 0)))
5957       (imagpart (block b8
5958                   (logior (block b7 (return-from b8 225480400)))))))
5959  0)
5960
5961;;; Inconsistent stack height 1 != 2
5962(deftest misc.338
5963  (let #+armedbear ((jvm::*catch-errors* nil))
5964       nil
5965       (call-compiled
5966         '(lambda (c)
5967            (conjugate (block b8 (max (if c (return-from b8 0) 0)))))
5968        10))
5969  0)
5970
5971;;; Inconsistent stack height 4 != 0
5972(deftest misc.339
5973  (let
5974   #+armedbear ((jvm::*catch-errors* nil))
5975   nil
5976   (call-compiled
5977     '(lambda ()
5978        (declare (optimize (speed 1) (space 3) (safety 3) (debug 0)
5979                           (compilation-speed 0)))
5980        (block b1
5981          (reduce #'min
5982                  (list (return-from b1 0))
5983                  :end    1
5984                  :start  0
5985                  :from-end t
5986                  )))))
5987  0)
5988
5989;;;   The value INTEGER is not of type sequence.
5990(deftest misc.340
5991  (call-compiled
5992    '(lambda (a b c)
5993       (declare (type (integer -4379340 -1962) a))
5994       (declare (type (integer 1304043 3225940) b))
5995       (declare (type (integer -3229571579853 -180689150012) c))
5996       (declare (ignorable a b c))
5997       (declare (optimize (speed 3) (space 1) (safety 0) (debug 2)
5998                          (compilation-speed 2)))
5999       (coerce (rationalize (progn (tagbody (reduce #'logand
6000                                                    (list b 0 (go tag3))
6001                                                    :from-end
6002                                                    t)
6003                                            tag3)
6004                                   0))
6005               'integer))
6006   -1625211 3052955 -2091182035681)
6007  0)
6008
6009;;; Inconsistent stack height 1 != 2
6010(deftest misc.341
6011  (let
6012   #+armedbear ((jvm::*catch-errors* nil))
6013   nil
6014   (call-compiled
6015     '(lambda (c)
6016        (declare (optimize (speed 2) (space 1) (safety 1) (debug 2)
6017                           (compilation-speed 3)))
6018        (logeqv (block b6
6019                  (logeqv (case 0
6020                            ((45293 29462 60403) (return-from b6 0))
6021                            (t c))))))
6022    10))
6023  10)
6024
6025;;;  Inconsistent stack height 0 != 1
6026(deftest misc.342
6027  (let
6028   #+armedbear ((jvm::*catch-errors* nil))
6029   nil
6030   (call-compiled
6031     '(lambda (a)
6032        (declare (optimize (speed 1) (space 0) (safety 2) (debug 1)
6033                           (compilation-speed 2)))
6034        (progn (tagbody (imagpart (dotimes (iv3 0 a) (go 4)))
6035                        4)
6036               0))
6037    1))
6038  0)
6039
6040;;; Expecting to find object/array on stack
6041(deftest misc.343
6042  (let
6043   #+armedbear ((jvm::*catch-errors* nil))
6044   nil
6045   (call-compiled
6046     '(lambda ()
6047        (declare (optimize (speed 2) (space 3) (safety 2) (debug 3)
6048                           (compilation-speed 2)))
6049        (mask-field (byte 0 0)
6050                    (block b8
6051                      (reduce 'logior
6052                              (list (return-from b8 0) 0 0)
6053                              :end      3
6054                              :start    0
6055                              :from-end t))))))
6056  0)
6057
6058;;; Wrong value
6059(deftest misc.344
6060  (call-compiled
6061    '(lambda (a)
6062       (declare (type (integer -3464434 12316202) a))
6063       (declare (optimize (speed 1) (space 0) (safety 0) (debug 0)
6064                          (compilation-speed 2)))
6065       (progn (tagbody (gcd (expt (setf a -2612809) 0) (go 5))
6066                       5)
6067              a))
6068   1891348)
6069  -2612809)
6070
6071;;; Stack size too large
6072(deftest misc.345
6073  (let
6074   #+armedbear ((jvm::*catch-errors* nil))
6075   nil
6076   (call-compiled
6077     '(lambda (a b c)
6078        (declare (type (integer -1968 -1759) a))
6079        (declare (type (integer 91 2293818743282) b))
6080        (declare (type (integer -843793650839 -2) c))
6081        (declare (ignorable a b c))
6082        (declare (optimize (speed 3) (space 2) (safety 3) (debug 0)
6083                           (compilation-speed 3)))
6084        (max (block b1
6085               (conjugate (dotimes (iv3 0
6086                                        (bit #*010
6087                                             (min 2
6088                                                  (max 0
6089                                                       (return-from b1 0)))))
6090                            (progn 0))))
6091             (sbit #*0001011010010 (min 12 (max 0 0)))))
6092    -1957 523078358699 -634832888815))
6093  0)
6094
6095(deftest misc.345a
6096  (let
6097   #+armedbear ((jvm::*catch-errors* nil))
6098   nil
6099   (call-compiled
6100     '(lambda (c)
6101        (declare (type (integer -3011346550 1630587670) c))
6102        (declare (optimize (speed 1) (space 1) (safety 0) (debug 3)
6103                           (compilation-speed 1)))
6104        (progn (tagbody (dotimes (iv2 0 (- 0 (go 7))) (progn 0))
6105                        7
6106                        (progn (mask-field (byte 0 0) 0) c))
6107               0))
6108    1))
6109  0)
6110
6111;;; wrong return value
6112(deftest misc.346
6113  (call-compiled
6114    '(lambda ()
6115       (declare (optimize (speed 2) (space 2) (safety 2) (debug 2)
6116                          (compilation-speed 2)))
6117       (bit #*011100
6118            (min 5
6119                 (max 0
6120                      (block b8
6121                        (aref #(122010971004 126555236004)
6122                              (min 1
6123                                   (max 0
6124                                        (progn (return-from b8 191438621)
6125                                               0))))))))))
6126  0)
6127
6128;;; The value 8 is not of type FUNCTION.
6129(deftest misc.347
6130  (call-compiled
6131    '(lambda ()
6132       (declare (optimize (speed 2) (space 2) (safety 3) (debug 2)
6133                          (compilation-speed 1)))
6134       (complex (* (block b2
6135                     (boole boole-xor (logxor (return-from b2 0)) 0)))
6136                0)))
6137  0)
6138
6139;;; Wrong result
6140(deftest misc.348
6141  (call-compiled
6142    '(lambda (a c)
6143       (declare (optimize (speed 1) (space 0) (safety 2) (debug 3)
6144                          (compilation-speed 1)))
6145       (max (conjugate (setq a -4178265097)) (if (> c 0) 0 a)))
6146   -2408319173 -4307532101272)
6147  -4178265097)
6148
6149(deftest misc.349
6150  (call-compiled
6151    '(lambda ()
6152       (declare (optimize (speed 3) (space 1) (safety 1) (debug 1)
6153                          (compilation-speed 2)))
6154       (mod (let ((*s7* (block b7 (logandc2 (+ (return-from b7 0)) 0))))
6155              -10)
6156            (max 26 0))))
6157  16)
6158
6159;;; Inconsistent stack height 0 != 1
6160
6161(deftest misc.350
6162  (let
6163   #+armedbear ((jvm::*catch-errors* nil))
6164   nil
6165   (call-compiled
6166     '(lambda ()
6167        (declare (optimize (speed 2) (space 3) (safety 1) (debug 2)
6168                           (compilation-speed 3)))
6169        (progn (tagbody (complex (- 0 (if (and t) 0 (go tag1))) 0)
6170                        tag1)
6171               0))))
6172  0)
6173
6174(deftest misc.351
6175  (let
6176   #+armedbear ((jvm::*catch-errors* nil))
6177   nil
6178   (call-compiled
6179     '(lambda (c)
6180        (declare (type (integer -598962457711 -2902) c))
6181        (declare (optimize (speed 1) (space 0) (safety 1) (debug 0)
6182                           (compilation-speed 3)))
6183        (lognor c
6184                (block b1
6185                  (loop for lv3 below 1
6186                        sum (if (/= 0) (return-from b1 0) c)))))
6187    -392248104420))
6188  392248104419)
6189
6190(deftest misc.352
6191  (let
6192   #+armedbear ((jvm::*catch-errors* nil))
6193   nil
6194   (call-compiled
6195     '(lambda ()
6196        (declare (optimize (speed 1) (space 3) (safety 3) (debug 3)
6197                           (compilation-speed 1)))
6198        (progn (tagbody (+ 0 (if (< 0) (go 5) 0))
6199                        5)
6200               0))))
6201  0)
6202
6203(deftest misc.353
6204  (let
6205   #+armedbear ((jvm::*catch-errors* nil))
6206   nil
6207   (call-compiled
6208     '(lambda (a b)
6209        (declare (type (integer -8 -2) a))
6210        (declare (type (integer -67321 14697029362) b))
6211        (declare (optimize (speed 3) (space 1) (safety 3) (debug 1)
6212                           (compilation-speed 2)))
6213        (expt (block b2
6214                (loop for lv1 below 3
6215                      sum (prog2 b
6216                              0
6217                            (expt (case 0
6218                                    ((-13960 -57685 -37843 -34222
6219                                             -14273 -40931 -2688)
6220                                     (return-from b2 0))
6221                                    (t a))
6222                                  0))))
6223              0))
6224    -7 772373806))
6225  1)
6226
6227;;; Incorrect return value
6228(deftest misc.354
6229  (call-compiled
6230    '(lambda (a b c)
6231       (declare (type (integer -1309 67082465417) a))
6232       (declare (type (integer -7824641338734 -832606641) b))
6233       (declare (type (integer 7473698771 3542216118742) c))
6234       (declare (ignorable a b c))
6235       (declare (optimize (speed 3) (space 2) (safety 1) (debug 3)
6236                          (compilation-speed 2)))
6237       (+ 0
6238          (progn (tagbody (if (if (>= b (go 3)) nil t) a c)
6239                          3)
6240                 0)))
6241   29329060987 -4964942044116 512158612507)
6242  0)
6243
6244(deftest misc.355
6245  (call-compiled
6246    '(lambda (c)
6247       (declare (type (integer -1390043946499 -115168466439) c))
6248       (declare (optimize (speed 2) (space 0) (safety 0) (debug 1)
6249                          (compilation-speed 2)))
6250       (+ 0
6251          (coerce (progn (tagbody (if (<= -1 (go tag1)) 0 c)
6252                                  tag1)
6253                         0)
6254                  'integer)))
6255   -115168466439)
6256  0)
6257
6258(deftest misc.356
6259  (let
6260   #+armedbear ((jvm::*catch-errors* nil))
6261   nil
6262   (call-compiled
6263     '(lambda ()
6264        (declare (optimize (speed 2) (space 2) (safety 1) (debug 0)
6265                           (compilation-speed 3)))
6266        (let ((*s7* 0))
6267          (dotimes (iv2 0 0)
6268            (block b3
6269              (block b3 (block b3 (setq *s7* (return-from b3 0))))))))))
6270  0)
6271
6272(deftest misc.357
6273  (let
6274   #+armedbear ((jvm::*catch-errors* nil))
6275   nil
6276   (call-compiled
6277     '(lambda (b)
6278        (declare (type (integer -1750881587721 -327383867) b))
6279        (declare (optimize (speed 1) (space 0) (safety 2) (debug 3)
6280                           (compilation-speed 3)))
6281        (denominator (block b2
6282                       (let* ((*s8* 0))
6283                         (setq *s8*
6284                               (case 0
6285                                 ((-26733 -244 -26253 -50028) 0)
6286                                 (t (return-from b2 b))))))))
6287    -1153135130306))
6288  1)
6289
6290(deftest misc.358
6291  (let
6292   #+armedbear ((jvm::*catch-errors* nil))
6293   nil
6294   (call-compiled
6295     '(lambda ()
6296        (declare (optimize (speed 2) (space 0) (safety 0) (debug 3)
6297                           (compilation-speed 1)))
6298        (rationalize (let* ((*s1* 0))
6299                       (block b3
6300                         (conjugate (let* ((v10
6301                                            (if (ldb-test (byte 0 0) 0)
6302                                                (return-from b3 *s1*)
6303                                              0)))
6304                                      (setq *s1* (return-from b3 0))))))))))
6305  0)
6306
6307(deftest misc.359
6308  (let
6309   #+armedbear ((jvm::*catch-errors* nil))
6310   nil
6311   (call-compiled
6312     '(lambda (a b)
6313        (declare (type (integer -477801566869 432060432661) a))
6314        (declare (type (integer 366578392 525704751) b))
6315        (declare (optimize (speed 3) (space 3) (safety 1) (debug 1)
6316                           (compilation-speed 1)))
6317        (max (case b
6318               ((0 -3 -2 -2 -3)
6319                (progn (tagbody (loop for lv1 below 2
6320                                      count (let* ((*s1* a))
6321                                              (setq *s1* (go 4))))
6322                                4)
6323                       0))
6324               (t 0))))
6325    287358622300 400248608))
6326  0)
6327
6328;;; Wrong return value
6329
6330(deftest misc.360
6331  (let ((c :good))
6332    (tagbody
6333      (dotimes (j 1 (setf c :bad)) (go done))
6334      done)
6335    c)
6336  :good)
6337
6338;;; sbcl bugs (0.8.10.4)
6339
6340;;; failed AVER: "(SUBSETP END END-STACK)"
6341(deftest misc.361
6342  (call-compiled
6343    '(lambda (a b c)
6344       (declare (notinline boole values denominator list))
6345       (declare
6346        (optimize (speed 2)
6347                  (space 0)
6348                  (safety 1)
6349                  (debug 0)
6350                  (compilation-speed 2)))
6351       (catch 'ct6
6352         (progv
6353             '(*s8*)
6354             (list 0)
6355           (let ((v9 (ignore-errors (throw 'ct6 0))))
6356             (denominator
6357              (progv nil nil (values (boole boole-and 0 v9))))))))
6358   1 2 3)
6359  0)
6360
6361;;; sbcl (0.8.10.15)
6362;;; Wrong return value: SB-KERNEL:*HANDLER-CLUSTERS*
6363(deftest misc.362
6364  (call-compiled
6365    '(lambda (b g h)
6366       (declare (optimize (speed 3) (space 3) (safety 2)
6367                          (debug 2) (compilation-speed 3)))
6368       (catch 'ct5
6369         (unwind-protect
6370             (labels ((%f15 (f15-1 f15-2 f15-3)
6371                            (rational (throw 'ct5 0))))
6372               (%f15 0
6373                     (apply #'%f15
6374                            0
6375                            h
6376                            (progn
6377                              (progv '(*s2* *s5*) (list 0 (%f15 0 g 0)) b)
6378                              0)
6379                            nil)
6380                     0))
6381           (common-lisp:handler-case 0))))
6382   1 2 3)
6383  0)
6384
6385;;; Wrong value: NIL
6386(deftest misc.363
6387  (call-compiled
6388    '(lambda (a)
6389       (declare (type (integer -17286401550789 15753784105886) a))
6390       (declare (optimize (speed 2) (space 2) (safety 2)
6391                          (debug 0) (compilation-speed 3)))
6392       (if (not (>= 0 (shiftf a 110236462073)))
6393           0
6394         (elt '(30 101 13 2 10 52 89 57) (min 7 (max 0 a)))))
6395   -3647332298473)
6396  57)
6397
6398;;; "full call to SB-KERNEL:DATA-VECTOR-REF"
6399(deftest misc.364
6400  (dotimes (iv1 2 0)
6401           (if (> iv1 iv1)
6402                 (svref #(2002 3778 1998 3466 530 3279 2033 521 4085)
6403                        (min 8 (max 0 iv1)))
6404                 0))
6405  0)
6406
6407;;; OpenMCL/darwin bug (12 May 2004)
6408(deftest misc.365
6409  (let* ((fn1
6410          '(lambda (a b c)
6411             (declare (type (integer -2 21) a))
6412             (declare (type (integer -5651364356 4324101092) b))
6413             (declare (type (integer -30766087 28182568) c))
6414             (declare (ignorable a b c))
6415             (declare (optimize (speed 3) (space 1) (safety 3) (debug 0) (compilation-speed 1)))
6416             (coerce (logxor b -1) 'integer)))
6417         (fn2
6418          '(lambda (a b c)
6419             (declare (notinline logxor coerce))
6420             (declare (optimize (speed 3) (space 0) (safety 3) (debug 2) (compilation-speed 2)))
6421             (coerce (logxor b -1) 'integer)))
6422         (vals '(9 -328421075 -6406890))
6423         (v1 (apply-compiled fn1 vals))
6424         (v2 (apply-compiled fn2 vals)))
6425    (if (eql v1 v2) :good (list v1 v2)))
6426  :good)
6427
6428;;; sbcl 0.8.10.24
6429;;;  Argument X is not a REAL: #<FUNCTION "CLOSURE" {947C46D}>
6430
6431(deftest misc.366
6432  (call-compiled
6433    '(lambda (a b c d e f g h i)
6434       (declare (type (integer 10 65866342) a))
6435       (declare (type (integer 151 702748905609) b))
6436       (declare (type (integer -60442925 167939283) c))
6437       (declare (type (integer 7706 10562) d))
6438       (declare (type (integer -97180326158 17496) e))
6439       (declare (type (integer -73249 -51989) f))
6440       (declare (type (integer -12 2718) g))
6441       (declare (type (integer -37832 591244) h))
6442       (declare (type (integer -2579781276 2108461452) i))
6443       (declare (ignorable a b c d e f g h i))
6444       (declare
6445        (optimize (speed 3)
6446                  (space 0)
6447                  (safety 0)
6448                  (debug 2)
6449                  (compilation-speed 2)))
6450       (elt '(11751 8554 7393 1924 3418)
6451            (min 4
6452                 (max 0
6453                      (block b4
6454                        (numerator
6455                         (flet ((%f5
6456                                 (f5-1 f5-2 f5-3
6457                                       &optional
6458                                       (f5-4 (prog1 0 (return-from b4 0) 0))
6459                                       (f5-5 d) (f5-6 0))
6460                                 0))
6461                           (numerator
6462                            (apply (constantly 0)
6463                                   0
6464                                   0
6465                                   (rationalize
6466                                    (unwind-protect
6467                                        (%f5 0
6468                                             c
6469                                             (%f5 0
6470                                                  c
6471                                                  (%f5 0
6472                                                       0
6473                                                       0
6474                                                       h
6475                                                       (%f5 0 0 0)
6476                                                       i)
6477                                                  a))
6478                                      (ignore-errors 0)))
6479                                   0
6480                                   nil)))))))))
6481   21956127 524275646496 101890987 8762 -88607922426 -55959 2177 147174
6482   38469170)
6483  11751)
6484
6485;;;  The value #<unknown pointer object, widetag=#x29 {A295F27}>
6486;;;  is not of type RATIONAL.
6487
6488(deftest misc.367
6489  (call-compiled
6490    '(lambda (a b)
6491       (declare (type (integer 11557968 115977463) a))
6492       (declare (type (integer -89510 -20616) b))
6493       (declare (optimize (speed 2) (space 3) (safety 1)
6494                          (debug 0) (compilation-speed 1)))
6495       (rational
6496        (flet ((%f17 (f17-1 f17-2) 0))
6497          (%f17
6498           (numerator
6499            (%f17
6500             (denominator
6501              (catch 'ct5
6502                (apply (constantly 0)
6503                       0
6504                       (unwind-protect
6505                           (catch 'ct2 (throw 'ct5 (progn (%f17 a b) a))))
6506                       nil)))
6507             0))
6508           (%f17 0 a)))))
6509   112475717 -25829)
6510  0)
6511
6512;;; sbcl 0.8.10.25
6513;;; "The value -3 is not of type (INTEGER -5 -2)."
6514(deftest misc.368
6515  (call-compiled
6516    '(lambda (a)
6517       (declare (type (integer -5 -2) a))
6518       (declare (ignorable a))
6519       (declare
6520        (optimize (speed 2) (space 3) (safety 1)
6521                  (debug 1) (compilation-speed 1)))
6522       (if
6523           (and (not (not (> a (numerator (setf a -4)))))
6524                (logbitp 0 (conjugate a)))
6525           0
6526         0))
6527   -3)
6528  0)
6529
6530;;; acl 6.2 (x86 linux trial edition, patched, 4/15/04)
6531;;; Error: `T' is not of the expected type `NUMBER'
6532(deftest misc.369
6533  (call-compiled
6534    '(lambda (a b c d e)
6535       (declare (type (integer -15256078323 33828721319) a))
6536       (declare (type (integer -44368 22872) b))
6537       (declare (type (integer -7623 -7522) c))
6538       (declare (type (integer -53 289) d))
6539       (declare (type (integer -1853649832248 2196352552304) e))
6540       (declare (ignorable a b c d e))
6541       (declare (optimize (speed 1) (space 2) (safety 0) (debug 0)
6542                          (compilation-speed 3)))
6543       (flet ((%f2 (f2-1 &optional &key (key1 0) (key2 e))
6544                   (labels ((%f5 (f5-1 f5-2 f5-3 &optional &key
6545                                       (key1
6546                                        (aref #(397)
6547                                              (min
6548                                               0
6549                                               (max
6550                                                0
6551                                                (let ((v7 (make-array nil :initial-element d)))
6552                                                  (reduce
6553                                                   #'(lambda (lmv5 lmv6) key1)
6554                                                   (vector f2-1 0)
6555                                                   :start 0))))))
6556                                       &allow-other-keys)
6557                                 0))
6558                     0)))
6559         b))
6560   -2821485338 -35420 -7622 135 9592294022)
6561  -35420)
6562
6563;;; Lispworks personal edition 4.3 (x86 linux)
6564;;; Inconsistent return value
6565(deftest misc.370
6566  (call-compiled
6567    '(lambda (a b c)
6568       (declare (type (integer -3070433 6) a))
6569       (declare (type (integer -5 -3) b))
6570       (declare (type (integer -4433759745778 -1) c))
6571       (declare (ignorable a b c))
6572       (declare
6573        (optimize (speed 3)
6574                  (space 1)
6575                  (safety 0)
6576                  (debug 2)
6577                  (compilation-speed 3)))
6578       (flet ((%f15
6579               (f15-1 f15-2
6580                      &optional (f15-3 0)
6581                      (f15-4 (denominator (setq c -4214677583716))) (f15-5 0)
6582                      &key (key1 c) &allow-other-keys)
6583               (progv '(*s1* *s5* *s7*) (list f15-2 0 f15-1) key1)))
6584         (%f15 0 (%f15 c 0) 0)))
6585   -1233959 -4 -2643533316361)
6586  -4214677583716)
6587
6588;;; Armed Bear CL
6589
6590;;; inconsistent stack height
6591(deftest misc.371
6592  (let
6593   #+armedbear ((jvm::*catch-errors* nil))
6594   nil
6595   (call-compiled
6596     '(lambda (a b c)
6597        (declare (type (integer -7288 10764) a))
6598        (declare (type (integer -7 24) b))
6599        (declare (type (integer 7951930344 11209871544) c))
6600        (declare (ignorable a b c))
6601        (declare (optimize (speed 2) (space 2) (safety 0) (debug 0)
6602                           (compilation-speed 0)))
6603        (rationalize (block b1
6604                       (if b
6605                           (return-from b1
6606                             (progn (tagbody (return-from b1
6607                                               (let* ((*s1*
6608                                                       (cons (go tag3)
6609                                                             0)))
6610                                                 (declare (dynamic-extent
6611                                                           *s1*))
6612                                                 0))
6613                                             tag3)
6614                                    0))
6615                         0))))
6616    -5566 9 10557204445))
6617  0)
6618
6619;;; 0 is not of type LIST
6620(deftest misc.372
6621  (call-compiled
6622    '(lambda (a b c)
6623       (declare (type (integer -738508 627) a))
6624       (declare (type (integer -100241328874 104421) b))
6625       (declare (type (integer -71651668566 4932238952300) c))
6626       (declare (ignorable a b c))
6627       (declare (optimize (speed 3) (space 2) (safety 1) (debug 3)
6628                          (compilation-speed 2)))
6629       (sbit #*0
6630             (min 0
6631                  (max 0
6632                       (multiple-value-bind (v1)
6633                           (cons c
6634                                 (truncate 0
6635                                           (min -42 0)))
6636                         (cdr v1))))))
6637   -657195 -10801112339 -4291316763)
6638  0)
6639
6640;;; inconsistent stack height
6641(deftest misc.373
6642  (let
6643   #+armedbear ((jvm::*catch-errors* nil))
6644   nil
6645   (call-compiled
6646     '(lambda (a b c)
6647        (declare (type (integer 0 179061) a))
6648        (declare (type (integer -15793 42532) b))
6649        (declare (type (integer -2 0) c))
6650        (declare (ignorable a b c))
6651        (declare (optimize (speed 3) (space 0) (safety 2) (debug 1)
6652                           (compilation-speed 0)))
6653        (reduce 'logxor
6654                (list 0 b 0 0
6655                      a 0 0 0
6656                      (block b6
6657                        (let* ((v6 (cons (if c (return-from b6 0) 0) b)))
6658                          0))
6659                      0)
6660                :end 6
6661                :from-end t))
6662    141814 1445 -2))
6663  142419)
6664
6665(deftest misc.374
6666  (let
6667   #+armedbear ((jvm::*catch-errors* nil))
6668   nil 
6669   (call-compiled
6670     '(lambda (a b)
6671        (declare (type (integer -99 4) a))
6672        (declare (type (integer 35621436 36172433) b))
6673        (declare (ignorable a b))
6674        (declare (optimize (speed 2) (space 1) (safety 3) (debug 1)
6675                           (compilation-speed 0)))
6676        (lognand (let ((v6 0)) (declare (dynamic-extent v6)) v6)
6677                 (block b6
6678                   (let* ((v10
6679                           (cons (expt (case 0
6680                                         ((30207) (return-from b6 0))
6681                                         (t b))
6682                                       0)
6683                                 0)))
6684                     (declare (dynamic-extent v10))
6685                     0))))
6686    -57 35725118))
6687  -1)
6688
6689;;; abcl (23 May 2004)
6690;;; 0 is not of type LIST
6691(deftest misc.375
6692  (call-compiled
6693    '(lambda (a b c d e f)
6694       (declare (type (integer -3172868 25583841) a))
6695       (declare (type (integer -8176159 1565888775976) b))
6696       (declare (type (integer -2601325109 147819602) c))
6697       (declare (type (integer -502316251909 515874281072) d))
6698       (declare (type (integer 174 2604648) e))
6699       (declare (type (integer 1627646459 3124243119) f))
6700       (declare (ignorable a b c d e f))
6701       (declare (optimize (speed 3) (space 0) (safety 3) (debug 2)
6702                          (compilation-speed 2)))
6703       (let* ((*s6* (make-array nil :initial-element 0 :adjustable t)))
6704         (if (logbitp 0
6705                      (denominator (prog2 (truncate (dotimes (iv3 0 0)
6706                                                      (progn 0)))
6707                                       (multiple-value-bind (*s7*)
6708                                           (cons d 0)
6709                                         (cdr *s7*)))))
6710             0
6711           0)))
6712   12851164 182468232812 -2243976802 309299185674 2538150 1855615980)
6713  0)
6714
6715;;; abcl (25 May 2004)
6716;;; 0 is not of type LIST
6717(deftest misc.376
6718  (call-compiled
6719    '(lambda ()
6720       (declare (optimize (speed 1) (space 1) (safety 2) (debug 1)
6721                          (compilation-speed 0)))
6722       (dotimes (iv4 3
6723                     (multiple-value-bind (*s6*) (cons 0 0)
6724                       (progn (cdr *s6*) 0)))
6725         (floor (rational (let ((*s2*
6726                                 (rational (common-lisp:handler-case 0))))
6727                            0))))))
6728  0)
6729
6730(deftest misc.377
6731  (call-compiled
6732    '(lambda (e) ; (a b c d e)
6733       (declare (type (integer -46778182694 512) e))
6734       (declare (optimize (speed 3) (space 3) (safety 2) (debug 2)
6735                          (compilation-speed 3)))
6736       (if (block b3
6737             (numerator (progn (tagbody (truncate (dotimes (iv3 0 0)
6738                                                    (block b3 0)))
6739                                        (multiple-value-bind (*s5*)
6740                                            (cons 0 e)
6741                                          (rationalize (cdr *s5*))))
6742                               0)))
6743           0
6744         0))
6745   10)
6746  0)
6747
6748(deftest misc.378
6749  (call-compiled
6750    '(lambda (c)
6751       (declare (optimize (speed 1) (space 0) (safety 1) (debug 3)
6752                          (compilation-speed 2)))
6753       (dotimes (iv4 3 0)
6754         (restart-case (round (multiple-value-bind (*s6*) (cons c 0)
6755                                (car *s6*))))))
6756   1)
6757  0)
6758
6759(deftest misc.379
6760  (call-compiled
6761    '(lambda ()
6762       (declare (optimize (speed 2) (space 0) (safety 2) (debug 2)
6763                          (compilation-speed 1)))
6764       (values (floor 0) (multiple-value-bind (v3) (cons 0 0) (car v3)))))
6765  0 0)
6766
6767;;; gcl (31 May 2004, cvs head)
6768;;; Error in APPLY [or a callee]: Expected a FIXNUM
6769;;; Also fails in cmucl 1/2003
6770(deftest misc.380
6771  (call-compiled
6772    '(lambda (a)
6773       (declare (type (integer -1397457 1846252) a))
6774       (declare (optimize (speed 2) (space 2) (safety 1)
6775                          (debug 3) (compilation-speed 3)))
6776       (let ((v9 (make-array nil :initial-element 0)))
6777         (declare (dynamic-extent v9))
6778         (block b8
6779           (let ((*s1* 0))
6780             (let ((*s4* (let
6781                             ((*s1*
6782                               (return-from b8
6783                                 (rational
6784                                  (setf (aref v9)
6785                                        (deposit-field -5
6786                                                       (byte 20 30) a))))))
6787                           0)))
6788               (let ((*s8* (cons 0 0))) 0))))))
6789   399997)
6790  1125898833500797)
6791
6792;; This also fails in cmucl (11/2003 image).  This case has not been fully
6793;; pruned for cmucl.
6794;;
6795;; Error in function LISP::ASSERT-ERROR:  The assertion (NOT C::WIN) failed.
6796(deftest misc.381
6797  (call-compiled
6798    '(lambda (a)
6799       (declare (type (integer -1397457 1846252) a))
6800       (declare (optimize (speed 2) (space 2) (safety 1)
6801                          (debug 3) (compilation-speed 3)))
6802       (let ((v9 (make-array nil :initial-element 0)))
6803         (declare (dynamic-extent v9))
6804         (block b8
6805           (let ((s1 0))
6806             (let ((s4 (let
6807                             ((s1
6808                               (return-from b8
6809                                 (rational
6810                                  (setf (aref v9)
6811                                        (deposit-field -5
6812                                                       (byte 20 30) a))))))
6813                           0)))
6814               (let ((s8 (cons 0 0))) 0))))))
6815   399997)
6816  1125898833500797)
6817
6818                           
6819;;; gcl (31 May 2004, cvs head)
6820;;; Error in SYSTEM:ASET [or a callee]: Expected a FIXNUM
6821
6822(deftest misc.382
6823  (call-compiled
6824    '(lambda (b)
6825       (declare (type (integer -65822755520 31689335872) b))
6826       (declare (optimize (speed 2) (space 2) (safety 3)
6827                          (debug 0) (compilation-speed 1)))
6828       (let ((s8 (make-array nil :initial-element
6829                             (catch 'ct4
6830                               (complex
6831                                (dotimes (iv1 1 0)
6832                                  (rational (throw 'ct4 b)))
6833                                0)))))
6834         (elt '(13423701584)
6835              (min 0
6836                   (max 0
6837                        (rational
6838                         (let ((s3 (make-array nil :initial-element 0)))
6839                           (if (ldb-test (byte 0 0)
6840                                         (shiftf (aref s8)
6841                                                 (aref s8)))
6842                               0 0))))))))
6843   -38169486910)
6844  13423701584)
6845
6846;;; cmucl 11/2003
6847;;; Wrong value
6848(deftest misc.383
6849  (call-compiled
6850    '(lambda (a b c)
6851       (declare (type (integer -93650 118967004056) a))
6852       (declare (type (integer -429173946 -3892) b))
6853       (declare (type (integer -229669685 -50537386) c))
6854       (declare (ignorable a b c))
6855       #+cmu (declare (optimize (extensions:inhibit-warnings 3)))
6856       (declare
6857        (optimize (speed 3) (space 1) (safety 0) (debug 3) (compilation-speed 2)))
6858       (logorc2
6859        (let* ((*s3* (cons 0 a)))
6860          (declare (dynamic-extent *s3*))
6861          (shiftf c -124766263))
6862        411942919))
6863   79909316946 -347537841 -210771963)
6864  -142606339)
6865
6866;;; abcl 7 Jun 2004
6867;;; catch-throw now enabled in the abcl compiler
6868
6869;;; Inconsistent stack height
6870(deftest misc.384
6871  (let
6872      #+armedbear ((jvm::*catch-errors* nil))
6873      nil
6874      (call-compiled
6875        '(lambda ()
6876           (catch 'ct8 (throw 'ct8 (catch 'ct7 0))))))
6877  0)
6878
6879(deftest misc.385
6880  (let
6881      #+armedbear ((jvm::*catch-errors* nil))
6882      nil
6883      (call-compiled '(lambda () (values 1 (catch 'ct2 2)))))
6884  1 2)
6885
6886(deftest misc.386
6887  (let
6888      #+armedbear ((jvm::*catch-errors* nil))
6889      nil
6890      (call-compiled '(lambda () (values (rationalize (catch 'ct1 1)) 2))))
6891  1 2)
6892
6893(deftest misc.387
6894  (let
6895      #+armedbear ((jvm::*catch-errors* nil))
6896      nil
6897      (call-compiled '(lambda () (block b1 (catch 'ct1 (throw 'ct1 (return-from b1 0)))))))
6898  0)
6899
6900;;; ecl (cvs head, 13 June 2004)
6901;;; Problems with multiple-value-setq
6902
6903; NIL cannot be coerced to a C int.
6904
6905(deftest misc.388
6906  (call-compiled
6907    '(lambda (a b c)
6908       (declare (type (integer 200077 60836768) a))
6909       (declare (type (integer 339831915 371006999) b))
6910       (declare (type (integer -13 5553) c))
6911       (declare (ignorable a b c))
6912       (declare (optimize (speed 2) (space 1) (safety 0) (debug 0)
6913                          (compilation-speed 0)))
6914       (dotimes (iv4 2 0) (multiple-value-setq (c) 4212)))
6915   8959928 366395687 5048)
6916  0)
6917
6918;;; wrong return value
6919
6920(deftest misc.389
6921  (call-compiled
6922    '(lambda (a b c)
6923       (declare (type (integer -49972981888 -48068810368) a))
6924       (declare (type (integer -452283089 -27620701) b))
6925       (declare (type (integer -24815 15089) c))
6926       (declare (ignorable a b c))
6927       (declare (optimize (speed 2) (space 1) (safety 2) (debug 1)
6928                          (compilation-speed 0)))
6929       (multiple-value-setq (c) 8015))
6930   -49966124671 -68547159 12944)
6931  8015)
6932
6933;;; Evaluation order bug
6934(deftest misc.390
6935  (call-compiled
6936    '(lambda (a b c)
6937       (declare (type (integer -257 -140) a))
6938       (declare (type (integer -1 1069496658) b))
6939       (declare (type (integer -4 2001960914944) c))
6940       (declare (ignorable a b c))
6941       (declare (optimize (speed 2) (space 0) (safety 1) (debug 0)
6942                          (compilation-speed 1)))
6943       (labels ((%f12 (f12-1 &optional (f12-2 (setq b 63838027)) &key
6944                             (key1 0) (key2 0))
6945                      b))
6946         (boole boole-orc2 b (let ((*s3* (%f12 0))) -14))))
6947   -173 1028908375 1289968133290)
6948  1028908383)
6949
6950;;; sbcl 0.8.14.14
6951;;; "The value NIL is not of type SB-C::LVAR"
6952
6953(deftest misc.391
6954  (call-compiled
6955    '(lambda (a b)
6956       (declare (optimize (speed 2) (space 0) (safety 0)
6957                          (debug 1) (compilation-speed 3)))
6958       (let* ((v5 (cons b b)))
6959         (declare (dynamic-extent v5))
6960         a))
6961   'x 'y)
6962  x)
6963
6964;;; sbcl 0.8.14.18
6965;;; "The value #<SB-C::COMBINATION :FUN # :ARGS (# # #) {C44D1C1}>
6966;;;   is not of type SB-C::REF."
6967
6968(deftest misc.392
6969  (call-compiled
6970    '(lambda (a b)
6971       (declare (notinline /=))
6972       (declare (optimize (speed 1) (space 2) (safety 1)
6973                          (debug 3) (compilation-speed 3)))
6974       (prog2 0 0 (loop for lv4 below 3 count (or b (/= b)))))
6975   1 2)
6976  0)
6977
6978;;; cmucl (2004-09 snapshot)
6979;;; "Error in function C::CORE-CALL-TOP-LEVEL-LAMBDA:
6980;;;   Unresolved forward reference."
6981;;; (in C::CORE-CALL-TOP-LEVEL-LAMBDA)
6982
6983(deftest misc.393
6984  (call-compiled
6985    '(lambda (a b)
6986       (declare (type (integer -995205 1035654) a))
6987       (declare (type (integer 473 114804994247) b))
6988       (declare (ignorable a b))
6989       #+cmu (declare (optimize (extensions:inhibit-warnings 3)))
6990       (declare
6991        (optimize (debug 3) (speed 2) (compilation-speed 0) (space 3)
6992                  (safety 3)))
6993       (labels ((%f7
6994                 (f7-1 f7-2 f7-3
6995                       &optional (f7-4 (lcm (if (>= b a) 0 a))) (f7-5 0)
6996                       &key)
6997                 0))
6998         (progn (%f7 (%f7 b a a b) b 0) 0)))
6999   447930 66120263479)
7000  0)
7001
7002(deftest misc.393a
7003  (call-compiled
7004    '(lambda (a b)
7005       (declare (type (integer -76 86) a))
7006       (declare (type (integer -13771285280 109) b))
7007       (declare (ignorable a b))
7008       #+cmu (declare (optimize (extensions:inhibit-warnings 3)))
7009       (declare
7010        (optimize (safety 3) (space 1) (debug 2) (compilation-speed 3)
7011                  (speed 3)))
7012       (dotimes (iv1 2 0)
7013         (case (min -3693810 a iv1) ((26 -4) (ldb (byte 13 0) a)) (t b))))
7014   56 -1579426331)
7015  0)
7016
7017;;; cmucl (2004-09 snapshot)
7018;;; Wrong values
7019
7020(deftest misc.394
7021  (call-compiled
7022    '(lambda (a b)
7023       (declare (type (integer -76645001 98715919) a))
7024       (declare (type (integer 0 856472753903) b))
7025       (declare (ignorable a b))
7026       #+cmu (declare (optimize (extensions:inhibit-warnings 3)))
7027       (declare
7028        (optimize (speed 2) (space 0) (debug 3) (compilation-speed 0)
7029                  (safety 3)))
7030       (logeqv 0 b))
7031   -34528661 843541658238)
7032  -843541658239)
7033
7034(deftest misc.395
7035  (call-compiled
7036    '(lambda (a b)
7037       (declare (type (integer 6429252570156 8761983588786) a))
7038       (declare (type (integer -400378288 4971722) b))
7039       (declare (ignorable a b))
7040       #+cmu (declare (optimize (extensions:inhibit-warnings 3)))
7041       (declare
7042        (optimize (debug 3) (speed 3) (space 2) (safety 0)
7043                  (compilation-speed 3)))
7044       (+ (shiftf a 8496033756259) (min 0 b)))
7045   8369430915156 -369704905)
7046  8369061210251)
7047
7048;;; "The assertion (EQ (CAR C::STACK) C::CONT) failed."
7049(deftest misc.396
7050  (call-compiled
7051    '(lambda (a b)
7052       (declare (type (integer -1601 485) a))
7053       (declare (type (integer -190428560464 -1444494) b))
7054       (declare (ignorable a b))
7055       #+cmu (declare (optimize (extensions:inhibit-warnings 3)))
7056       (declare
7057        (optimize (debug 0) (space 2) (speed 0) (safety 3)
7058                  (compilation-speed 2)))
7059       (apply (constantly 0) 0 (list (signum b))))
7060   -1365 -46960621335)
7061  0)
7062
7063;;; "The assertion (EQ (C::FUNCTIONAL-KIND (C::LAMBDA-HOME C::FUN))
7064;;;      :TOP-LEVEL) failed."
7065(deftest misc.397
7066  (call-compiled
7067    '(lambda (a b)
7068       (declare (type (integer -168258525920 -2044) a))
7069       (declare (type (integer -522 54) b))
7070       (declare (ignorable a b))
7071       #+cmu (declare (optimize (extensions:inhibit-warnings 3)))
7072       (declare
7073        (optimize (speed 0) (safety 3) (compilation-speed 1) (space 0)
7074                  (debug 2)))
7075       (labels ((%f4 (f4-1 f4-2 &key)
7076                     (flet ((%f7 (f7-1 f7-2 f7-3 &optional &key (key1 a))
7077                                 (progv '(*s1* *s6* *s2*) (list a 0 key1) f4-1)))
7078                       f4-2)))
7079         (apply #'%f4 (list a 0))))
7080   -156882103995 -38)
7081  0)
7082
7083;;; "Error in function C::CLOSURE-POSITION:
7084;;;   Can't find #<C::LAMBDA-VAR #x594259BD
7085;;;                  NAME= IV1
7086;;;                  TYPE= #<NUMERIC-TYPE (MOD 3)>>"
7087(deftest misc.398
7088  (call-compiled
7089    '(lambda (a b)
7090       (declare (type (integer -319 7353) a))
7091       (declare (type (integer 31751 4233916489) b))
7092       (declare (ignorable a b))
7093       #+cmu (declare (optimize (extensions:inhibit-warnings 3)))
7094       (declare
7095        (optimize (safety 3) (compilation-speed 1) (debug 1) (speed 0)
7096                  (space 0)))
7097       (conjugate
7098        (if t
7099            (labels ((%f12 (f12-1 f12-2 f12-3)
7100                           0))
7101              (%f12 0 b 0))
7102          (dotimes (iv1 2 0) (catch 'ct2 a)))))
7103   4430 3476635674)
7104  0)
7105
7106;;; "NIL is not of type C::CONTINUATION"
7107;;; in C::FIND-PUSHED-CONTINUATIONS
7108(deftest misc.399
7109  (call-compiled
7110    '(lambda (a)
7111       (declare (type (integer -3 1) a))
7112       (declare (ignorable a))
7113       #+cmu (declare (optimize (extensions:inhibit-warnings 3)))
7114       (declare
7115        (optimize (space 0) (debug 0) (speed 3) (compilation-speed 2)
7116                  (safety 3)))
7117       (catch 'ct8 (logior a -457019 -1)))
7118   0)
7119  -1)
7120
7121;;; Wrong value
7122(deftest misc.400
7123  (call-compiled
7124    '(lambda (a)
7125       (declare (type (integer 3376 4762) a))
7126       (declare (ignorable a))
7127       #+cmu (declare (optimize (extensions:inhibit-warnings 3)))
7128       (declare
7129        (optimize (debug 0) (safety 0) (space 0) (compilation-speed 3)
7130                  (speed 3)))
7131       (case (lognand 775 a) ((-7) 0) (t 4)))
7132   4182)
7133  0)
7134
7135;;; Invalid number of arguments: 1
7136(deftest misc.401
7137  (call-compiled
7138    '(lambda (a)
7139       (declare (type (integer 7299 257071514003) a))
7140       (declare (ignorable a))
7141       #+cmu (declare (optimize (extensions:inhibit-warnings 3)))
7142       (declare
7143        (optimize (compilation-speed 2) (space 1) (safety 2) (speed 1)
7144                  (debug 2)))
7145       (logeqv (setq a 220250126156) 0))
7146   157474319912)
7147  -220250126157)
7148
7149;;; "The assertion (EQ (CAR C::NEW-STACK) C::CONT) failed."
7150(deftest misc.402
7151  (call-compiled
7152    '(lambda (a)
7153       (declare (type (integer -19116544 21344004) a))
7154       (declare (ignorable a))
7155       #+cmu (declare (optimize (extensions:inhibit-warnings 3)))
7156       (declare
7157        (optimize (space 1) (safety 3) (debug 1) (compilation-speed 0)
7158                  (speed 0)))
7159       (dotimes (iv3 2 0)
7160         (progn
7161           (apply (constantly 0)
7162                  (list
7163                   (let* ((*s1* 0))
7164                     *s1*)))
7165           0)))
7166   10)
7167  0)
7168
7169;;; "The assertion C::INDIRECT failed."
7170(deftest misc.403
7171  (call-compiled
7172    '(lambda (a)
7173       (declare (type (integer -6456 -32) a))
7174       (declare (ignorable a))
7175       #+cmu (declare (optimize (extensions:inhibit-warnings 3)))
7176       (declare
7177        (optimize (space 3) (safety 1) (compilation-speed 1) (speed 0)
7178                  (debug 0)))
7179       (dotimes (iv1 0 a) (loop for lv4 below 3 sum (catch 'ct8 0))))
7180   -1648)
7181  -1648)
7182
7183;;; From abcl (cvs, 15 Sept 2004)
7184;;; Inconsistent stack height
7185
7186(deftest misc.404
7187  (let #+armedbear ((jvm::*catch-errors* nil))
7188       nil
7189       (call-compiled
7190         '(lambda (a b)
7191            (declare (type (integer -77007578505 7500480849) a))
7192            (declare (type (integer 211464 53140083) b))
7193            (declare (ignorable a b))
7194            (declare (optimize (compilation-speed 0) (speed 2) (debug 3)
7195                               (safety 1) (space 3)))
7196            (progn (tagbody (let ((v3
7197                                   (cons (case a
7198                                           ((13 5 -9 2 -13) (go tag8))
7199                                           (t 0))
7200                                         0)))
7201                              0)
7202                            tag8)
7203                   a))
7204        -1068524571 20786758))
7205  -1068524571)
7206
7207(deftest misc.405
7208  (let #+armedbear ((jvm::*catch-errors* nil))
7209       nil
7210       (call-compiled
7211         '(lambda (a b)
7212            (declare (type (integer -82196 13938) a))
7213            (declare (type (integer -44152792 -15846835) b))
7214            (declare (ignorable a b))
7215            (declare (optimize (compilation-speed 3) (safety 2) (speed 3)
7216                               (space 0) (debug 0)))
7217            (block b5
7218              (let ((*s7*
7219                     (cons (if (position (if (eql 0 0)
7220                                             (return-from b5
7221                                               (return-from b5
7222                                                 (let ((*s6* (cons b a))) 0)))
7223                                           b)
7224                                         #(23)
7225                                         :test-not
7226                                         'eql)
7227                               0
7228                             0)
7229                           b)))
7230                0)))
7231        -10305 -26691848))
7232  0)
7233
7234(deftest misc.406
7235  (let #+armedbear ((jvm::*catch-errors* nil))
7236       nil
7237       (call-compiled
7238         '(lambda (a)
7239            (declare (type (integer -1 1412366903315) a))
7240            (declare (ignorable a))
7241            (declare (optimize (debug 3) (safety 3) (space 3)
7242                               (compilation-speed 1) (speed 2)))
7243            (progn (tagbody (case 0 ((1 0 4) (values (go 1) 0)) (t 0))
7244                            1)
7245                   0))
7246        251841706892))
7247  0)
7248
7249;;; Incorrect binding
7250(deftest misc.407
7251  (call-compiled
7252    '(lambda (a)
7253       (declare (type (integer -324 175) a))
7254       (declare (ignorable a))
7255       (declare (optimize (safety 0) (space 0) (speed 2) (debug 0)
7256                          (compilation-speed 0)))
7257       (multiple-value-bind (v5) (cons (truncate 0) a) (cdr v5)))
7258   -279)
7259  -279)
7260
7261;;; Stack size too large
7262
7263(deftest misc.408
7264  (let #+armedbear ((jvm::*catch-errors* nil))
7265       nil
7266       (call-compiled
7267         '(lambda (a)
7268            (declare (type (integer 0 0) a))
7269            (declare (ignorable a))
7270            (declare (optimize (compilation-speed 0) (safety 3) (speed 0)
7271                               (debug 1) (space 0)))
7272            (progn (tagbody (dotimes (iv4 0
7273                                          (let ((v5 (cons 0 (if (go 3) 0 0)))) 0))
7274                              (progn 0))
7275                            3)
7276                   (ash 0 (min 16 0))))
7277        0))
7278  0)
7279
7280;;; ecl (07 Oct 2004)
7281;;; (0 . 0) is not of type REAL
7282
7283(deftest misc.409
7284  (call-compiled
7285    '(lambda (a b)
7286       (declare (type (integer -40524 53538) a))
7287       (declare (type (integer -5967075 -235) b))
7288       (declare (ignorable a b))
7289       (declare (optimize (speed 2) (safety 1) (space 2)
7290                          (compilation-speed 3) (debug 0)))
7291       (labels ((%f2 (f2-1 f2-2 &optional (f2-3 0) (f2-4 a)) 0))
7292         (apply #'%f2 a
7293                (%f2 b
7294                     (flet ((%f12 (f12-1 f12-2 f12-3 &optional &key
7295                                         (key1 0) (key2 0))
7296                                  (%f2 0 0)))
7297                       (reduce #'(lambda (lmv2 lmv1) (%f2 0 0 a))
7298                               (list 0 0 a 0 0 0 a) :end 7))
7299                     0)
7300                nil)))
7301   -7465 -3590953)
7302  0)
7303
7304#|
7305;;; A bug was found in the compiler.  Contact worm@arrakis.es.
7306
7307Broken at C::WT-MAKE-CLOSURE.
7308|#
7309(deftest misc.410
7310  (call-compiled
7311    '(lambda ()
7312       (declare (optimize (safety 0) (space 1) (compilation-speed 0)
7313                          (speed 2) (debug 0)))
7314       (let ((*s2* 0))
7315         (declare (special *s2*))
7316         (reduce #'(lambda (lmv1 lmv2) *s2*) (vector 0) :end 1
7317                 :start 0))))
7318  0)
7319
7320;;; THROW: The catch CT2 is undefined.
7321(deftest misc.411
7322  (call-compiled
7323    '(lambda ()
7324       (declare (optimize (safety 2) (debug 0) (space 0)
7325                          (compilation-speed 2) (speed 0)))
7326       (catch 'ct2 (values 0 (throw 'ct2 0)))
7327       0))
7328  0)
7329
7330;;; /tmp/eclDD7aumXi8.c: In function `LC3':
7331;;; /tmp/eclDD7aumXi8.c:9: `env0' undeclared (first use in this function)
7332(deftest misc.412
7333  (call-compiled
7334    '(lambda (a b)
7335       (declare (type (integer -25409 1946) a))
7336       (declare (type (integer -215956065 223815244) b))
7337       (declare (ignorable a b))
7338       (declare (optimize (compilation-speed 2) (space 3) (debug 2)
7339                          (safety 1) (speed 3)))
7340       (complex (flet ((%f15 (f15-1 &optional &key (key1 0)) 0))
7341                  (reduce #'(lambda (lmv6 lmv1) (%f15 lmv1))
7342                          (list b 0)))
7343                0))
7344   -21802 -105983932)
7345  0)
7346
7347;;; Different resutls: #<a type-error>, 0
7348(deftest misc.413
7349  (call-compiled
7350    '(lambda (a b)
7351       (declare (type (integer -120206733 37762378) a))
7352       (declare (type (integer 2777758072 5675328792) b))
7353       (declare (ignorable a b))
7354       (declare (optimize (compilation-speed 3) (space 3) (debug 3)
7355                          (safety 0) (speed 1)))
7356       (labels ((%f8 (f8-1 f8-2 &optional &key (key1 0))
7357                     (let* ((v2 (ash f8-1 (min 63 a)))) 0)))
7358         (ignore-errors
7359           (logand (apply #'%f8 0 b nil)
7360                   (unwind-protect
7361                       0
7362                     (ash (%f8 0 0)
7363                          (min 48
7364                               (flet
7365                                   ((%f12
7366                                     (f12-1 f12-2 &optional &key
7367                                            (key1 a) (key2 b)
7368                                            &allow-other-keys)
7369                                     0))
7370                                 b))))))))
7371   -4794909 4095236669)
7372  0)
7373
7374;;; sbcl 0.8.14.28
7375;;; Wrong value computed
7376
7377(deftest misc.414
7378  (call-compiled
7379    '(lambda (c)
7380       (declare (optimize (speed 1) (space 3) (compilation-speed 3)
7381                          (debug 3) (safety 1)))
7382       (if (setq c 2)
7383           (case (shiftf c 1) ((2) c) (t 0))
7384         0))
7385   0)
7386  1)
7387
7388;;; cmucl
7389;;; Sept. 2004 snapshot
7390;;; Wrong return value
7391
7392(deftest misc.415
7393  (funcall
7394   #'(lambda (a c)
7395       (catch 'ct2
7396         (flet ((%f17 (&optional x &key)
7397                        (let* ((y (cons (dotimes (iv3 0)) 0)))
7398                          a)))
7399           c)))
7400   :bad :good)
7401  :good)
7402
7403;;; Wrong value
7404(deftest misc.416
7405  (call-compiled
7406    '(lambda (b)
7407       (declare (type (integer 12052668 22838464) b))
7408       (declare (ignorable a b c))
7409       (declare        (optimize (compilation-speed 3) (debug 2) (speed 1) (space 0)
7410                          (safety 3)))
7411       (min (mask-field (byte 2 18) b) 89582))
7412   13891743)
7413  0)
7414
7415;;; Invalid number of arguments: 3
7416(deftest misc.417
7417  (call-compiled
7418    '(lambda (c)
7419     (declare (type (integer 995 22565094) c))
7420     (declare (optimize (safety 2) (debug 1) (space 0) (compilation-speed 2)
7421                        (speed 1)))
7422     (numerator (floor (numerator (deposit-field 0 (byte 0 0) c)))))
7423   17190042)
7424  17190042)
7425
7426;;; Invalid number of arguments: #<Unknown Immediate Object, lowtag=#b110, type=#x66
7427;;;                               {598FCC66}>
7428(deftest misc.418
7429  (call-compiled
7430    '(lambda (a b c)
7431       (declare (type (integer 1670923021 2536883848) a))
7432       (declare (ignorable a b c))
7433       (declare (optimize (safety 3) (compilation-speed 3) (speed 1) (debug 1)
7434                          (space 2)))
7435       (if (logior (setf c 67) 0 a) a 0))
7436   2161404325 -1968715305 83)
7437  2161404325)
7438
7439;;;   nil is not of type c::continuation
7440;;; (c::convert-type-check #<Continuation c1>
7441;;;                       ((nil #<numeric-type integer> #<numeric-type integer>)))
7442
7443(deftest misc.419
7444  (call-compiled
7445    '(lambda ()
7446       (declare (optimize (safety 3) (speed 3) (compilation-speed 1) (space 1)
7447                          (debug 2)))
7448       (boole boole-set 0 (case 2 ((0) 0) (t (numerator (catch 'ct2 0)))))))
7449  -1)
7450
7451;;;  nil is not of type c::continuation
7452;;; (c::convert-type-check #<Continuation c1>
7453;;;                       ((nil #<union-type real> #<union-type real>)))
7454
7455(deftest misc.420
7456  (call-compiled
7457    '(lambda (a b)
7458       (declare (type (integer -65954801 6519292634236) a))
7459       (declare (type (integer 5721249203 36508717226) b))
7460       (declare (ignorable a b))
7461       (declare
7462        (optimize (space 3) (compilation-speed 2) (safety 3) (speed 0)
7463                  (debug 2)))
7464       (flet ((%f14 (f14-1 f14-2 &key)
7465                    (prog2 0 f14-2 (min (catch 'ct4 (floor 120378948 (max 22 a)))))))
7466         (reduce #'(lambda (lmv6 lmv5) (%f14 0 0))
7467                 (vector 0 0 0)
7468                 :start
7469                 0
7470                 :from-end
7471                 t)))
7472   6313133774518 10840050742)
7473  0)
7474
7475;;; Invalid number of arguments: 1
7476(deftest misc.421
7477  (call-compiled
7478    '(lambda (a)
7479       (declare (optimize (debug 0) (space 2) (compilation-speed 1) (safety 0)
7480                          (speed 0)))
7481       (imagpart (block b8 (logior (catch 'ct7 (return-from b8 a)) -1123785))))
7482   -1021899)
7483  0)
7484
7485;;; Invalid number of arguments: 2
7486(deftest misc.422
7487  (call-compiled
7488    '(lambda (a)
7489       (declare (type (integer -13 -3) a))
7490       (declare (optimize (space 2) (debug 1) (safety 1) (speed 2)
7491                          (compilation-speed 1)))
7492       (logorc2 (sbit #*0010000011101010 (min 15 (max 0 0))) a))
7493   -7)
7494  6)
7495
7496;;;   nil is not of type c::continuation
7497;;; (c::convert-type-check #<Continuation c1>
7498;;;                        ((t #<member-type null> #<union-type real>)))
7499(deftest misc.423
7500  (call-compiled
7501    '(lambda (a b)
7502       (declare (type (integer 0 1) a))
7503       (declare (type (integer -8031148528 5509023941) b))
7504       #+cmu (declare (optimize (extensions:inhibit-warnings 3)))
7505       (declare (optimize (space 2) (safety 3) (debug 1) (compilation-speed 3) (speed 2)))
7506       (min 0 (ignore-errors (logand 0 b 388))))
7507   0 4604112015)
7508  0)
7509
7510;;; Argument x is not a real: nil.
7511;;; (kernel:two-arg-> nil 0)
7512
7513(deftest misc.424
7514  (call-compiled
7515    '(lambda (a b)
7516     (declare (type (integer -24 15) a))
7517     (declare (type (integer -99661829155 16) b))
7518     (declare (ignorable a b))
7519     #+cmu (declare (optimize (extensions:inhibit-warnings 3)))
7520     (declare (optimize (safety 3) (debug 1) (compilation-speed 1) (space 3)
7521                        (speed 3)))
7522     (catch 'ct4
7523       (logandc1 a
7524                 (ignore-errors
7525                  (let* ((v8 (complex (throw 'ct4 0) 0)))
7526                    0)))))
7527   -18 -47519360453)
7528  0)
7529
7530;;; Different results
7531(deftest misc.425
7532  (call-compiled
7533    '(lambda (a b)
7534     (declare (type (integer -394128 80657) a))
7535     (declare (type (integer 13729431 14852298) b))
7536     (declare (optimize (space 2) (compilation-speed 1) (safety 0) (debug 0)
7537                        (speed 2)))
7538     (logorc1 (* a (logior b 0)) 0))
7539   -80334 14527920)
7540  1167085925279)
7541
7542;;; Unable to display error condition
7543(deftest misc.426
7544  (call-compiled
7545    '(lambda ()
7546       #+cmu (declare (optimize (extensions:inhibit-warnings 3)))
7547       (declare (optimize (safety 3) (space 3) (speed 3) (debug 1)
7548                          (compilation-speed 3)))
7549       (dotimes (iv3 1 0) (logxor iv3 1285775))))
7550  0)
7551
7552;;; sbcl 0.8.15.13
7553;;; NIL is not of type REAL
7554;;; (This appears to be related to DYNAMIC-EXTENT)
7555
7556(deftest misc.427
7557  (call-compiled
7558    '(lambda (a)
7559       (declare (notinline list reduce logior))
7560       (declare (optimize (safety 2) (compilation-speed 1)
7561                          ; #+sbcl (sb-c:insert-step-conditions 0)
7562                          (speed 3) (space 2) (debug 2)))
7563       (logior
7564        (let* ((v5 (reduce #'+ (list 0 a))))
7565          (declare (dynamic-extent v5))
7566          (1- v5))))
7567   17)
7568  16)
7569
7570(deftest misc.428
7571  (call-compiled
7572    '(lambda ()
7573       (declare (notinline -))
7574       (declare        (optimize (compilation-speed 0) (safety 1) (speed 0)
7575                          (debug 2) (space 3)))
7576       (let ((v10 (catch 'ct2 1)))
7577         (declare (dynamic-extent v10))
7578         (- v10))))
7579  -1)
7580
7581(deftest misc.429
7582  (call-compiled
7583    '(lambda ()
7584       (declare (optimize (safety 1) (debug 1) (space 2)
7585                          (speed 2) (compilation-speed 1)))
7586       (let ((v8 (let ((*s3* 0)) *s3*)))
7587         (declare (dynamic-extent v8))
7588         (logandc1 v8 28))))
7589  28)
7590
7591;;; poplog 15.53
7592;;; Excess type specifier(s) in THE special form
7593
7594(deftest misc.430
7595  (unwind-protect 0 (the integer 1))
7596  0)
7597
7598;;; Wrong return values: T, 0
7599(deftest misc.431
7600  (call-compiled
7601    '(lambda (a) (declare (notinline > *))
7602       (declare (optimize (compilation-speed 0) (safety 2) (speed 2) (debug 0) (space 3)))
7603       (catch 'ct1 (* a (throw 'ct1 (if (> 0) a 0)))))
7604   5445205692802)
7605  5445205692802)
7606
7607;;; Ste: stack empty (missing argument? missing result?)
7608(deftest misc.432
7609  (loop for x below 2 count (not (not (typep x t))))
7610  2)
7611
7612(deftest misc.433
7613  (let ((a 1)) (if (not (/= a 0)) a 0))
7614  0)
7615
7616;;; sbcl 0.8.16.13
7617;;;   #<SB-C:TN t1> is not valid as the first argument to VOP:
7618;;;   SB-VM::FAST-ASH-LEFT-MOD32/UNSIGNED=>UNSIGNED
7619;;; Primitive type: T
7620;;; SC restrictions:
7621;;;   (SB-VM::UNSIGNED-REG)
7622;;; The primitive type disallows these loadable SCs:
7623;;;   (SB-VM::UNSIGNED-REG)
7624
7625(deftest misc.434
7626  (call-compiled
7627    '(lambda (a b)
7628       (declare (type (integer -8431780939320 1571817471932) a))
7629       (declare (type (integer -4085 0) b))
7630       (declare (ignorable a b))
7631       (declare
7632        (optimize (space 2)
7633                  (compilation-speed 0)
7634                  #+sbcl (sb-c:insert-step-conditions 0)
7635                  (debug 2)
7636                  (safety 0)
7637                  (speed 3)))
7638       (let ((*s5* 0))
7639         (dotimes (iv1 2 0)
7640           (let ((*s5*
7641                  (elt '(1954479092053)
7642                       (min 0
7643                            (max 0
7644                                 (if (< iv1 iv1)
7645                                     (lognand iv1 (ash iv1 (min 53 iv1)))
7646                                   iv1))))))
7647             0))))
7648   -7639589303599 -1368)
7649  0)
7650
7651;;; failed AVER:
7652;;;  "(AND (EQ (CTRAN-KIND START) INSIDE-BLOCK) (NOT (BLOCK-DELETE-P BLOCK)))"
7653(deftest misc.435
7654  (call-compiled
7655    '(lambda (a b c d)
7656       (declare (notinline aref logandc2 gcd make-array))
7657       (declare
7658        (optimize (space 0)
7659                  (safety 0)
7660                  (compilation-speed 3)
7661                  (speed 3)
7662                  (debug 1)
7663                  ))
7664       (progn
7665         (tagbody
7666          (let* ((v2
7667                  (make-array nil :initial-element (catch 'ct1 (go tag2)))))
7668            (declare (dynamic-extent v2))
7669            (gcd (go tag2) (logandc2 (catch 'ct2 c) (aref v2))))
7670          tag2)
7671         0))
7672   3021871717588 -866608 -2 -17194)
7673  0)
7674
7675;;; In sbcl 0.8.16.18
7676;;;   #<SB-C:TN INTEGER!1> is not valid as the first argument to VOP:
7677;;;   SB-VM::FAST-ASH-LEFT-MOD32/UNSIGNED=>UNSIGNED
7678;;; Primitive type: T
7679;;; SC restrictions:
7680;;;   (SB-VM::UNSIGNED-REG)
7681;;; The primitive type disallows these loadable SCs:
7682;;;   (SB-VM::UNSIGNED-REG)
7683
7684(deftest misc.436
7685  (call-compiled
7686    '(lambda (a b)
7687       (declare (type (integer -2917822 2783884) a))
7688       (declare (type (integer 0 160159) b))
7689       (declare (ignorable a b))
7690       (declare
7691        (optimize (compilation-speed 1)
7692                  (speed 3)
7693                  (safety 3)
7694                  (space 0)
7695                  ; #+sbcl (sb-c:insert-step-conditions 0)
7696                  (debug 0)))
7697       (if
7698           (oddp
7699            (loop for
7700                  lv1
7701                  below
7702                  2
7703                  count
7704                  (logbitp 0
7705                           (1-
7706                            (ash b
7707                                 (min 8
7708                                      (count 0
7709                                             '(-10197561 486 430631291
7710                                                         9674068))))))))
7711           b
7712         0))
7713   1265797 110757)
7714  0)
7715
7716;;;  The value NIL is not of type INTEGER.
7717;;; (in (SB-C::TN-SC-OFFSET 1 #<SB-C:TN #:G27!1>))
7718
7719(deftest misc.437
7720  (call-compiled
7721    '(lambda (a b c d e)
7722       (declare (notinline values complex eql))
7723       (declare
7724        (optimize (compilation-speed 3)
7725                  (speed 3)
7726                  ; #+sbcl (sb-c:insert-step-conditions 0)
7727                  (debug 1)
7728                  (safety 1)
7729                  (space 0)))
7730       (flet ((%f10
7731               (f10-1 f10-2 f10-3
7732                      &optional (f10-4 (ignore-errors 0)) (f10-5 0)
7733                      &key &allow-other-keys)
7734               (if (or (eql 0 0) t) 0 (if f10-1 0 0))))
7735         (complex (multiple-value-call #'%f10 (values a c b 0 0)) 0)))
7736   80043 74953652306 33658947 -63099937105 -27842393)
7737  0)
7738
7739;;;   #<SB-C:TN COUNT!1> is not valid as the second argument to VOP:
7740;;;   SB-VM::FAST-ASH-LEFT-MOD32/UNSIGNED=>UNSIGNED
7741;;; Primitive type: T
7742;;; SC restrictions:
7743;;;   (SB-VM::UNSIGNED-REG)
7744;;; The primitive type disallows these loadable SCs:
7745;;;   (SB-VM::UNSIGNED-REG)
7746
7747(deftest misc.438
7748  (call-compiled
7749    ' (lambda (a)
7750        (declare (type (integer 0 1696) a))
7751        ; (declare (ignorable a))
7752        (declare (optimize (space 2) (debug 0) (safety 1)
7753                   (compilation-speed 0) (speed 1)))
7754        (if (logbitp 0 (ash (1- a) (min 11 a))) 0 0))
7755   805)
7756  0)
7757
7758;;; "The value -13589 is not of type (INTEGER -15205 18871)"
7759(deftest misc.439
7760  (call-compiled
7761    '(lambda (a)
7762       (declare (type (integer -15205 18871) a))
7763       (declare (ignorable a))
7764       (declare
7765        (optimize (space 2)
7766                  ; (sb-c:insert-step-conditions 0)
7767                  (speed 1)
7768                  (safety 1)
7769                  (debug 1)
7770                  (compilation-speed 3)))
7771       (if (<= a (- (setf a 10305))) a 0))
7772   -13589)
7773  10305)
7774
7775;;; In ACL 7.0 (sparc, Solaris 8, 11 Nov 2004)
7776;;; Error: the value of (CAR EXCL::INTEGERS) is NIL, which is not of type INTEGER.
7777
7778(deftest misc.440
7779  (call-compiled
7780    '(lambda (a b c)
7781       (declare (notinline logior))
7782       (declare (optimize (safety 3) (debug 1) (speed 0) (space 1)
7783                          (compilation-speed 3)))
7784       (flet ((%f10 (&optional &key
7785                               (key1
7786                                (logior (flet ((%f4 (f4-1
7787                                                     &optional
7788                                                     &key
7789                                                     (key1 0)
7790                                                     (key2 b)
7791                                                     &allow-other-keys)
7792                                                 c))
7793                                          (%f4 0))))
7794                               &allow-other-keys)
7795                0))
7796         (let ((*s8* (%f10)))
7797           (declare (special *s8*))
7798           *s8*)))
7799   13524 4484529434427 8109510572804)
7800  0)
7801
7802;;; Error: the value of realpart is nil, which is not of type (or rational float).
7803(deftest misc.441
7804  (call-compiled
7805    '(lambda (a b)
7806       (declare (notinline complex))
7807       (declare (optimize (compilation-speed 1) (space 1) (speed 3) (safety 2) (debug 3)))
7808       (flet ((%f8 (f8-1 f8-2 &optional
7809                         &key (key1 (labels ((%f9 nil a)) (complex (%f9) 0)))
7810                         (key2 0) &allow-other-keys)
7811                0))
7812         (%f8 0 a)))
7813   1 2)
7814  0)
7815
7816;;; Error: the value of excl::x is nil, which is not of type integer.
7817(deftest misc.442
7818  (call-compiled
7819    '(lambda (a b)
7820       (declare (notinline apply evenp))
7821       (declare (optimize (speed 1) (space 1) (safety 1) (compilation-speed 0) (debug 0)))
7822       (labels ((%f18 (f18-1 &optional
7823                             &key
7824                             (key1 (flet ((%f8 nil b)) (if (evenp (%f8)) 0 a)))
7825                             (key2 0))
7826                  0))
7827         (apply #'%f18 b nil)))
7828   505808341634 -39752189)
7829  0)
7830
7831;;; Error: No from-creg to move to <3:iparam2@(:iparam 2){4=c{s:<3>}}> before (move-throw-tag nil nil -> ({18}) ([18>>:frame :dfr]))
7832
7833(deftest misc.443
7834  (call-compiled
7835    '(lambda (a b c d e)
7836       (declare (type (integer -2310674 2) a))
7837       (declare (type (integer -492505702625 -147091001460) b))
7838       (declare (type (integer -27638568 52971156) c))
7839       (declare (type (integer -151 203) d))
7840       (declare (type (integer -1400301 8173230) e))
7841       (declare (ignorable a b c d e))
7842       (declare (optimize (compilation-speed 3) (debug 0) (space 0) (safety 1) (speed 1)))
7843       (catch 'ct7 (lcm (case 0
7844                          ((-4557) (let ((*s7* (max d))) 0))
7845                          ((-15387) c)
7846                          (t 0))
7847                        (unwind-protect (throw 'ct7 b) 0))))
7848   -1748290 -244489705763 38969920 -90 341977)
7849  -244489705763)
7850
7851;;; misc.444
7852;;; misc.445
7853
7854;;; gcl 25 Nov 2004
7855;;; Incorrect return value
7856(deftest misc.446
7857  (call-compiled
7858    '(lambda (a b c d)
7859       (declare (type (integer -1254 1868060) a))
7860       (declare (type (integer -1 0) b))
7861       (declare (type (integer -424707253248 -82453721088) c))
7862       (declare (type (integer -252962 3018671) d))
7863       (declare (ignorable a b c d))
7864       (declare (optimize (safety 3) (space 3) (speed 3)
7865                          (compilation-speed 3) (debug 3)))
7866       (* (labels ((%f8 (&optional (f8-1 0)) (setq b 0)))
7867            (if (> d 1668249724 (%f8)) 0 (complex a 0)))
7868          (if (oddp b) 0 c)))
7869   796131 -1 -338008808923 530637)
7870  -269099291056676913)
7871
7872(deftest misc.447
7873  (call-compiled
7874    '(lambda (a)
7875       (declare (type (integer 38632397 46632460288) a))
7876       (declare (optimize (space 0) (safety 0) (debug 1)
7877                          (compilation-speed 1) (speed 0)))
7878       (catch 'ct2 (if (= a 0 (throw 'ct2 0)) 1 2289596)))
7879   18160383912)
7880  0)
7881
7882(deftest misc.448
7883  (call-compiled
7884    '(lambda (a b)
7885       (declare (type (integer -3716 1269) a))
7886       (declare (type (integer -1976579 2312) b))
7887       (declare (optimize (compilation-speed 1) (safety 0)
7888                          (speed 0) (space 0) (debug 3)))
7889       (if (<= 0 b (setq a 117)) 0 a))
7890   -1147 -44004)
7891  117)
7892
7893;;; gcl 27 Nov 2004
7894;;; Incorrect return value
7895
7896(deftest misc.449
7897  (call-compiled '(lambda (a) (* 10 a (setq a 1000))) 1)
7898  10000)
7899
7900;;; Error in COMPILER::CMP-ANON [or a callee]: The variable MIN is unbound.
7901(deftest misc.450
7902  (call-compiled '(lambda (a b) (min 0 (reduce #'min (vector a b 0)) 0))
7903   -10 -1)
7904  -10)
7905
7906;;; gcl 28 Nov 2004
7907;;; Incorrect return value
7908
7909(deftest misc.451
7910  (call-compiled '(lambda (a b) (flet ((%f3 () (setq a -2210)))
7911                                         (logxor a b (%f3))))
7912           -22650 20595)
7913  171)
7914
7915(deftest misc.452
7916  (call-compiled '(lambda (d) (labels ((%f3 () (setf d -1135) -983))
7917                                       (+ d (%f3) 11267)))
7918           -2914)
7919  7370)
7920
7921(deftest misc.453
7922  (call-compiled '(lambda (a) (* a (setf a 2) a (identity 5)))
7923           3)
7924  60)
7925
7926(deftest misc.454
7927  (let* ((form '(let ((v1 0)) (decf v1 (setq v1 -1))))
7928         (val1 (eval form))
7929         (val2 (call-compiled `(lambda () ,form))))
7930    (if (eql val1 val2) :good
7931      (list val1 val2)))
7932  :good)
7933
7934;;; sbcl 0.8.17.24
7935;;; Bugs in the just-introduced fixnum arithmetic transforms
7936
7937;;; LOGAND (?) bug
7938
7939(deftest misc.455
7940  (call-compiled
7941    '(lambda (a b)
7942       (declare (type (integer -4079701634499 2272876436845) b))
7943       (declare (optimize (space 0) (compilation-speed 1)
7944                          (safety 3) (speed 2) (debug 0)))
7945       (logand (* -775 b) a 37284))
7946   -18465060867 832909434173)
7947  32772)
7948
7949(deftest misc.456
7950  (call-compiled
7951    '(lambda (b c)
7952       (declare (type (integer -30606350847 35078064098) b))
7953       (declare (type (integer -6652 6638) c))
7954       (declare (optimize (space 3) (safety 0)
7955                          (speed 0) (compilation-speed 2) (debug 1)))
7956           (logand (* -9964236 (setq c 6206) 2600) b c))
7957    17296668225 -6574)
7958  4096)
7959
7960;;; DEPOSIT-FIELD (?) bug
7961
7962(deftest misc.457
7963  (call-compiled
7964    '(lambda (a b)
7965       (declare (type (integer -455461 343063) a))
7966       (declare (type (integer -1020097 -12430) b))
7967       (declare (optimize (speed 3) (space 0) (compilation-speed 3)
7968                          (debug 0) (safety 3)))
7969       (deposit-field (* (logeqv a a) b) (byte 6 24) 0))
7970   -212811 -985078)
7971  0)
7972
7973;;; LDB, *
7974
7975(deftest misc.458
7976  (call-compiled
7977    ' (lambda (a)
7978           (declare (type (integer -8175 27760966190) a))
7979           (declare (optimize
7980                     ;; The next optimize declaration is necessary
7981                     ;; for the bug to occur in sbcl 0.8.17.24
7982                     #+sbcl (sb-c:insert-step-conditions 0)
7983                     (space 2) (speed 0) (compilation-speed 1)
7984                     (safety 0) (debug 3)))
7985           (ldb (byte 29 0) (* a a)))
7986   14774118941)
7987  101418825)
7988
7989;;; LOGAND, +
7990
7991(deftest misc.459
7992  (call-compiled
7993    '(lambda (a b)
7994           (declare (type (integer -32933298905 -168011) a))
7995           (declare (type (integer -190015111797 16) b))
7996           (declare (optimize (speed 2) (compilation-speed 0) (space 0)
7997                              (safety 1) (debug 0)))
7998           (logand (+ b -9255) a 63))
7999   -8166030199 -45872222127)
8000  8)
8001
8002;;; In sbcl 0.8.17.28-signed-modular-arithmetic.3
8003;;; Unreachable code is found or flow graph is not properly depth-first ordered.
8004;;; (This is apparently a different bug from the previous ones that
8005;;;  were causing this message to be printed.)
8006
8007(deftest misc.460
8008  (call-compiled
8009    '(lambda (a)
8010       (declare (type (integer 50354997 50514623) a))
8011       (declare (ignorable a))
8012       (declare
8013        (optimize (speed 0)
8014                  (safety 0)
8015                  (compilation-speed 3)
8016                  #+sbcl (sb-c:insert-step-conditions 0)
8017                  (debug 1)
8018                  (space 1)))
8019       (loop for lv3 below 2
8020             sum (if (find 0
8021                           '(-17604051 126613572 -795198 12037855 127043241 -2 -59
8022                                       -3458890 1505 -1 -2 107498637 -977489 172087 421813
8023                                       543299114 12 4311490 569 -3509 -4051770 -1 1 1
8024                                       216399387 -2482 143297 2 304550 -61 -195904988
8025                                       57682175 2344 1294831 -247 -2 25779388 -296 -12115
8026                                       -158487 -15)
8027                           :test 'eql)
8028                     (if (find 0 #(4193594) :test '<)
8029                         (min (catch 'ct6 0) (catch 'ct8 0) 0)
8030                       (let ((*s1* (cons a 0)))
8031                         (car *s1*)))
8032                   0)))
8033   50395193)
8034  0)
8035
8036;;; gcl 16 Dec 2004
8037;;; Error possibly related to type propagation
8038
8039(deftest misc.461
8040  (call-compiled '(lambda (a)
8041                   (declare (type (integer -26657952320 0) a))
8042                   (declare (optimize (compilation-speed 0) (space 3) (speed 3)
8043                                      (safety 0) (debug 2)))
8044                   (- a
8045                      (ash -1 (min 31 (- a)))
8046                      -26715477))
8047   -26179151369)
8048  -24004952244)
8049
8050;;; gcl 18 Dec 2004
8051;;; Doesn't cause an error, unless -Werror is added to gcc flags
8052;;; gazonk0.c: In function `L1':
8053;;; gazonk0.c:5257: warning: assignment makes integer from pointer without a cast
8054
8055(deftest misc.462
8056  (call-compiled '(lambda (a b)
8057                   (declare (type (integer -2726808666112 -26532) a))
8058                   (declare (type (integer 182701814 171137312256) b))
8059                   (declare (ignorable a b))
8060                   (declare (optimize (compilation-speed 3) (safety 0)
8061                                      (speed 3) (space 3) (debug 3)))
8062                   (ash (let* ((v8 (cons 0 0))) 0) (min 15 a)))
8063   -1982565461868 46279989780)
8064  0)
8065
8066;;; gazonk0.c: In function `L1':
8067;;; gazonk0.c:5262: warning: assignment makes integer from pointer without a cast
8068(deftest misc.463
8069  (call-compiled '(lambda (a b)
8070                   (declare (type (integer 0 0) a))
8071                   (declare (type (integer -160364747008 264742845184) b))
8072                   (declare (ignorable a b))
8073                   (declare (optimize (debug 0) (safety 0)
8074                                      (compilation-speed 2) (space 0)
8075                                      (speed 1)))
8076                   (ash (multiple-value-setq (a) 0) (min 97 13027666096)))
8077   0 34670845086)
8078  0)
8079
8080;;; gcl 21 Dec 2004
8081;;; Compiler error on ash, rem
8082
8083(deftest misc.464
8084  (call-compiled '(lambda ()
8085                   (declare (optimize (debug 1) (safety 2) (compilation-speed 0)
8086                                      (space 1) (speed 1)))
8087                   (count (ash (the integer
8088                                 (macrolet () (rem -197 (min -72 215))))
8089                               (min 98 442719))
8090                          #(0 96) :test '=)))
8091  0)
8092
8093(deftest misc.465
8094  (call-compiled '(lambda (a)
8095                   (declare (type (integer -18822 -1280) a))
8096                   (declare (optimize (debug 0) (speed 1)
8097                                      (compilation-speed 3) (safety 0)
8098                                      (space 0)))
8099                   (ash (the integer
8100                          (logand a (if t a (imagpart -2607360))))
8101                        (min 79 (catch 'ct7 0))))
8102   -17635)
8103  -17635)
8104
8105;;; ACL 6.2 (x86 linux)
8106;;; Bug in type propagation for ISQRT
8107;;; Found with the special purpose random tester for type propagation
8108
8109;;; While compiling (:ANONYMOUS-LAMBDA 22203):
8110;;; Error: -1 is illegal argument to isqrt
8111
8112(deftest misc.466
8113  (call-compiled '(lambda (x)
8114                           (declare (type (member 4 -1) x)
8115                                    (optimize speed (safety 1)))
8116                           (isqrt x))
8117           4)
8118  2)
8119
8120;;; gcl 24 Dec 2004
8121;;; Incorrect results (these may all be related)
8122;;; These are also produced by the special purpose tester in random-type-prop.lsp
8123
8124(deftest misc.467
8125  (call-compiled '(lambda (p2 p3)
8126                   (declare (optimize speed (safety 1))
8127                            (type (integer -990888631320) p2)
8128                            (type (integer -20346 -19755) p3))
8129                   (+ -77 (the (integer * -990888630255) p2) p3))
8130   -990888630272 -19756)
8131  -990888650105)
8132
8133(deftest misc.468
8134  (call-compiled '(lambda (p2 p3)
8135                   (declare (optimize speed (safety 1))
8136                            (type (integer * 151075404030) p2)
8137                            (type (integer 6515518 *) p3))
8138                   (- 12967657127936 (the (eql 151075403520) p2)
8139                      (the (member 6515658 -14) p3)))
8140   151075403520 6515658)
8141  12816575208758)
8142
8143(deftest misc.469
8144  (call-compiled '(lambda (p2)
8145                   (declare (optimize speed (safety 1)) (type integer p2))
8146                   (+ 30926 (the (integer -4025987543018 *) p2)))
8147   -4025817763840)
8148  -4025817732914)
8149
8150(deftest misc.470
8151  (call-compiled '(lambda (p2)
8152                   (declare (optimize speed (safety 1))
8153                            (type (integer 3689224658939 *) p2))
8154                   (+ -1071 (the (integer * 3689229115390) p2)))
8155   3689228853248)
8156  3689228852177)
8157
8158(deftest misc.471
8159  (call-compiled '(lambda (p1 p2)
8160                   (declare (optimize speed (safety 1))
8161                            (type (integer -9024844 230253450) p1)
8162                            (type (eql 35716681856) p2))
8163                   (* p1 (the (integer * 35716681856) p2)))
8164   -9024809 35716681856)
8165  -322336231864165504)
8166
8167(deftest misc.472
8168  (call-compiled '(lambda (p1 p2)
8169                   (declare (optimize speed (safety 1))
8170                            (type (integer -785238 -80) p1)
8171                            (type (eql -523213622272) p2))
8172                   (min p1 (the integer p2)))
8173   -259 -523213622272)
8174  -523213622272)
8175
8176(deftest misc.473
8177  (call-compiled '(lambda (p2)
8178                   (declare (optimize speed (safety 1))
8179                            (type (integer * 65861934352) p2))
8180                   (max 23939 (the (integer 64863825609 65878336765) p2)))
8181   65861912512)
8182  65861912512)
8183
8184(deftest misc.474
8185  (call-compiled '(lambda (p1)
8186                   (declare (optimize speed (safety 1))
8187                            (type (integer -6750156308) p1))
8188                   (logand (the signed-byte p1) -540165229))
8189   -6750156304)
8190  -7289140848)
8191
8192;;; abcl 25 Dec 2005
8193;;; Debugger invoked on condition of type UNDEFINED-FUNCTION:
8194;;; The function %FAILED-AVER is undefined.
8195
8196(deftest misc.475
8197  (let #+armedbear ((jvm::*catch-errors* nil))
8198       nil
8199       (call-compiled '(lambda (p1 p2 p3 p4 p6)
8200                        (declare (optimize speed (safety 1))
8201                                 (type (integer -785238 61564048) p1)
8202                                 (type (integer * 65861934352) p2))
8203                        (+ P1 (THE (INTEGER -485480 -7019) P2) P3 P4
8204                           463666373060
8205                           P6))
8206        61564048 -7457 24939545512 51 730))
8207  488667475944)
8208
8209(deftest misc.476
8210  (let #+armedbear ((jvm::*catch-errors* nil))
8211       nil
8212       (call-compiled '(lambda (p4)
8213                        (declare (optimize speed (safety 1))
8214                                 (type (integer -115781893486) p4))
8215                        (- 1 -35 0 (the (integer -115778245122) p4) -2))
8216        -115778114900))
8217  115778114938)
8218
8219(deftest misc.477
8220  (let #+armedbear ((jvm::*catch-errors* nil))
8221       nil
8222       (call-compiled '(lambda (p4 p5)
8223                        (declare (optimize speed (safety 1))
8224                                 (type (integer -126908726190 -126906628448) p4)
8225                                 (type (integer * 2202) p5))
8226                        (* -1950 -33610502463 2 p4 p5))
8227        -126906629040 1839))
8228  -30591843552678654213361992000)
8229
8230(deftest misc.478
8231  (let #+armedbear ((jvm::*catch-errors* nil))
8232       nil
8233       (call-compiled '(lambda (p2)
8234                        (declare (optimize speed (safety 1))
8235                                 (type (integer * 2343679) p2))
8236                        (logand 12050257282405 p2 117775123 505354693 -415679150084))
8237        -6189))
8238  33816832)
8239
8240;;; Bug in CMUCL Snapshot 2004-10
8241;;; Invalid number of arguments: 370632372
8242
8243(deftest misc.479
8244  (let ((r (make-array nil :element-type '(unsigned-byte 32)))
8245        (fn '(lambda (r p2)
8246                            (declare (optimize speed (safety 1))
8247                                     (type (simple-array (unsigned-byte 32) nil) r)
8248                                     (type integer p2))
8249                            (setf (aref r) (logxor 0 (the (integer 2797513123 2798027357) p2)))
8250                            (values))))
8251    (call-compiled fn r 2797674503)
8252    (aref r))
8253  2797674503)
8254
8255(deftest misc.480
8256  (let ((r (make-array nil :element-type 'integer))
8257        (fn '(lambda (r p1)
8258                            (declare (optimize speed (safety 1))
8259                                     (type (simple-array integer nil) r)
8260                                     (type (integer -797971 -797511) p1))
8261                            (setf (aref r) (logeqv p1 15 1078254884158 -12564176924 0 15096591909))
8262                            (values))))
8263    (call-compiled fn r -797965)
8264    (aref r))
8265  -1075415510532)
8266
8267(deftest misc.481
8268  (let ((r (make-array nil :element-type '(unsigned-byte 16)))
8269        (fn '(lambda (r p1)
8270                            (declare (optimize speed (safety 1))
8271                                     (type (simple-array (unsigned-byte 16) nil) r)
8272                                     (type (member 4194309 -123 1692 -4432 -760653 -1741 37) p1))
8273                            (setf (aref r) (logorc1 (the (eql -4432) p1) 0))
8274                            (values))))
8275    (call-compiled fn r -4432)
8276    (aref r))
8277  4431)
8278
8279;; Various incorrect results
8280
8281(deftest misc.482
8282  (let ((r (make-array nil :element-type '(unsigned-byte 4)))
8283        (fn '(lambda (r p2)
8284                            (declare (optimize speed (safety 1))
8285                                     (type (simple-array (unsigned-byte 4) nil) r)
8286                                     (type (eql -4) p2))
8287                            (setf (aref r) (logorc2 13 p2))
8288                            (values))))
8289    (call-compiled fn r -4)
8290    (aref r))
8291  15)
8292
8293(deftest misc.483
8294  (let ((r (make-array nil :element-type '(unsigned-byte 4)))
8295        (fn '(lambda (r p1 p2)
8296                            (declare (optimize speed (safety 1))
8297                                     (type (simple-array (unsigned-byte 4) nil) r)
8298                                     (type (integer * 28306533) p1)
8299                                     (type (integer * 1245601) p2))
8300                            (setf (aref r) (logandc1 p1 (the (integer -3308174) p2)))
8301                            (values))))
8302    (call-compiled fn r -519 -28180)
8303    (aref r))
8304  4)
8305
8306(deftest misc.484
8307  (let ((r (make-array nil :element-type '(unsigned-byte 4)))
8308        (fn '(lambda (r p2)
8309                            (declare (optimize speed (safety 1))
8310                                     (type (simple-array (unsigned-byte 4) nil) r)
8311                                     (type (member 260646 -348969 34359738370 -110167) p2))
8312                            (setf (aref r) (logandc2 9 (the (eql -348969) p2)))
8313                            (values))))
8314    (call-compiled fn r -348969)
8315    (aref r))
8316  8)
8317
8318(deftest misc.485
8319  (let ((r (make-array nil :element-type 'bit))
8320        (fn '(lambda (r p2)
8321                            (declare (optimize speed (safety 1))
8322                                     (type (simple-array bit nil) r)
8323                                     (type (integer -108220 256178) p2))
8324                            (setf (aref r) (logand 1 (the (member -1 2147483652 1 -5 3802) p2)))
8325                            (values))))
8326    (call-compiled fn r -5)
8327    (aref r))
8328  1)
8329
8330(deftest misc.486
8331  (let ((r (make-array nil :element-type '(unsigned-byte 4)))
8332        (fn '(lambda (r p1 p2)
8333                            (declare (optimize speed (safety 1))
8334                                     (type (simple-array (unsigned-byte 4) nil) r)
8335                                     (type (integer -9) p1)
8336                                     (type (integer * 1234117) p2))
8337                            (setf (aref r) (logior (the (integer -295 *) p1) (the (integer -90 *) p2)))
8338                            (values))))
8339    (call-compiled fn r 6 6)
8340    (aref r))
8341  6)
8342
8343(deftest misc.487
8344  (let ((r (make-array nil :element-type '(unsigned-byte 16)))
8345        (fn '(lambda (r p1)
8346                            (declare (optimize speed (safety 1))
8347                                     (type (simple-array (unsigned-byte 16) nil) r)
8348                                     (type (integer 1583040351 1587341394) p1))
8349                            (setf (aref r) (logandc2 (the (integer 1587211196 1587341392) p1) -166174))
8350                            (values))))
8351    (call-compiled fn r 1587341392)
8352    (aref r))
8353  34832)
8354
8355(deftest misc.488
8356  (let ((r (make-array nil :element-type '(unsigned-byte 32)))
8357        (fn '(lambda (r p2)
8358                            (declare (optimize speed (safety 1))
8359                                     (type (simple-array (unsigned-byte 32) nil) r)
8360                                     (type (integer 1960409798 1960426181) p2))
8361                            (setf (aref r) (logorc1 -1 p2))
8362                            (values))))
8363    (call-compiled fn r 1960409801)
8364    (aref r))
8365  1960409801)
8366
8367(deftest misc.489
8368  (let ((r (make-array nil :element-type '(unsigned-byte 32)))
8369        (fn '(lambda (r p2)
8370                            (declare (optimize speed (safety 1))
8371                                     (type (simple-array (unsigned-byte 32) nil) r)
8372                                     (type (integer -55) p2))
8373                            (setf (aref r) (logorc2 0 (the (member -51) p2)))
8374                            (values))))
8375    (call-compiled fn r -51)
8376    (aref r))
8377  50)
8378
8379(deftest misc.490
8380  (let ((r (make-array nil :element-type '(unsigned-byte 32)))
8381        (fn '(lambda (r p1)
8382                            (declare (optimize speed (safety 1))
8383                                     (type (simple-array (unsigned-byte 32) nil) r)
8384                                     (type (integer 761639858 1030075825) p1))
8385                            (setf (aref r) (logior (the (integer * 35389813668) p1) 0))
8386                            (values))))
8387    (call-compiled fn r 1030075308)
8388    (aref r))
8389  1030075308)
8390
8391(deftest misc.491
8392  (let ((r (make-array nil :element-type '(signed-byte 16)))
8393        (fn '(lambda (r p2)
8394                            (declare (optimize speed (safety 1))
8395                                     (type (simple-array (signed-byte 16) nil) r)
8396                                     (type (integer 505774114 573717424) p2))
8397                            (setf (aref r) (lognand 58539 (the (integer * 910674467) p2)))
8398                            (values))))
8399    (call-compiled fn r 506608551)
8400    (aref r))
8401  -8356)
8402
8403(deftest misc.492
8404  (let ((r (make-array nil :element-type '(signed-byte 8)))
8405        (fn '(lambda (r p1)
8406                            (declare (optimize speed (safety 1))
8407                                     (type (simple-array (signed-byte 8) nil) r) (type (integer * 22050378) p1))
8408                            (setf (aref r) (lognand (the (integer 19464371) p1) 2257))
8409                            (values))))
8410    (call-compiled fn r 19469591)
8411    (aref r))
8412  -18)
8413
8414;;; ABCL (25 Dec 2004)
8415;;; Class verification failed: (class: org/armedbear/lisp/out, method: execute signature: (Lorg/armedbear/lisp/LispObject;Lorg/armedbear/lisp/LispObject;Lorg/armedbear/lisp/LispObject;)Lorg/armedbear/lisp/LispObject;) Expecting to find integer on stack
8416
8417(deftest misc.493
8418  (let #+abcl ((jvm::*catch-errors* nil))
8419       nil
8420       (call-compiled '(lambda (b)
8421                        (declare (optimize (speed 2) (debug 1) (safety 3)
8422                                           (compilation-speed 3) (space 1)))
8423                        (aref #(41397376227 18660605846 49244777443) (min 2 (max 0 b))))
8424       
8425        -71))
8426  41397376227)
8427
8428;;; ABCL (26 Dec 2004)
8429;;;  Class verification failed: [...] Illegal exception table range
8430
8431(deftest misc.494
8432  (let #+abcl ((jvm::*catch-errors* nil))
8433       nil
8434       (call-compiled '(lambda ()
8435                        (declare (optimize (safety 0) (space 2) (debug 3) (speed 0)
8436                                           (compilation-speed 2)))
8437                        (conjugate (progn (catch 'ct5 (if t 0 0)) 0)))))
8438  0)
8439
8440;;; The value 5085 is not of type FUNCTION.
8441
8442(deftest misc.495
8443  (call-compiled '(lambda (a b)
8444                   (declare (type (integer -4197 284380207) a))
8445                   (declare (type (integer -23 5088) b))
8446                   (declare (ignorable a b))
8447                   (declare (optimize (speed 1) (space 2) (debug 0)
8448                                      (compilation-speed 0) (safety 2)))
8449                   (if (position (progn (1+ b) 0)
8450                                 '(169496 -726 -13623 53307916 128 -258391 156
8451                                          7432659 30 20 -11))
8452                       0
8453                     a))
8454   72179019 5084)
8455  72179019)
8456
8457;;; Inconsistent stack height 1 != 2
8458
8459(deftest misc.496
8460  (let #+abcl ((jvm::*catch-errors* nil))
8461       nil
8462       (call-compiled
8463                 '(lambda (a)
8464                    (declare (type (integer -54915 -3396) a))
8465                    (declare (optimize (debug 3) (space 0) (safety 2) (speed 2)
8466                                       (compilation-speed 3)))
8467                    (progn (1+ a) (catch 'ct6 (progn 0))))
8468        -25986))
8469  0)
8470
8471(deftest misc.497
8472  (let #+abcl ((jvm::*catch-errors* nil))
8473       nil
8474       (call-compiled
8475                 '(lambda (b)
8476                    (declare (type (integer -1 0) b))
8477                    (declare (optimize (space 3) (compilation-speed 1)
8478                                       (safety 0) (debug 1) (speed 0)))
8479                    (if 0 (prog2 0 0 (1+ b)) 0))
8480        0))
8481  0)
8482
8483;;; Inconsistent stack height 1 != 0
8484
8485(deftest misc.498
8486  (let #+abcl ((jvm::*catch-errors* nil))
8487       nil
8488       (call-compiled
8489                 '(lambda (a)
8490                    (declare (type (integer -16191 4) a))
8491                    (declare (optimize (compilation-speed 2) (space 1) (debug 0)
8492                                       (safety 0) (speed 2)))
8493                    (conjugate (dotimes (iv1 0 0)
8494                                 (let ((v2 (dotimes (iv3 0 0) (1+ a))))
8495                                   0))))
8496        -2840))
8497  0)
8498
8499;;; Incompatible object argument for function call
8500
8501(deftest misc.499
8502  (let #+abcl ((jvm::*catch-errors* nil))
8503       nil
8504       (call-compiled
8505                 '(lambda (a b)
8506                    (declare (type (integer -31415 133871) a))
8507                    (declare (type (integer -993 6448) b))
8508                    (declare (ignorable a b))
8509                    (declare (optimize (space 0) (debug 2) (safety 0) (speed 0)
8510                                       (compilation-speed 0)))
8511                    (progn (ceiling (progn (1+ b) a)) a))
8512        -16435 2620))
8513  -16435)
8514
8515;;; Stack overflow during compilation
8516
8517(deftest misc.500
8518  (call-compiled '(lambda nil
8519                   (declare (optimize (space 2) (debug 2) (compilation-speed 2)
8520                                      (speed 1) (safety 3)))
8521                   (the integer (integer-length (dotimes (iv4 2 15790955))))))
8522  24)
8523
8524;;; Inconsistent stack height 1 != 0
8525
8526(deftest misc.501
8527  (let #+abcl ((jvm::*catch-errors* nil))
8528       nil
8529       (call-compiled '(lambda (a)
8530                        (declare (type (integer -437165353 179983908) a))
8531                        (declare (optimize (compilation-speed 0) (debug 1) (space 1)
8532                                           (safety 2) (speed 1)))
8533                        (dotimes (iv1 0 0) (1+ a)))
8534        1))
8535  0)
8536
8537;;; Ordering problems
8538
8539(deftest misc.502
8540  (call-compiled '(lambda (a)
8541                   (declare (type (integer -7 84717795) a))
8542                   (declare (ignorable a))
8543                   (declare (optimize (speed 1) (space 1) (debug 1) (safety 2)
8544                                      (compilation-speed 0)))
8545                   (+ a (setq a 35035201)))
8546   29207264)
8547  64242465)
8548
8549;;; ABCL 27 Dec 2004
8550;;; Different results
8551
8552(deftest misc.503
8553  (call-compiled '(lambda (a)
8554                   (declare (optimize (space 3) (debug 1) (speed 2) (safety 0)
8555                                      (compilation-speed 1)))
8556                   (catch 'ct1
8557                     (throw 'ct1
8558                            (catch 'ct5
8559                              (reduce 'min
8560                                      (vector 0 0 0 a a 0 0 (values 0 0) (throw 'ct5 -6))
8561                                      :end 8 :start 6 :from-end t)))))
8562   17)
8563  -6)
8564
8565;;; Inconsistent stack height
8566
8567(deftest misc.504
8568  (let #+abcl ((jvm::*catch-errors* nil))
8569       nil
8570       (call-compiled '(lambda (a)
8571                        (declare (type (integer 196060 241373941) a))
8572                        (declare (ignorable a))
8573                        (declare (optimize (speed 3) (debug 0) (safety 2)
8574                                           (compilation-speed 3) (space 2)))
8575                        (prog2 (if 0 (+ a a) 0) 0))
8576        200000))
8577  0)
8578
8579(deftest misc.505
8580  (let #+abcl ((jvm::*catch-errors* nil))
8581       nil
8582       (call-compiled '(lambda (a)
8583                        (declare (type (integer -6 5) a))
8584                        (declare (optimize (speed 3) (space 0) (safety 2)
8585                                           (compilation-speed 2) (debug 3)))
8586                        (dotimes (iv1 0 0) (+ a a)))
8587        1))
8588  0)
8589
8590(deftest misc.506
8591  (let #+abcl ((jvm::*catch-errors* nil))
8592       nil
8593       (call-compiled '(lambda (a)
8594                        (declare (type (integer -53 49) a))
8595                        (declare (optimize (debug 0) (compilation-speed 1) (space 2)
8596                                           (safety 0) (speed 0)))
8597                        (unwind-protect (+ a a) 0))
8598        -38))
8599  -76)
8600
8601;;; The value 15390 is not of type FUNCTION.
8602(deftest misc.507
8603  (call-compiled '(lambda (a)
8604                   (declare (type (integer 2697 13005) a))
8605                   (declare (optimize (debug 0) (space 2) (speed 2)
8606                                      (compilation-speed 3) (safety 3)))
8607                   (truncate (prog1 0 a (+ a a))))
8608   7695)
8609  0 0)
8610
8611;;; COMPILE-FORM: unsupported special operator LET*
8612;;; Associated with 'THE' operator
8613
8614(deftest misc.508
8615  (let #+abcl ((jvm::*catch-errors* nil))
8616       nil
8617       (call-compiled '(lambda (a)
8618                        (declare (type (integer -57853147 -2) a))
8619                        (declare (ignorable a))
8620                        (declare (optimize (debug 2) (space 1) (compilation-speed 3)
8621                                           (safety 1) (speed 2)))
8622                        (the integer
8623                          (mask-field (byte 2 29)
8624                                      (ash (multiple-value-setq (a) -51781613)
8625                                           (min 1 a)))))
8626        -29324754))
8627  1610612736)
8628
8629(deftest misc.509
8630  (let #+abcl ((jvm::*catch-errors* nil))
8631       nil
8632       (call-compiled '(lambda (a)
8633                        (declare (type (integer -38984312 657) a))
8634                        (declare (ignorable a))
8635                        (declare (optimize (debug 1) (compilation-speed 1) (speed 1)
8636                                           (safety 2) (space 3)))
8637                        (the integer
8638                          (if (> a -27907941364)
8639                              116871
8640                            (cl:handler-case
8641                             (multiple-value-setq (a)
8642                               -34832621)))))
8643        -26788929))
8644  116871)
8645
8646(deftest misc.510
8647  (let #+abcl ((jvm::*catch-errors* nil))
8648       nil
8649       (call-compiled '(lambda (a)
8650                        (declare (type (integer -2827 3400) a))
8651                        (declare (optimize (compilation-speed 1) (space 3) (debug 1)
8652                                           (safety 0) (speed 1)))
8653                        (logand (the integer (dotimes (iv4 2 a) (progn iv4)))))
8654        155))
8655  155)
8656
8657(deftest misc.511
8658  (let #+abcl ((jvm::*catch-errors* nil))
8659       nil
8660       (call-compiled '(lambda (a)
8661                        (declare (type (integer 18967 23584) a))
8662                        (declare (ignorable a))
8663                        (declare (optimize (space 1) (speed 1) (debug 1)
8664                                           (compilation-speed 3) (safety 1)))
8665                        (the integer
8666                          (values (loop for lv4 below 2 count (find a '(16389))))))
8667        21352))
8668  0)
8669
8670;;; Inconsistent stack height
8671
8672(deftest misc.512
8673  (let #+abcl ((jvm::*catch-errors* nil))
8674       nil
8675       (call-compiled '(lambda (a)
8676                        (declare (type (integer 1 188902468) a))
8677                        (declare (ignorable a))
8678                        (declare (optimize (space 2) (speed 3) (safety 3)
8679                                           (compilation-speed 0) (debug 2)))
8680                        (catch 'ct6
8681                          (the integer
8682                            (let* ((v3 (signum (ignore-errors a))))
8683                              (declare (dynamic-extent v3))
8684                              (throw 'ct6
8685                                     (round (case (prog2
8686                                                      (lognor 290171664 v3)
8687                                                      -3512003993
8688                                                    -550842867)
8689                                              ((4) (* 1 4092))
8690                                              ((21 220 225)
8691                                               (block b1
8692                                                 (setf v3
8693                                                       (let* ((v9 v3))
8694                                                         a))))
8695                                              (t -639367819))))))))
8696        49008586))
8697  -639367819
8698  0)
8699
8700;;; COMPILE-FORM: unsupported special operator LET*
8701;;; Associated with 'THE' operator
8702
8703(deftest misc.513
8704  (let #+abcl ((jvm::*catch-errors* nil))
8705       nil
8706       (call-compiled '(lambda (a)
8707                        (declare (type (integer -2 75025568) a))
8708                        (declare (ignorable a))
8709                        (declare (optimize (space 0) (compilation-speed 0) (safety 0)
8710                                           (speed 2) (debug 2)))
8711                        (let* ((v8
8712                                (cons (the integer
8713                                        (prog2 a
8714                                            -1558460
8715                                          a
8716                                          (ignore-errors (progn (tagbody) -49510826))
8717                                          a))
8718                                      0)))
8719                          0))
8720        68043554))
8721  0)
8722
8723(deftest misc.514
8724  (let #+abcl ((jvm::*catch-errors* nil))
8725       nil
8726       (call-compiled '(lambda (a)
8727                        (declare (type (integer -6844832476 188341751) a))
8728                        (declare (optimize (speed 3) (debug 1) (safety 0) (space 3)
8729                                           (compilation-speed 1)))
8730                        (the integer (multiple-value-setq (a) -96073358)))
8731        -3792864899))
8732  -96073358)
8733
8734;;; gcl 27 Dec 2004
8735;;; Issue with dynamic extent
8736
8737(deftest misc.515
8738  (call-compiled '(lambda (a)
8739                   (declare (type (integer -1337016312 832159784) a))
8740                   (declare (optimize speed (safety 1)))
8741                   (let* ((y 0)
8742                          (v9 0))
8743                     (declare (dynamic-extent v9))
8744                     (setq v9 (+ a a))
8745                     (setq y (1+ v9))))
8746   -1209913207)
8747  -2419826413)
8748
8749(deftest misc.516
8750  (call-compiled '(lambda ()
8751                         (declare (optimize (space 0) (debug 0) (safety 2)
8752                                            (compilation-speed 3) (speed 1)))
8753                         (let ((*s2* (* -507991378 14)))
8754                              (declare (dynamic-extent *s2*))
8755                              (declare (special *s2*))
8756                              (1+ *s2*))))
8757  -7111879291)
8758
8759;;; gcl 29 Dec 2004
8760;;; Interference of special variable bindings?
8761
8762(deftest misc.517
8763  (call-compiled '(lambda ()
8764                   (declare (optimize (safety 3) (space 3) (debug 1) (speed 1)
8765                                      (compilation-speed 0)))
8766                   (let* ((*s8* (let ((*s8* (make-array nil :initial-element 0)))
8767                                  (declare (special *s8*))
8768                                  (progn (shiftf (aref *s8*) 31508066) 0))
8769                                ))
8770                     (declare (special *s8*))
8771                     0)))
8772  0)
8773
8774;;; Incorrect return value
8775
8776(deftest misc.518
8777  (call-compiled '(lambda ()
8778                   (declare (optimize (compilation-speed 0) (safety 1)
8779                                      (debug 1) (space 0) (speed 3)))
8780                   (flet ((%f10 (&optional (f10-1 0) (f10-2 0) &key)
8781                                (progn
8782                                  (tagbody
8783                                   (decf f10-2)
8784                                   (return-from %f10
8785                                     (complex (unwind-protect (go tag7))
8786                                              0))
8787                                   tag7)
8788                                  f10-2)))
8789                     (if (evenp (%f10 0 0)) 0 2140390))))
8790  2140390)
8791
8792;;; Error in APPLY [or a callee]: fixnum or bignum expected
8793;;; Broken at COMPILER::CMP-ANON.
8794
8795(deftest misc.519
8796  (call-compiled
8797    '(lambda ()
8798       (declare (optimize (compilation-speed 0) (speed 1) (debug 1)
8799                          (space 1) (safety 3)))
8800       (let ((*s3*
8801              (* (the integer
8802                   (expt (rationalize
8803                          (multiple-value-bind (*s3*)
8804                              (make-array nil :initial-element 0)
8805                            (shiftf (aref *s3*) 0)))
8806                         2)))))
8807         1)))
8808  1)
8809
8810;;; sbcl 0.8.18 (sparc solaris)
8811;;;  identity ASH not transformed away
8812
8813(deftest misc.520
8814  (call-compiled
8815    '(lambda (a c e)
8816      (declare (type (integer -44330 64753) c))
8817      (declare (type (integer -301534047 4291509) e))
8818      (declare (optimize (safety 3) (debug 2) (speed 3)
8819                (space 2) (compilation-speed 2)))
8820      (if (oddp
8821           (ash (logorc2 c e)
8822                (min 2 (mask-field (byte 0 0) (mod 0 (max 69 0))))))
8823       a
8824       0))
8825   1 -8156 -229264929)
8826  0)
8827
8828;;; ecl (25 Jan 2005)
8829;;; Error: In a call to AREF, the type of the form *S6* is FIXNUM, not (ARRAY *).
8830
8831(deftest misc.521
8832  (call-compiled
8833    '(lambda (b)
8834       (declare (optimize (speed 0) (safety 1) (debug 1) (compilation-speed 3)
8835                          (space 0)))
8836       (if b
8837           (let ((*s6* 0))
8838             0)
8839         (let* ((*s6* (make-array nil :initial-element 0)))
8840           (aref *s6*))))
8841   nil)
8842  0)
8843
8844;;; nil is not of type number.
8845
8846(deftest misc.522
8847  (call-compiled
8848    '(lambda (a)
8849       (declare (type (integer -25 38) a))
8850       (declare (optimize (compilation-speed 3) (safety 3) (debug 1) (space 2) (speed 1)))
8851       (flet ((%f2 (f2-1 f2-2
8852                         &optional
8853                         (f2-3 (labels ((%f6 (&optional (f6-1 0) (f6-2 0)) (max a)))
8854                                 (%f6 0)))
8855                         (f2-4 0) (f2-5 0))
8856                   (flet ((%f4 (f4-1 f4-2 f4-3)
8857                               (flet ((%f15 () f2-3)) a)))
8858                     0)))
8859         (reduce #'(lambda (lmv1 lmv6) a)
8860                 (vector 0 0 0 (%f2 a a) 0 a 0 a 0)
8861                 :start 4 :from-end t)))
8862   35)
8863  35)
8864
8865;;; Incorrect return value
8866
8867(deftest misc.523
8868  (call-compiled
8869    '(lambda (a)
8870       (declare (type (integer -1011 978) a))
8871       (declare (optimize (compilation-speed 1) (safety 3) (debug 0) (speed 2) (space 1)))
8872       (let ((*s5*
8873              (cons 0
8874                    (catch 'ct8
8875                      (ash
8876                       (flet ((%f15 (f15-1)
8877                                    (return-from %f15 a)))
8878                         0)
8879                       (min 57
8880                            (lognor (throw 'ct8 (shiftf a 332))
8881                                    (let ((v1 (setf a 371)))
8882                                      a))))))))
8883         a))
8884   99)
8885  332)
8886
8887;;; Seg fault
8888
8889(deftest misc.524
8890  (call-compiled
8891    '(lambda (a b)
8892       (declare (type (integer -2432551 871) a))
8893       (declare (type (integer -6390 -1) b))
8894       (declare (ignorable b))
8895       (declare (optimize (compilation-speed 0) (safety 0) (space 2) (speed 0) (debug 3)))
8896       (flet ((%f18 (f18-1 f18-2 f18-3 &optional &key (key1 0) &allow-other-keys)
8897                    (labels ((%f12
8898                              (f12-1
8899                               &optional (f12-2 0)
8900                               &key (key1 (catch 'ct7 (conjugate key1))) (key2 0)
8901                               &allow-other-keys)
8902                              0))
8903                      (%f12 a))))
8904         (%f18 a 0 0)))
8905   -925293 -1603)
8906  0)
8907
8908;;; Internal error: tried to advance stack.
8909
8910(deftest misc.525
8911  (call-compiled
8912    '(lambda (a)
8913       (declare (type (integer -17179869184 -2147483648) a))
8914       (declare (ignorable a))
8915       (declare
8916        (optimize (space 2) (debug 3) (speed 3) (compilation-speed 3) (safety 1)))
8917       (catch 'ct4
8918         (max (conjugate (unwind-protect 0 (catch 'ct4 (values 0))))
8919              (throw 'ct4 0))))
8920   -17179869184)
8921  0)
8922
8923;;; integer does not specify a sequence type
8924
8925(deftest misc.526
8926  (call-compiled
8927    '(lambda (a)
8928       (declare (type (integer -4 3025867) a))
8929       (declare (ignorable a))
8930       (declare
8931        (optimize (space 1) (safety 0) (debug 0) (speed 3) (compilation-speed 0)))
8932       (flet ((%f14 (f14-1 f14-2 f14-3 &key)
8933                    (let ((v4
8934                           (return-from %f14
8935                             (flet ((%f11
8936                                     (&optional (f11-1 0) (f11-2 0)
8937                                                (f11-3
8938                                                 (coerce
8939                                                  (reduce (function (lambda (lmv2 lmv5) a))
8940                                                          (vector f14-1 f14-1 0 f14-3 a f14-3 a f14-1
8941                                                                  0 f14-2))
8942                                                  (quote integer)))
8943                                                &key (key1 f14-3) (key2 a))
8944                                     (flet ((%f8
8945                                             (f8-1
8946                                              &optional
8947                                              (f8-2
8948                                               (flet ((%f16
8949                                                       (f16-1 f16-2 f16-3
8950                                                              &optional
8951                                                              &key (key1 0)
8952                                                              (key2 f11-3))
8953                                                       key1))
8954                                                 0))
8955                                              &key (key1 0))
8956                                             f14-3))
8957                                       0)))
8958                               (if (%f11 f14-1 (%f11 0 f14-3) f14-1) 0 0)))))
8959                      0)))
8960         (%f14 0 a a)))
8961   857304)
8962  0)
8963
8964;;; sbcl 0.8.19.32
8965;;; Type propagation problem with BIT-AND
8966
8967(deftest misc.527
8968  (let ((v1 (make-array 1 :element-type 'bit
8969                        :initial-contents '(1)
8970                        :fill-pointer 0))
8971        (v2 (make-array 1 :element-type 'bit
8972                        :initial-contents '(1)
8973                        :fill-pointer 1))
8974        (r (make-array nil)))
8975    (call-compiled
8976      `(lambda  (r p2)
8977         (declare (optimize speed (safety 1))
8978                  (type (simple-array t nil) r)
8979                  (type (array *) p2))
8980         (setf (aref r) (bit-and ,v1 (the (bit-vector *) p2)))
8981         (values))
8982     r v2)
8983    (let ((result (aref r)))
8984      (values
8985       (notnot (simple-bit-vector-p result))
8986       (=t (array-dimension result 0) 1)
8987       (=t (aref result 0) 1))))
8988  t t t)
8989
8990;;;  The value 22717067 is not of type (INTEGER 22717067 22717067)
8991
8992(deftest misc.528
8993  (let* ((x 296.3066f0)
8994         (y 22717067)
8995         (form `(lambda (r p2)
8996                  (declare (optimize speed (safety 1))
8997                           (type (simple-array single-float nil) r)
8998                           (type (integer -9369756340 22717335) p2))
8999                  (setf (aref r) (* ,x (the (eql 22717067) p2)))
9000                  (values)))
9001         (r (make-array nil :element-type 'single-float))
9002         (expected (* x y)))
9003    (call-compiled form r y)
9004    (let ((actual (aref r)))
9005      (unless (eql expected actual)
9006        (list expected actual))))
9007  nil)
9008
9009;;; The value 46790178 is not of type (INTEGER 46790178 46790178).
9010
9011(deftest misc.529
9012  (let* ((x -2367.3296f0)
9013         (y 46790178)
9014         (form `(lambda (r p2)
9015                  (declare (optimize speed (safety 1))
9016                           (type (simple-array single-float nil) r)
9017                           (type (eql 46790178) p2))
9018                  (setf (aref r) (+ ,x (the (integer 45893897) p2)))
9019                  (values)))
9020         (r (make-array nil :element-type 'single-float))
9021         (expected (+ x y)))
9022    (call-compiled form r y)
9023    (let ((actual (aref r)))
9024      (unless (eql expected actual)
9025        (list expected actual))))
9026  nil)
9027
9028;;; cmucl (Jan 2005 snapshot)
9029
9030;;; Segmentation fault
9031
9032(deftest misc.530
9033  (let* ((v (make-array
9034             '(11) :element-type 'double-float
9035             :initial-contents
9036             '(56826.586316245484d0 -57680.53641925701d0 68651.27735979737d0
9037               30934.627728043164d0 47252.736017400945d0 35129.46986219467d0
9038               -57804.412938803005d0 13000.374416975968d0 50263.681826551256d0
9039               89386.08276072948d0 -89508.77479231959d0)))
9040         (form
9041          `(lambda (r)
9042             (declare (optimize speed (safety 1))
9043                      (type (simple-array t nil) r))
9044             (setf (aref r)
9045                   (array-has-fill-pointer-p ,v))))
9046         (r (make-array nil)))
9047    (call-compiled form r)
9048    (eqlt (aref r) (array-has-fill-pointer-p v)))
9049  t)
9050
9051;;; gcl
9052;;; Problem with 0-dim char arrays
9053;;; Produces wrong return value (#\\320).
9054
9055(deftest misc.532
9056  (let ((r (make-array nil :element-type 'base-char)))
9057    (call-compiled
9058      '(lambda (r c)
9059         (declare (optimize speed (safety 1))
9060                  (type (simple-array base-char nil) r)
9061                  (type base-char c))
9062         (setf (aref r) c)
9063         (values))
9064     r #\Z)
9065    (aref r))
9066  #\Z)
9067
9068;;; sbcl 0.8.19.32
9069;;; Bound is not *, a INTEGER or a list of a INTEGER: -51494/29889
9070
9071(deftest misc.533
9072  (let* ((r (make-array nil))
9073         (c #c(208 -51494/29889))
9074         (form `(lambda (r p1)
9075                  (declare (optimize speed (safety 1))
9076                           (type (simple-array t nil) r)
9077                           (type number p1))
9078                  (setf (aref r) (+ (the (eql ,c) p1) -319284))
9079                  (values))))
9080    (call-compiled form r c)
9081    (eqlt (aref r) (+ -319284 c)))
9082  t)
9083
9084;;; sbcl 0.8.19.35
9085;;; Incorrect return value from conditional
9086
9087(deftest misc.534
9088  (let ((r0 (make-array nil)))
9089    (call-compiled
9090      '(lambda (r p1 p2 p3)
9091         (declare (optimize speed (safety 1))
9092                  (type (eql 4134713351/6105637898) p2)
9093                  (type (eql 2685) p3))
9094         (setf (aref r)
9095               (if p1
9096                   (the (eql 4134713351/6105637898) p2)
9097                 (the (integer * 8391301) p3))))
9098     r0 t 4134713351/6105637898 2685)
9099    (aref r0))
9100  4134713351/6105637898)
9101
9102#|
9103  The value
9104    #<SB-ALIEN:CAST
9105      :%TYPE-CHECK NIL
9106      :VALUE #<SB-C::LVAR 1 {DEDE809}>
9107      :ASSERTED-TYPE #<SB-KERNEL:MEMBER-TYPE (MEMBER
9108                                              #C(4196.088977268509d0 -15943.3603515625d0))>
9109      :TYPE-TO-CHECK #<SB-KERNEL:NAMED-TYPE *> {DECFF19}>
9110  is not of type
9111    SB-C::REF.
9112|#
9113
9114(deftest misc.535
9115  (let ((c0 #c(4196.088977268509d0 -15943.3603515625d0)))
9116    (call-compiled
9117      `(lambda (p1 p2)
9118         (declare (optimize speed (safety 1))
9119                  (type (simple-array t nil) r)
9120                  (type (eql ,c0) p1)
9121                  (type number p2))
9122         (eql (the (complex double-float) p1) p2))
9123     c0 #c(12 612/979)))
9124  nil)
9125
9126;;; Similar to misc.535
9127(deftest misc.536
9128  (call-compiled
9129    '(lambda (p1 p2)
9130       (declare (optimize speed (safety 1))
9131                (type (eql #c(11963908204 1/6)) p1)
9132                (type (complex rational) p2))
9133       (eql p1 (the complex p2)))
9134   #c(11963908204 1/6) #c(2343315619 5252231066))
9135  nil)
9136
9137;;; Comparison of bit vectors in compiled code
9138(deftest misc.537
9139  (let ((p1 (make-array '(0) :element-type 'bit
9140                        :adjustable t)))
9141    (notnot
9142     (call-compiled
9143       `(lambda (p2)
9144          (declare (optimize speed (safety 1))
9145                   (type (simple-array t nil) r)
9146                   (type (simple-bit-vector 0) p2))
9147          (equal ,p1 (the (bit-vector 0) p2)))
9148      #*)))
9149  t)
9150
9151;;; abcl (23 Feb 2005)
9152;;;  The value #C(3 4) is not of type number.
9153
9154(deftest misc.538
9155  (notnot (typep (* 2/5 #c(3 4)) 'number))
9156  t)
9157
9158;;; Allegro CL (6.2 trial edition, x86)
9159;;; Error: `#c(0 -8)' is not of the expected type `REAL'
9160
9161(deftest misc.539
9162  (notnot-mv
9163   (complexp
9164    (call-compiled '(lambda (x)
9165                     (declare (OPTIMIZE SPEED (SAFETY 1))
9166                              (type (eql #c(0 -8)) x))
9167                     (sqrt x))
9168     #c(0 -8))))
9169  t)
9170
9171;;; Illegal instruction
9172
9173(deftest misc.540
9174  (let* ((d0 #(a b c d e f g h))
9175         (d1 (make-array 5
9176                         :fill-pointer 1
9177                         :displaced-to d0
9178                         :displaced-index-offset 2)))
9179    (find #c(1.0 2.0) d1))
9180  nil)
9181
9182;;; A crasher bug of REMOVE on non-simple nibble arrays
9183
9184(deftest misc.541
9185  (dotimes (i 1000)
9186    (let* ((init '(12 11 8 8 11 10 9 1 3 9 6 12 4 3 6 4 7 10 12 6 11 12 4 15 8 10 7 0 0
9187                    0 12 9 6 1 0 14 2 14 6 4 2 2 11 7 13 11 3 9 0 2 3 4 2 11 8 7 9 0 0 3
9188                    8 3 10 8 2 8 9 4 9 0 11 4 9 8 12 8 5 2 10 10 1 14 7 8 5 5 7 8 1 13 2
9189                    13 12 2 5 11 1 12 12 0 2 5 15 2 14 2 3 10 1 0 7 7 11 3 7 6 1 13 8 4 2
9190                    7 14 9 9 7 3 8 1 15 6 11 15 0 11 9 7 15 12 10 6 4 5 6 10 4 4 4 15 5 1
9191                    8 9 3 12 11 8 4 10 8 3 15 12 3 4 10 8 12 8 14 2 12 12 14 14 5 14 6 10
9192                    13 9 6 4 14 9 6 8 4 11 1 6 0 7 7 5 4 12 15 7 4 4 10 7 3 0 11 10 11 1
9193                    8 9 0 12 14 6 2 15 2 5 11 8 3 4 2 9 9 7 0 7 11 13 5 7 12 8 6 12 11 15
9194                    3 6 11 0 1 2 7 2 13 14 15 4))
9195          (d0 (make-array
9196              '(251) :element-type '(integer 0 15)
9197              :initial-contents init
9198              :adjustable t)))
9199      (assert
9200       (equalp
9201        (remove 7 d0)
9202        (coerce (remove 7 init) '(vector (integer 0 15)))))))
9203  nil)
9204
9205;;; Object identity for bit vectors
9206
9207(deftest misc.542
9208  (call-compiled
9209    (let ((bv1 (copy-seq #*1))
9210          (bv2 (copy-seq #*1)))
9211      `(lambda () (eq ,bv1 ,bv2))))
9212  nil)
9213
9214;;; Lispworks personal edition 4.3 (x86 linux)
9215;;; Error: In PLUSP of (#C(1123113 -260528)) arguments should be of type REAL.
9216
9217(deftest misc.543
9218  (call-compiled
9219    '(lambda (p1)
9220        (declare (optimize speed (safety 1))
9221                 ; (type (simple-array t nil) r)
9222                 (type (integer 2493220 2495515) p1))
9223        (* p1 #c(1123113 -260528)))
9224   2493726)
9225  #C(2800736089038 -649685447328))
9226
9227;;; gcl
9228
9229(deftest misc.544
9230  (let ((n -1.0l0))
9231    (notnot-mv
9232     (complexp
9233      (call-compiled
9234        `(lambda (p1)
9235           (declare (optimize speed (safety 1))
9236                    (type (long-float ,n 0.0l0) p1))
9237           (sqrt p1))
9238         n))))
9239  t)
9240
9241;;; OpenMCL
9242;;; 1/2 is not of type integer
9243
9244(deftest misc.545
9245  (let ((x #c(-1 1/2)))
9246    (declare (type (eql #c(-1 1/2)) x))
9247    x)
9248  #c(-1 1/2))
9249
9250;;; SBCL
9251;;; 0.8.19.39
9252;;; The function SB-KERNEL:CHARACTER-STRING-P is undefined.
9253
9254(deftest misc.546
9255  (call-compiled
9256    '(lambda (p1)
9257       (declare (optimize (speed 0) (safety 1) (debug 2) (space 3))
9258                (type (eql a) p1))
9259       (typep p1 (type-of "")))
9260   'a)
9261  nil)
9262
9263;;; The function SB-KERNEL:SIMPLE-CHARACTER-STRING-P is undefined.
9264
9265(deftest misc.547
9266  (call-compiled
9267    '(lambda (p1)
9268       (declare (optimize (speed 3) (safety 3) (debug 0) (space 3))
9269                (type symbol p1))
9270       (typep (the (eql :c1) p1) (type-of "b")))
9271   :c1)
9272  nil)
9273
9274;;; The value NIL is not of type SB-KERNEL:CTYPE.
9275
9276(deftest misc.548
9277  (notnot
9278   (call-compiled
9279     '(lambda (p1)
9280        (declare (optimize (speed 2) (safety 1) (debug 3) (space 2)))
9281        (atom (the (member f assoc-if write-line t w) p1)))
9282    t))
9283  t)
9284
9285;;; IR2 type checking of unused values in [sic] not implemented.
9286
9287(deftest misc.549
9288  (call-compiled
9289    '(lambda (p2)
9290       (declare (optimize (speed 1) (safety 1) (debug 0) (space 3))
9291                (type symbol p2))
9292       (and :a (the (eql t) p2)))
9293   t)
9294  t)
9295
9296(deftest misc.550
9297  (call-compiled
9298    '(lambda (p1 p2)
9299       (declare (optimize (speed 3) (safety 2) (debug 3) (space 3))
9300                (type atom p1)
9301                (type symbol p2))
9302       (or p1 (the (eql t) p2)))
9303   nil t)
9304  t)
9305
9306(deftest misc.551
9307  (call-compiled
9308    '(lambda (p1 p2)
9309       (declare (optimize (speed 1) (safety 1) (debug 3) (space 3))
9310                (type symbol p1)
9311                (type (integer * 55687) p2))
9312       (funcall (the (eql +) p1) (the (integer -93015310 16215) p2) 2952))
9313   '+ 823)
9314  3775)
9315
9316(deftest misc.551a
9317  (call-compiled '(lambda (x) (declare (optimize (speed 2))
9318                                      (type symbol x))
9319                   (the (eql t) x))
9320   t)
9321  t)
9322
9323;;; cmucl (mar 2005 snapshot)
9324
9325(deftest misc.552
9326  (call-compiled
9327    '(lambda (p1)
9328       (declare (optimize (speed 3) (safety 1) (debug 2) (space 2))
9329                (type unsigned-byte p1))
9330       (logbitp (the (integer -780969457 *) p1) 9))
9331   26)
9332  nil)
9333
9334;;; ecls
9335;;; REAL is not of type REAL.
9336
9337(deftest misc.553
9338  (call-compiled '(lambda (x) (declare (type (eql #c(1.0 2.0)) x)) x)
9339           #c(1.0 2.0))
9340  #c(1.0 2.0))
9341
9342;;; 1 is not of type SEQUENCE
9343(deftest misc.554
9344  (call-compiled '(lambda (x) (declare (type (array t 1) x)) x) #(a))
9345  #(a))
9346
9347;;; sbcl 5 Mar 2005
9348;;; failed AVER: "(EQ CHECK SIMPLE)"
9349
9350(deftest misc.555
9351  (notnot
9352   (call-compiled '(lambda (p1)
9353                    (declare (optimize (speed 1) (safety 2) (debug 2) (space 0))
9354                             (type keyword p1))
9355                    (keywordp p1))
9356    :c))
9357  t)
9358
9359; Problem with FLOOR
9360; Wrong return value
9361(deftest misc.556
9362  (values
9363   (call-compiled '(lambda (p1 p2)
9364                    (declare
9365                     (optimize (speed 1) (safety 0)
9366                               (debug 0) (space 0))
9367                     (type (member 8174.8604) p1)
9368                     (type (member -95195347) p2))
9369                    (floor p1 p2))
9370    8174.8604 -95195347))
9371  -1)
9372
9373;  invalid number of arguments: 1
9374; (possible removal of code due to type fumble)
9375(deftest misc.557
9376  (values
9377   (call-compiled
9378     '(lambda (p1)
9379        (declare (optimize (speed 3) (safety 0) (debug 3) (space 1))
9380                 (type (member -94430.086f0) p1))
9381        (floor (the single-float p1) 19311235))
9382    -94430.086f0))
9383  -1)
9384
9385; FFLOOR
9386; Wrong return value
9387(deftest misc.558
9388  (values
9389   (call-compiled
9390     '(lambda (p1)
9391              (declare (optimize (speed 1) (safety 2)
9392                                 (debug 2) (space 3))
9393                       (type (eql -39466.56f0) p1))
9394              (ffloor p1 305598613))
9395    -39466.56f0))
9396  -1.0f0)
9397
9398; CEILING
9399;  invalid number of arguments: 1
9400(deftest misc.559
9401  (values
9402   (call-compiled
9403     '(lambda (p1)
9404        (declare (optimize (speed 1) (safety 1) (debug 1) (space 2))
9405                 (type (eql -83232.09f0) p1))
9406        (ceiling p1 -83381228))
9407    -83232.09f0))
9408  1)
9409
9410; wrong return value
9411(deftest misc.560
9412  (values
9413   (call-compiled
9414     '(lambda (p1)
9415        (declare (optimize (speed 1) (safety 1)
9416                           (debug 1) (space 0))
9417                 (type (member -66414.414f0) p1))
9418        (ceiling p1 -63019173f0))
9419    -66414.414f0))
9420  1)
9421
9422; FCEILING
9423; wrong return value
9424(deftest misc.561
9425  (values
9426   (call-compiled
9427     '(lambda (p1)
9428        (declare (optimize (speed 0) (safety 1)
9429                           (debug 0) (space 1))
9430                 (type (eql 20851.398f0) p1))
9431        (fceiling p1 80839863))
9432    20851.398f0))
9433  1.0f0)
9434
9435;;; LOG
9436;;; The value #C(-215549 39/40) is not of type (COMPLEX RATIONAL).
9437
9438(deftest misc.562
9439  (let ((fn '(lambda (p1)
9440               (declare (optimize (speed 0) (safety 0) (debug 0) (space 2))
9441                        (type (complex rational) p1))
9442               (log p1))))
9443    (notnot (complexp (call-compiled fn #C(-215549 39/40)))))
9444  t)
9445
9446;;; CONJUGATE
9447;;; Wrong result (#c(1 2))
9448
9449(deftest misc.563
9450  (call-compiled '(lambda (x)
9451                           (declare (optimize (speed 1) (safety 0) (debug 3) (space 1))
9452                                    (type (complex rational) x))
9453                           (conjugate (the (eql #c(1 2)) x)))
9454           #c(1 2))
9455  #c(1 -2))
9456
9457;;; PHASE
9458;;; The function SB-KERNEL:%ATAN2 is undefined.
9459
9460(deftest misc.564
9461  (notnot
9462   (typep
9463    (call-compiled
9464      '(lambda (p1)
9465         (declare (optimize (speed 3) (safety 2) (debug 3) (space 0))
9466                  (type complex p1))
9467         (phase (the (eql #c(1.0d0 2.0d0)) p1)))
9468     #c(1.0d0 2.0d0))
9469    'double-float))
9470  t)
9471
9472;;; ACL 6.2 (trial, x86 linux)
9473;;; Incorrect return value (t instead of nil)
9474
9475(deftest misc.565
9476  (call-compiled
9477    '(lambda (x)
9478       (declare (optimize (speed 2) (safety 1) (debug 3) (space 0))
9479                (type double-float x))
9480       (not (the (eql 1.0d0) x)))
9481   1.0d0)
9482  nil)
9483
9484;;; ASH
9485;;; Incorrect value (59 == (ash p1 -3))
9486
9487(deftest misc.566
9488  (call-compiled
9489    '(lambda (p1)
9490                 (declare (optimize (speed 3) (safety 2) (debug 2) (space 0))
9491                          (type (integer 465 127871) p1))
9492                 (ash p1 -35))
9493   477)
9494  0)
9495
9496;;; sbcl
9497;;; The value -4 is not of type (INTEGER -26794287907 505600792).
9498
9499(deftest misc.567
9500  (eqlt
9501   (call-compiled
9502     '(lambda (p2)
9503        (declare (optimize (speed 3) (safety 1) (debug 0) (space 1))
9504                 (type (integer -26794287907 505600792) p2))
9505        (scale-float -15193.341216130497d0 (the (integer * 25) p2)))
9506    -4)
9507   (scale-float -15193.341216130497d0 -4))
9508  t)
9509
9510;;; ACL 7.0 (x86 linux)
9511;;; Found by random type prop tests
9512
9513;;; Error: Attempt to divide 13026.059 by zero.
9514(deftest misc.568
9515  (values
9516   (call-compiled '(lambda (p2)
9517                  (declare (optimize (speed 1) (safety 3) (debug 3) (space 1))
9518                   (type (rational * 5325/3112) p2))
9519                  (floor 13026.059 (the (member 5325/3112 0 -2316/167 -449/460) p2)))
9520   5325/3112))
9521  7612)
9522
9523;;; Error: Attempt to take the car of #2\%b which is not listp.
9524(deftest misc.569
9525  (call-compiled
9526    '(lambda (p2)
9527      (declare (optimize (speed 3) (safety 2) (debug 1) (space 2))
9528       (type t p2))
9529      (ash -2609443 (the (integer -3 0) p2)))
9530   -1)
9531  -1304722)
9532
9533;;; Incorrect return value
9534(deftest misc.570
9535  (call-compiled '(lambda ()
9536                          (declare (optimize (speed 3) (safety 1)))
9537                          (char-equal #\: #\: #\;)))
9538  nil)
9539
9540;;; CODE-CHAR returns incorrect result
9541;;; (ACL7.0, 8 bit character image)
9542
9543(deftest misc.571
9544  (and (< 1000 char-code-limit)
9545       (let ((c1 (code-char 1000))
9546             (c2
9547              (call-compiled '(lambda (x)
9548                                      (declare (optimize speed (safety 1)))
9549                                      (code-char x))
9550                       1000)))
9551         (if (not (eql c1 c2))
9552             (list c1 c2)
9553             nil)))
9554  nil)
9555
9556;;; sbcl 0.8.20.19
9557;;; The value 22 is not of type (MOD 22).
9558
9559(deftest misc.572
9560  (call-compiled
9561    '(lambda (p4)
9562       (declare (optimize (speed 1) (safety 2) (debug 1) (space 1))
9563                (type (integer -59 65558) p4))
9564       (string<= #.(coerce "1yapt1l7eeenz72u6xqhdfimcyk" 'base-string)
9565                 #.(coerce "bababababbbabbabbababb" 'base-string)
9566                 :start2
9567                 (the (integer -3735 *) p4)))
9568   22)
9569  nil)
9570
9571;;; The value 0 is not of type NIL.
9572
9573(deftest misc.573
9574  (call-compiled
9575    '(lambda (p4)
9576       (declare (optimize (speed 2) (safety 1) (debug 2) (space 2))
9577                (type unsigned-byte p4))
9578       (string<= (coerce "pdhd5oeynvqlthz3xrrdycotf" 'base-string)
9579                 (coerce "" 'base-string)
9580                 :start1 (the (integer * 81) p4)))
9581   10)
9582  nil)
9583
9584;;; incorrect return value
9585
9586(deftest misc.574
9587  (call-compiled
9588    '(lambda (p4)
9589       (declare (optimize (speed 3) (safety 1)
9590                          (debug 1) (space 2))
9591                (type (integer * 397079023) p4))
9592             (string<= (coerce "e99mo7yAJ6oU4" 'base-string)
9593                       (coerce "aaABAAbaa" 'base-string)
9594                       :start1
9595                       (the
9596                           (member -34
9597                                   131074
9598                                   67108872
9599                                   9
9600                                   -3305367300
9601                                   335)
9602                         p4)))
9603   9)
9604  9)
9605
9606;;; In abcl (14 Mar 2005)
9607;;; The value T is not of type number.
9608
9609(deftest misc.575
9610  (equalp #c(1269346.0 47870.12254712875) t)
9611  nil)
9612
9613;;; The value #C(435422075/240892576 373) is not of type NUMBER.
9614
9615(deftest misc.576
9616  (* -7023900320 #C(435422075/240892576 373))
9617  #C(-95573789122736375/7527893 -2619914819360))
9618
9619;;; The value #C(-555014/122849 -6641556271) is not of type NUMBER.
9620
9621(deftest misc.577
9622  (/ -3185994774 #C(-555014/122849 -6641556271))
9623  #C(217230410502882805764/665706755984253572883257634437
9624     -319343563321640207257301634954/665706755984253572883257634437))
9625
9626;;; The value "" is not of type (STRING 1).
9627
9628(deftest misc.578
9629  (call-compiled '(lambda (p1) (declare (optimize safety)) (the (string 1) p1))
9630           (make-array '(1) :element-type 'base-char :initial-element #\x
9631                       :fill-pointer 0))
9632  "")
9633
9634;;; clisp (11 Jan 2005)
9635
9636;;; *** - SYSTEM::%RPLACA: NIL is not a pair
9637
9638(deftest misc.579
9639  (call-compiled '(lambda ()
9640                   (declare (optimize (speed 3) (safety 3) (debug 3) (space 0)))
9641                   (member 61 '(432445) :allow-other-keys t :foo t)))
9642  nil)
9643
9644;;; sbcl 0.8.20.19
9645;;;  The component type for COMPLEX is not numeric: (OR RATIO FIXNUM)
9646
9647(deftest misc.580
9648  (notnot-mv (typep #c(1 2) '(complex (or ratio fixnum))))
9649  t)
9650
9651;;; The value -5067.2056 is not of type (SINGLE-FLOAT -5067.2056 -5067.2056).
9652
9653(deftest misc.581
9654  (notnot
9655   (floatp
9656    (call-compiled '(lambda (x)
9657                     (declare (type (eql -5067.2056) x))
9658                     (+ 213734822 x))
9659     -5067.2056)))
9660  t)
9661
9662(deftest misc.581a
9663  (notnot
9664   (typep
9665    (call-compiled '(lambda (x) (declare (type (eql -1.0) x))
9666                     ;;; Note!  #x1000001 is the least positive integer
9667                     ;;; for which this fails on x86
9668                     (+ #x1000001 x))
9669     -1.0f0)
9670    'single-float))
9671  t)
9672
9673;;; Incorrect result
9674
9675(deftest misc.582
9676  (let ((result
9677         (call-compiled
9678           ' (lambda (p1)
9679               (declare (optimize (speed 0) (safety 1) (debug 1) (space 1))
9680                        (type (eql -39887.645) p1))
9681               (mod p1 382352925))
9682          -39887.645)))
9683    (if (plusp result)
9684        t
9685      result))
9686  t)
9687
9688;;; Argument X is not a REAL: #<FUNCTION {A39DEDD}>
9689
9690(deftest misc.583
9691  (notnot-mv
9692   (complexp
9693    (call-compiled
9694      '(lambda (p1)
9695         (declare (optimize (speed 0) (safety 0) (debug 2) (space 3))
9696                  (type (complex rational) p1))
9697         (sqrt p1))
9698     #c(-9003 -121))))
9699  t)
9700
9701;;; The value -27 is not of type (INTEGER -34359738403 -24).
9702
9703(deftest misc.584
9704  (approx=
9705   (call-compiled
9706     '(lambda (p1 p2)
9707        (declare (optimize (speed 1) (safety 1) (debug 0) (space 1))
9708                 (type (member -3712.8447) p1)
9709                 (type (integer -34359738403 -24) p2))
9710        (scale-float p1 p2))
9711    -3712.8447 -27)
9712   (scale-float -3712.8447 -27))
9713  t)
9714
9715;;; IR2 type checking of unused values in not implemented.
9716;;; (note that this test has no THE form)
9717
9718(deftest misc.585
9719  (call-compiled '(lambda (p1)
9720                   (declare (optimize (speed 0) (safety 0) (debug 3) (space 3))
9721                            (type symbol p1))
9722                   (copy-list p1))
9723   nil)
9724  nil)
9725
9726;;; The value 4 is not of type (UNSIGNED-BYTE 2).
9727
9728(deftest misc.586
9729  (call-compiled
9730    '(lambda (p6)
9731       (declare (optimize (speed 0) (safety 2) (debug 0) (space 0))
9732                (type (integer -2 3009181) p6))
9733       (string> (coerce "ababaaabb" 'base-string)
9734                (coerce "ubbm" 'base-string)
9735                :start1 2 :start2 p6 :end1 8))
9736   4)
9737  2)
9738
9739;;; sbcl 0.8.20.27
9740;;; Control stack exhausted
9741
9742(deftest misc.587
9743  (let ((result (call-compiled
9744                  '(lambda (p2)
9745                     (declare (optimize (speed 0) (safety 3) (debug 1) (space 0))
9746                              (type (eql 33558541) p2))
9747                     (- 92215.266 p2))
9748                 33558541)))
9749    (notnot (typep result 'single-float)))
9750  t)
9751
9752;;; Lispworks 4.3 Personal Edition
9753;;; Incorrect return value (T instead of NIL)
9754
9755(deftest misc.588
9756  (call-compiled '(lambda nil (declare (optimize (speed 2) (safety 1) (debug 1) (space 1)))
9757                           (functionp 3502843)))
9758  nil)
9759
9760;;;  (ARRAY NIL) is an illegal type specifier.
9761
9762(deftest misc.589
9763  (typep 1 '(array nil))
9764  nil)
9765
9766;;; Segmentation violation
9767
9768(deftest misc.590
9769  (call-compiled '(lambda nil (declare (optimize debug)) (symbolp -86755)))
9770  nil)
9771
9772;;; parse-integer fails on displaced base strings
9773
9774(deftest misc.591
9775  (let* ((s1 (coerce "708553218828630100500" 'base-string))
9776         (s2 (make-array '(13) :element-type 'base-char
9777                         :displaced-to s1
9778                         :displaced-index-offset 5)))
9779    (parse-integer s2))
9780  3218828630100
9781  13)
9782
9783;;; abcl, 19 Mar 2005
9784;;; Stack overflow
9785
9786(deftest misc.592
9787  (equalp #*0 "0")
9788  nil)
9789
9790;;; clisp 21 Mar 2005 (-ansi -q, x86 Linux, gcc 3.2.2)
9791;;; *** - Compiler bug!! Occurred in SP-DEPTH at <0.
9792
9793(deftest misc.593
9794  (call-compiled
9795    '(lambda (a b)
9796       (declare (ignorable a b))
9797       (declare (optimize (space 3) (debug 0) (safety 1)
9798                          (compilation-speed 3) (speed 1)))
9799       (prog2
9800           (catch 'ct1 (if (or (and t (not (and (and (or a t) nil) nil))) nil)
9801                           a
9802                         (reduce #'(lambda (lmv5 lmv2) 0) (vector b 0 a))))
9803           0))
9804   2212755 3154856)
9805  0)
9806
9807;;; OpenMCL 0.14.3
9808;;; 28192897: value doesn't match constraint :U8CONST in template for CCL::MATCH-VREG
9809
9810(deftest misc.594
9811  (call-compiled
9812    '(lambda (a b c)
9813       (declare (ignorable a b c))
9814       (declare (type (integer -1 0) a)
9815                (type (integer -1065019672 -181184465) b)
9816                (type (integer 30074 1948824693) c))
9817       (declare (optimize (safety 2) (compilation-speed 1) (speed 2)
9818                          (space 0) (debug 0)))
9819       (ash c (min 82 -28192897)))
9820   0 -714979492 1474663829)
9821  0)
9822
9823;;; ecl
9824;;; 10000000.0d0 is not of type INTEGER.
9825
9826(deftest misc.595
9827  (floor 1/2 1.0d0)
9828  0 #.(float 1/2 1.0d0))
9829
9830;;; sbcl 0.8.21.45 (x86)
9831;;; The function SB-KERNEL:VECTOR-NIL-P is undefined.
9832
9833(deftest misc.596
9834  (notnot
9835   (let ((s (coerce "a" 'base-string)))
9836     (call-compiled
9837       `(lambda ()
9838          (declare (optimize (speed 0) (safety 3) (debug 2) (space 1)))
9839          (typep ,s '(string 1))))))
9840  t)
9841
9842
9843;;; OpenMCL
9844;;; Incorrect value
9845
9846(deftest misc.597
9847  (call-compiled '(lambda (c)
9848                           (declare (optimize (speed 1) (compilation-speed 2)
9849                                              (space 1) (debug 1) (safety 2)))
9850                           (declare (type (integer 1 41) c))
9851                           (logxor -1 c))
9852           8)
9853  -9)
9854
9855;;; SBCL 0.9.1.19
9856;;; Failure of IMAGPART in compiled code
9857
9858(deftest misc.598
9859  (call-compiled '(lambda (p1)
9860                           (declare (optimize (speed 2) (safety 0) (debug 3)
9861                                              (space 1))
9862                                    (type short-float p1))
9863                           (imagpart (the short-float p1)))
9864           -79916.61s0)
9865  -0.0s0)
9866
9867;;; The value 20408096470 is not of type (INTEGER 19856842407 20640917103)
9868
9869(deftest misc.599
9870  (call-compiled
9871    '(lambda (b)
9872       (declare (type (integer 19856842407 20640917103) b))
9873       (declare (optimize (debug 1) (speed 3) (compilation-speed 2)
9874                          (safety 3) (space 3)))
9875       (lognand b (deposit-field b (byte 0 0) 3762528061)))
9876   20408096470)
9877  -3225589269)
9878
9879;;; SBCL 0.9.1.21
9880;;; The function SB-C::SPECIFER-TYPE is undefined.
9881
9882(deftest misc.600
9883  (call-compiled
9884    '(lambda ()
9885       (declare (notinline min ash))
9886       (declare (optimize (speed 0) (debug 1) (safety 1)
9887                          (space 1) (compilation-speed 3)))
9888       (logxor (ash 0 (min 90 0)) 0)))
9889  0)
9890
9891(deftest misc.601
9892  (call-compiled
9893    '(lambda ()
9894       (declare (notinline gcd))
9895       (declare
9896        (optimize (debug 3) (space 3) (safety 3)
9897                  (compilation-speed 2) (speed 3)))
9898       (logeqv 0 (gcd 0))))
9899  -1)
9900
9901;;; Lispworks 4450
9902;;; Show sporadic bugs in compiled code
9903
9904(deftest misc.602
9905  (let ((form '(lambda () (if (oddp (progn (vector) 3747237)) 'a nil))))
9906    (loop repeat 10 collect (call-compiled form)))
9907  (a a a a a a a a a a))
9908
9909;;; gcl 2.7.0 (12 Jul 2005)
9910;;; Error in WHEN [or a callee]: The GO tag #:G3614 is missing.
9911
9912(deftest misc.603
9913  (call-compiled '(lambda () (let ((x (values 0))) 0)))
9914  0)
9915
9916;;; gcl 2.7.0 (23 Jul 2005, experimental cvs HEAD)
9917;;; Error in COMPILER::T1EXPR [or a callee]:
9918;;;   LOAD-TIME-VALUE is not of type (OR RATIONAL FLOAT).
9919
9920(deftest misc.604
9921  (let ((form '(lambda (p1 p2)
9922                 (declare (optimize (speed 2) (safety 1) (debug 3) (space 3))
9923                          (type real p1) (type t p2))
9924                 (eql (the (rational -55253767/37931089) p1) (the atom p2)))))
9925    (call-compiled form -55253767/37931089 'a))
9926  nil)
9927
9928;;; Error in FUNCALL [or a callee]: LOAD-TIME-VALUE is not of type NUMBER.
9929
9930(deftest misc.605
9931  (let ((form '(lambda (p1 p2)
9932                 (declare (optimize (speed 3) (safety 1) (debug 0) (space 0))
9933                          (type number p1) (type (float 0.0 3579.314s0) p2))
9934                 (eql (the real p1) p2))))
9935    (not (call-compiled form 3579.314s0 3579.314s0)))
9936  nil)
9937
9938;;; Error in COMPILER::CMP-ANON [or a callee]: #\a is not of type FIXNUM.
9939
9940(deftest misc.606
9941  (let ((form '(lambda ()
9942                 (declare (optimize (speed 3) (safety 2) (debug 3) (space 2)))
9943                 (equal #\a #c(-1775806.0s0 88367.29s0)))))
9944    (call-compiled form))
9945  nil)
9946
9947;;; Error in COMPILER::CMP-ANON [or a callee]: #*1 is not of type FIXNUM.
9948
9949(deftest misc.607
9950  (call-compiled '(lambda ()
9951                           (declare (optimize (speed 0) (safety 2) (debug 2) (space 2)))
9952                           (equal #*1 1)))
9953  nil)
9954
9955;;; Error in COMPILER::CMP-ANON [or a callee]: #\& is not of type FIXNUM.
9956
9957(deftest misc.608
9958  (call-compiled '(lambda (p1)
9959                           (declare (optimize (speed 3) (safety 2) (debug 3) (space 3))
9960                                    (type (integer -62603278 -31187) p1))
9961                           (equal p1 #\&))
9962           -31228)
9963  nil)
9964
9965;;; Wrong return value (was returning T)
9966
9967(deftest misc.609
9968  (call-compiled '(lambda ()
9969                           (declare (optimize (speed 0) (safety 0) (debug 0) (space 3)))
9970                           (equalp "b" #*)))
9971  nil)
9972
9973;;; Error in COMPILER::CMP-ANON [or a callee]: 7933992 is not of type SYMBOL.
9974
9975(deftest misc.610
9976  (not (call-compiled '(lambda (p2)
9977                                (declare (optimize (speed 1) (safety 1) (debug 3) (space 2))
9978                                         (type (cons symbol) p2))
9979                                (typep -32 p2))
9980                '(eql -32)))
9981  nil)
9982
9983;;; Error in CAR [or a callee]: -757161859 is not of type LIST.
9984
9985(deftest misc.611
9986  (call-compiled '(lambda (p1)
9987                           (declare (optimize (speed 1) (safety 3) (debug 0) (space 2))
9988                                    (type (cons atom) p1))
9989                           (car p1))
9990           '(48144509 . a))
9991  48144509)
9992
9993;;; gcl (09 Aug 2005)
9994;;; Error in COMPILER::POSSIBLE-EQ-LIST-SEARCH [or a callee]: COMPILER::POSSIBLE-EQ-LIST-SEARCH does not allow the keyword :B.
9995
9996(deftest misc.612
9997  (call-compiled '(lambda (p1 p2)
9998                  ((lambda (x y) (typep x (type-of y))) p1
9999                   (the (member "foo" #\- :b "bar") p2)))
10000   #*1 :b)
10001  nil)
10002
10003;;; Error in APPLY [or a callee]: The tag CT1 is undefined.
10004
10005(deftest misc.613
10006  (call-compiled
10007    '(lambda (a)
10008      (declare (optimize (space 3) (safety 1) (debug 3)
10009                (speed 1) (compilation-speed 3)))
10010      (catch 'ct1
10011        (reduce #'(lambda (lmv6 lmv5) (throw 'ct1 0))
10012                (list a 0 0) :end 2)))
10013   1)
10014  0)
10015
10016;;; Error in MULTIPLE-VALUE-BIND [or a callee]: Cannot get relocated section contents
10017
10018(deftest misc.614
10019  (call-compiled
10020    '(lambda (a)
10021      (declare (type (integer -3873004182 -3717314779) a))
10022      (declare (ignorable a))
10023      (declare (optimize (debug 0) (safety 1) (speed 3)
10024                (space 0) (compilation-speed 0)))
10025      (let* ((v1 (make-array nil :initial-element
10026                             (reduce #'logand (list a 0 a)))))
10027        (declare (dynamic-extent v1))
10028        0))
10029   -3755148485)
10030  0)
10031
10032;;; gcl type-prop test failures (10/30/2005)
10033
10034(deftest misc.615
10035  (let* ((x -8183.7625s0)
10036         (form `(lambda (p1) (eql p1 ,x))))
10037    (not (not (call-compiled form x))))
10038  t)
10039
10040;;; cmucl 19c
10041;;; Wrong return value
10042
10043(deftest misc.616
10044  (call-compiled
10045    '(lambda (a b c)
10046       (declare (type (integer -153105 -36629) a))
10047       (declare (type (integer -7811721705 3704985368) b))
10048       (declare (type (integer 0 15) c))
10049       (declare (ignorable a b c))
10050       (declare (optimize (safety 1) (space 0) (compilation-speed 0) (speed 3)
10051                          (debug 3)))
10052       (catch 'ct7
10053         (labels ((%f12
10054                   (f12-1 f12-2
10055                          &optional
10056                          &key (key1 0)
10057                          (key2
10058                           (reduce #'(lambda (lmv2 lmv1) 0)
10059                                   (vector 0 0)
10060                                   :end 2
10061                                   :start 0
10062                                   :from-end t))
10063                          &allow-other-keys)
10064                   a))
10065                 c)))
10066   -134217 -3699719058 10)
10067  10)
10068
10069;;; sbcl 0.9.7.33 (x86)
10070;;; The value 16561216769 is not of type (INTEGER -2147483648 4294967295).
10071;;; On sparc solaris, the error message is:
10072;;;   debugger invoked on a SB-KERNEL:CASE-FAILURE:
10073;;;  16561216769 fell through ETYPECASE expression.
10074;;;  Wanted one of (SB-C:FIXUP (OR (SIGNED-BYTE 32) (UNSIGNED-BYTE 32))
10075;;;                            (SIGNED-BYTE 13)).
10076
10077(deftest misc.617
10078  (call-compiled
10079    '(lambda (b)
10080       (declare (optimize (space 3) (safety 2) (debug 1) (speed 3)
10081              (compilation-speed 2)))
10082       (let* ((v2 16561216769))
10083     (lognand (loop for lv3 below 0 sum (setf v2 lv3))
10084          (if (typep v2 '(integer -39 7))
10085              b
10086            0))))
10087   -10298)
10088  -1)
10089
10090;;;  failed AVER: "(EQ POP (CAR END-STACK))"
10091;;; (same on sparc solaris)
10092
10093(deftest misc.618
10094  (call-compiled
10095    '(lambda (c)
10096       (declare (optimize (space 0) (compilation-speed 2) (debug 0)
10097              (speed 3) (safety 0)))
10098       (block b1
10099          (ignore-errors
10100           (multiple-value-prog1 0
10101                     (apply (constantly 0)
10102                        c
10103                        (catch 'ct2 (return-from b1 0))
10104                        nil)))))
10105   -4951)
10106  0)
10107
10108;;; sbcl 0.9.7.33 (sparc solaris)
10109;;; Incorrect return value
10110
10111(deftest misc.619
10112  (call-compiled
10113    '(lambda (b)
10114      (declare (type (integer 75 206) b))
10115      (declare (optimize (speed 0) (compilation-speed 2) (debug 2)
10116        (space 2) (safety 2)))
10117      (mask-field (byte 4 28) (ash b 70)))
10118   79)
10119  0)
10120
10121;;;  The value 64 is not of type (OR SB-C:TN (UNSIGNED-BYTE 6) NULL).
10122
10123(deftest misc.620
10124  (call-compiled '(lambda ()
10125                          (declare (optimize (safety 3) (compilation-speed 3)
10126                                    (debug 1) (space 3) (speed 1)))
10127                          (loop for lv2 below 1 sum (ash lv2 64))))
10128  0)
10129
10130;;; sbcl 0.9.8.17, x86 linux
10131;;;   The value 32 is not of type (OR (INTEGER -67 -67) (INTEGER -63 -63)).
10132
10133(deftest misc.621
10134  (call-compiled
10135    '(lambda ()
10136       (declare (optimize (debug 1) (space 0) (compilation-speed 3)
10137                          (speed 1) (safety 3)))
10138       (loop for lv1 below 2 sum
10139             (dotimes (iv2 2 0)
10140               (mod (dotimes (iv4 2 0) (progn (count lv1 #*0) 0))
10141                    (min -63 (rem 0 (min -67 0))))))))
10142 
10143  0)
10144
10145;;; sbcl 0.9.9.8, x86 linux
10146;;; TYPE-ERROR: The value 17549.955 is not of type REAL.
10147
10148(deftest misc.622
10149  (call-compiled
10150    '(lambda (p2)
10151       (declare (optimize (speed 3) (safety 2) (debug 3) (space 0))
10152                (type real p2))
10153       (+ 81535869 (the (member 17549.955 #:g35917) p2)))
10154   17549.955)
10155  #.(+ 81535869 17549.955))
10156
10157;;; sbcl 0.9.9.19
10158;;;   The function SB-VM::%LOGBITP is undefined.
10159
10160(deftest misc.623
10161  (call-compiled
10162    '(lambda ()
10163       (declare (optimize (space 2) (speed 0) (debug 2)
10164                          (compilation-speed 3) (safety 0)))
10165       (loop for lv3 below 1
10166             count (minusp
10167                    (loop for lv2 below 2
10168                        count (logbitp 0
10169                                       (bit #*1001101001001
10170                                            (min 12 (max 0 lv3)))))))))
10171  0)
10172
10173;;;     failed AVER: "(< Y 29)"
10174
10175(deftest misc.624
10176  (call-compiled
10177    '(lambda (a)
10178       (declare (type (integer 21 28) a))
10179       (declare (optimize (compilation-speed 1) (safety 2)
10180                          (speed 0) (debug 0) (space 1)))
10181       (let* ((v7 (flet ((%f3 (f3-1 f3-2)
10182                              (loop for lv2 below 1
10183                                    count
10184                                    (logbitp 29
10185                                             (sbit #*10101111
10186                                                   (min 7 (max 0 (eval '0))))))))
10187                     (%f3 0 a))))
10188         0))
10189   22)
10190  0)
10191
10192;;; sbcl 0.9.9.22 (x86 linux)
10193
10194;;; The following two errors appear to require the presence
10195;;; of two ELT forms.  Somehow, the type check for one is
10196;;; misplaced into the other.
10197
10198;;; TYPE-ERROR: The value 0 is not of type (INTEGER 3 3).
10199
10200(deftest misc.625
10201  (call-compiled
10202    '(lambda (a)
10203       (declare (type (integer -2 -1) a))
10204       (declare (optimize (speed 0) (space 0) (safety 1)
10205                      #+sbcl (sb-c:insert-step-conditions 0)
10206                      (debug 3) (compilation-speed 1)))
10207       (elt '(47119 39679 57498 35248 23784 40597 53473 29454)
10208            (min 7
10209                 (max 0
10210                      (flet ((%f7
10211                              (f7-1 f7-2
10212                                    &optional
10213                                    &key
10214                                    (key1
10215                                     (elt '(0 25 30 12 27 5)
10216                                          (min 5 (max 0 3)))))
10217                              0))
10218                            (flet ((%f6
10219                                    (&optional