X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=tests%2Fdynamic-extent.impure.lisp;h=dd256ac08f810e63ae0368442fee0bfa13abdd34;hb=bf69a011740c082566642b2335a9968b441cadec;hp=ab00e06a043375a4128644feeb8e42a0c56fdb56;hpb=b56c1a4dc22aa0ac827343667584aa6090b15f02;p=sbcl.git diff --git a/tests/dynamic-extent.impure.lisp b/tests/dynamic-extent.impure.lisp index ab00e06..dd256ac 100644 --- a/tests/dynamic-extent.impure.lisp +++ b/tests/dynamic-extent.impure.lisp @@ -176,12 +176,14 @@ (let ((v (make-array (min n 1)))) (declare (sb-int:truly-dynamic-extent v)) (true v) + (true v) nil)) (defun-with-dx make-array-on-stack-1 () (let ((v (make-array '(42) :element-type 'single-float))) (declare (dynamic-extent v)) (true v) + (true v) nil)) (defun-with-dx make-array-on-stack-2 (n x) @@ -189,6 +191,7 @@ (let ((v (make-array n :initial-contents x))) (declare (sb-int:truly-dynamic-extent v)) (true v) + (true v) nil)) (defun-with-dx make-array-on-stack-3 (x y z) @@ -197,18 +200,63 @@ :element-type t :initial-contents x))) (declare (sb-int:truly-dynamic-extent v)) (true v) + (true v) nil)) (defun-with-dx make-array-on-stack-4 () (let ((v (make-array 3 :initial-contents '(1 2 3)))) (declare (sb-int:truly-dynamic-extent v)) (true v) + (true v) nil)) (defun-with-dx make-array-on-stack-5 () (let ((v (make-array 3 :initial-element 12 :element-type t))) (declare (sb-int:truly-dynamic-extent v)) (true v) + (true v) + nil)) + +(defun-with-dx make-array-on-stack-6 () + (let ((v (make-array 3 :initial-element 12 :element-type '(unsigned-byte 8)))) + (declare (sb-int:truly-dynamic-extent v)) + (true v) + (true v) + nil)) + +(defun-with-dx make-array-on-stack-7 () + (let ((v (make-array 3 :initial-element 12 :element-type '(signed-byte 8)))) + (declare (sb-int:truly-dynamic-extent v)) + (true v) + (true v) + nil)) + +(defun-with-dx make-array-on-stack-8 () + (let ((v (make-array 3 :initial-element 12 :element-type 'word))) + (declare (sb-int:truly-dynamic-extent v)) + (true v) + (true v) + nil)) + +(defun-with-dx make-array-on-stack-9 () + (let ((v (make-array 3 :initial-element 12.0 :element-type 'single-float))) + (declare (sb-int:truly-dynamic-extent v)) + (true v) + (true v) + nil)) + +(defun-with-dx make-array-on-stack-10 () + (let ((v (make-array 3 :initial-element 12.0d0 :element-type 'double-float))) + (declare (sb-int:truly-dynamic-extent v)) + (true v) + (true v) + nil)) + +(defun-with-dx make-array-on-stack-11 () + (let ((v (make-array (the integer (opaque-identity 3)) :initial-element 12.0d0 :element-type 'double-float))) + (declare (sb-int:truly-dynamic-extent v)) + (true v) + (true v) nil)) (defun-with-dx vector-on-stack (x y) @@ -535,7 +583,19 @@ (assert-no-consing (make-array-on-stack-5)) (assert-no-consing (vector-on-stack :x :y))) -(with-test (:name (:no-consing :dx-raw-instances) :fails-on :ppc :skipped-on '(not :raw-instance-init-vops)) +(with-test (:name (:no-consing :specialized-dx-vectors) + :fails-on :x86 + :skipped-on `(not (and :stack-allocatable-vectors + :c-stack-is-control-stack))) + (assert-no-consing (make-array-on-stack-6)) + (assert-no-consing (make-array-on-stack-7)) + (assert-no-consing (make-array-on-stack-8)) + (assert-no-consing (make-array-on-stack-9)) + (assert-no-consing (make-array-on-stack-10)) + (assert-no-consing (make-array-on-stack-11))) + +(with-test (:name (:no-consing :dx-raw-instances) :skipped-on '(or (not :raw-instance-init-vops) + (not (and :gencgc :c-stack-is-control-stack)))) (let (a b) (setf a 1.24 b 1.23d0) (assert-no-consing (make-foo2-on-stack a b)))