X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;ds=inline;f=tests%2Fdynamic-extent.impure.lisp;h=e8a177a1799d246865d9c54bffe852b2bc684fa0;hb=82f9c527cb607ccd19e5b24261dfe9af7b1ba72e;hp=be5ddbc9d82396a046d0f1e2f9fed84b9de5290f;hpb=7c43a308982c0a834db1727239b4ddf576b39fb0;p=sbcl.git diff --git a/tests/dynamic-extent.impure.lisp b/tests/dynamic-extent.impure.lisp index be5ddbc..e8a177a 100644 --- a/tests/dynamic-extent.impure.lisp +++ b/tests/dynamic-extent.impure.lisp @@ -557,7 +557,7 @@ ;; This fails on threaded PPC because the hash-table implementation ;; uses recursive system spinlocks, which cons (see below for test ;; (:no-consing :spinlock), which also fails on threaded PPC). -(with-test (:name (:no-consing :hash-tables) :fails-on (and :ppc :sb-thread)) +(with-test (:name (:no-consing :hash-tables) :fails-on '(and :ppc :sb-thread)) (assert-no-consing (test-hash-table))) ;;; with-spinlock and with-mutex should use DX and not cons @@ -895,10 +895,21 @@ (cons #'bar (lambda () (declare (dynamic-extent #'bar)))))) 'sb-ext:compiler-note))) -(with-test (:name :bug-586105) +(with-test (:name :bug-586105 :fails-on '(not (and :stack-allocatable-vectors + :stack-allocatable-lists))) (flet ((test (x) (let ((vec (make-array 1 :initial-contents (list (list x))))) (declare (dynamic-extent vec)) (assert (eql x (car (aref vec 0))))))) (assert-no-consing (test 42)))) +(defun bug-681092 () + (declare (optimize speed)) + (let ((c 0)) + (flet ((bar () c)) + (declare (dynamic-extent #'bar)) + (do () ((list) (bar)) + (setf c 10) + (return (bar)))))) +(with-test (:name :bug-681092) + (assert (= 10 (bug-681092))))