Failed AVER in SB-C::NODE-ENDS-BLOCK
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
| SBCL |
Undecided
|
Unassigned |
Bug Description
(defun f9 (a)
(block b2
(evenp
(let* ((v1 (make-array nil :initial-element
(declare (dynamic-extent v1))
(aref v1)
))))
==>
failed AVER:
(AND (EQ (SB-C::CTRAN-KIND SB-C::START) :INSIDE-BLOCK)
(NOT (SB-C::
This appears to have something to do with the DYNAMIC-EXTENT declaration. It also doesn't occur if the zero dimensional array is replaced with a vector of 1 element.
Paul F. Dietz (paul-f-dietz) wrote : | #1 |
Paul F. Dietz (paul-f-dietz) wrote : | #2 |
Similar example:
(defun f ()
(let* ((v (make-array nil :initial-element (let ((v2 (cons 0 0)))
(declare (dynamic-extent v))
(aref v)))
Stas Boukarev (stassats) wrote : | #3 |
In 561fda243be8967
Changed in sbcl: | |
status: | New → Fix Committed |
Changed in sbcl: | |
status: | Fix Committed → Fix Released |
status: | Fix Released → Fix Committed |
Changed in sbcl: | |
status: | Fix Committed → Fix Released |
Simplified:
(defun f9 (a)
( restart- bind nil
(return- from b2 a)))))
(block b2
(let* ((v1 (make-array nil :initial-element
(declare (dynamic-extent v1))
(aref v1)
)))