projects
/
sbcl.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
1.0.10.7: multiply-used DX LVARS
[sbcl.git]
/
tests
/
dynamic-extent.impure.lisp
diff --git
a/tests/dynamic-extent.impure.lisp
b/tests/dynamic-extent.impure.lisp
index
4ec3d4d
..
78923f3
100644
(file)
--- a/
tests/dynamic-extent.impure.lisp
+++ b/
tests/dynamic-extent.impure.lisp
@@
-160,6
+160,16
@@
(true dx)
nil))
(true dx)
nil))
+;;; multiple uses for dx lvar
+
+(defun-with-dx multiple-dx-uses ()
+ (let ((dx (if (true t)
+ (list 1 2 3)
+ (list 2 3 4))))
+ (declare (dynamic-extent dx))
+ (true dx)
+ nil))
+
;;; with-spinlock should use DX and not cons
(defvar *slock* (sb-thread::make-spinlock :name "slocklock"))
;;; with-spinlock should use DX and not cons
(defvar *slock* (sb-thread::make-spinlock :name "slocklock"))
@@
-201,6
+211,7
@@
(assert-no-consing (cons-on-stack 42))
(assert-no-consing (nested-dx-conses))
(assert-no-consing (nested-dx-lists))
(assert-no-consing (cons-on-stack 42))
(assert-no-consing (nested-dx-conses))
(assert-no-consing (nested-dx-lists))
+ (assert-no-consing (multiple-dx-uses))
;; Not strictly DX..
(assert-no-consing (test-hash-table))
#+sb-thread
;; Not strictly DX..
(assert-no-consing (test-hash-table))
#+sb-thread