Posted on 2005-03-21 in Lisp
Spot the bug! (From the SBCL debugger internals)
;; pointer
(and (logand val 1)
;; Check that the pointer is valid XXX Could do a better
;; job FIXME: eg by calling out to an is_valid_pointer
;; routine in the C runtime support code
)
The bug caused the generation of invalid lispobjs under some very rare circumstances (and only on 64-bit SBCL), leading to failing GC assertions much further down the road. Even after isolating the problem to one function (which took a while) I couldn't spot the actual bug without adding copious amounts of debug output. ETOOMUCHC.