0.8.21.16:
[sbcl.git] / tests / dynamic-extent.impure.lisp
index 5bdd4ad..942be0d 100644 (file)
   )
 
 \f
-(sb-ext:quit :unix-status 104)
\ No newline at end of file
+;;; Bugs found by Paul F. Dietz
+(assert
+ (eq
+  (funcall
+   (compile
+    nil
+    '(lambda (a b)
+      (declare (optimize (speed 2) (space 0) (safety 0)
+                (debug 1) (compilation-speed 3)))
+      (let* ((v5 (cons b b)))
+        (declare (dynamic-extent v5))
+        a)))
+   'x 'y)
+  'x))
+
+\f
+;;; other bugs
+
+;;; bug reported by Svein Ove Aas
+(defun svein-2005-ii-07 (x y)
+  (declare (optimize (speed 3) (space 2) (safety 0) (debug 0)))
+  (let ((args (list* y 1 2 x)))
+    (declare (dynamic-extent args))
+    (apply #'aref args)))
+(assert (eql
+         (svein-2005-ii-07
+          '(0)
+          #3A(((1 1 1) (1 1 1) (1 1 1))
+              ((1 1 1) (1 1 1) (4 1 1))
+              ((1 1 1) (1 1 1) (1 1 1))))
+         4))
+
+\f
+(sb-ext:quit :unix-status 104)