erronous COERCE type derivation in unsafe code
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
SBCL |
Fix Released
|
High
|
Unassigned |
Bug Description
Unless SAFETY=3, (COERCE X '(VECTOR 5)) isn't oblidged to actually return a vector of length 5 -- just a vector.
Our DEFTRANSFORM for COERCE takes advantage of this, but the DERIVE-TYPE method for COERCE does not take this into account.
Either the DEFTRANSFORM has to be more conservative, or the DERIVE-TYPE needs to be more careful in unsafe code about the type it returns.
Try
(funcall (compile nil
(vector t))
for all manner of excitement.
description: | updated |
Changed in sbcl: | |
assignee: | nobody → Nikodemus Siivola (nikodemus) |
status: | Triaged → In Progress |
Changed in sbcl: | |
status: | Fix Committed → Fix Released |
In 1.0.43.67.