mirror of
git://git.code.sf.net/p/sbcl/sbcl
synced 2026-09-10 07:26:40 -04:00
19 lines
1,003 B
Common Lisp
19 lines
1,003 B
Common Lisp
;;; Make sure MAP-REFERENCING-OBJECTS doesn't spuriously treat raw bits as
|
|
;;; potential pointers. Also make sure it sees the SYMBOL-INFO slot.
|
|
(defstruct afoo (slot nil :type sb-ext:word))
|
|
(defvar *afoo* (make-afoo :slot (sb-kernel:get-lisp-obj-address '*posix-argv*)))
|
|
(with-test (:name :map-referencing-objs
|
|
:broken-on :mark-region-gc)
|
|
(sb-vm::map-referencing-objects (lambda (x) (assert (not (typep x 'afoo))))
|
|
:dynamic '*posix-argv*)
|
|
(let ((v (sb-kernel:symbol-%info 'satisfies)) referers)
|
|
(sb-vm::map-referencing-objects (lambda (referer) (push referer referers))
|
|
#+generational :dynamic #-generational :static v)
|
|
#+immobile-space
|
|
(sb-vm::map-referencing-objects (lambda (referer) (push referer referers))
|
|
:immobile v)
|
|
(assert (member 'satisfies referers))))
|
|
|
|
(with-test (:name :hexdump) ; Don't crash, that's all
|
|
(sb-vm:hexdump (1+ most-positive-fixnum)))
|