简单算术函数中无法访问的代码

Unreachable code in simple arithmetic function

编译后,SBCL 抱怨 (mod number 10)

中无法访问
(defun foo (number)
  (cond
    ((> number 10) (mod number 10))
    (t number)))

为什么会这样?

完整的编译器信息:

; in: DEFUN FOO
;     (MOD NUMBER 10)
; --> LET IF AND IF IF PLUSP > 
; ==>
;   NUMBER
; 
; note: deleting unreachable code

查看评论,很可能是 (mod number 10) 扩展到的代码的死代码消除。 在 SBCL 2.0.0 及更高版本上,我无法重现警告。

又名编译器'bug'