X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=tests%2Fdynamic-extent.impure.lisp;h=942be0d56e5649e6295ee62c6dca900576b4bafa;hb=5cd0fc84df83d1b3321b7fc969843207721de429;hp=5bdd4ad95e5225c71e224af29d8b44fb11a63565;hpb=8902b8b6bd2e9285749dd39d313b33b6c69c5213;p=sbcl.git diff --git a/tests/dynamic-extent.impure.lisp b/tests/dynamic-extent.impure.lisp index 5bdd4ad..942be0d 100644 --- a/tests/dynamic-extent.impure.lisp +++ b/tests/dynamic-extent.impure.lisp @@ -113,4 +113,37 @@ ) -(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)) + + +;;; 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)) + + +(sb-ext:quit :unix-status 104)