Unreachable code notes do not fire sometimes.
Bug #2016417 reported by
Charles
This bug affects 1 person
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
SBCL |
New
|
Undecided
|
Unassigned |
Bug Description
Consider
(lambda ()
(block nil (let () (funcall #'+ (eval 'nil) (eval '1) (return :good)))))
We should expect an unreachable code note here, and also a note that the fourth argument of FUNCALL does not return. This used to work in the past, but now it doesn't.
To post a comment you must log in.
This is because + is source transformed and loses its source location. This has always been the case. At least now
(block nil
(return)
(+ 1 2 3))
signals a note by attaching the source location to the starting ctran, but in the (+ 1 2 (return)) case the initial ctran gets executed and there's no good place to attach a source path.