Incorrect value computed in code with IF, LOGAND, LOGXOR, *, ELT
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
SBCL |
Fix Released
|
Undecided
|
Unassigned |
Bug Description
(defparameter *f365*
'(if (not
(or c
(if t
nil
t)))
(logand (elt '(14089144940) (min 0 (max 0 0)))
(logxor
(* 5
(if c
0
-264592622 -16 -928 -2270558))
0))
(defun f365 ()
(let* ((form *f365*)
(vars '(c))
(vals '(nil))
(opt-decls
(opt-lam
`(lambda ,vars ,@opt-decls ,form))
(unopt-lam
`(lambda ,vars ,@unopt-decls ,form)))
(values
(apply (compile nil opt-lam) vals)
(apply (compile nil unopt-lam) vals))))
(f365) ==> 0, 13958643784
Changed in sbcl: | |
status: | Fix Committed → Fix Released |
This bug occurs in 1.4.7, so it's not very recent.