0.9.0.30: towards callbacks: static-vectors
[sbcl.git] / tests / dynamic-extent.impure.lisp
index 33c6186..cb436c3 100644 (file)
         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))
+
+;;; bug reported by Brian Downing: stack-allocated arrays were not
+;;; filled with zeroes.
+(defun-with-dx bdowning-2005-iv-16 ()
+  (let ((a (make-array 11 :initial-element 0)))
+    (declare (dynamic-extent a))
+    (assert (every (lambda (x) (eql x 0)) a))))
+(bdowning-2005-iv-16)
+
 \f
 (sb-ext:quit :unix-status 104)