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

Last change on this file since 14368 was 14368, checked in by gz, 9 years ago

Don't muffle warnings when running test, as that affects the return values from compile-file. Tweak tests to not cause warnings

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