bdwgc accesses the env during collection when it cleans disappearing links (weak pointers)
;;;
;;; This test leads to a segfault while running tests, hence it is disabled.
;;; So what's going on?
;;;
;;; 1. si_gc disables interrupts for the env for the time GC_collect is running.
;;; 2. GC_collect calls GC_finalize > GC_make_disappearing_links_disappear
;;; 3. Finally GC_is_marked calls mark_bit_from_hdr that marks env
;;;
;;; Note that this failure happens sometimes with two tests above, but it is
;;; much rarer -- the test below more or less deterministically crashes ECL.
;;;
#+ (or)
(test hash-tables.gc-shakedown
(dolist (sk '(nil :key :value :key-or-value :key-and-value))
(let ((ht (make-hash-table :weakness sk :size 2 :test #'eq)))
(progn
(progn
(loop repeat 4 do (setf (gethash (gensym) ht) 42))
(setf (gethash :sm ht) t)
(ext:gc t))
"Crashed on ~a." sk))))
Found while fixing other issues with weak hash tables. Leaving as is for now with a disabled test (See #761 (closed)).