简单算术函数中无法访问的代码
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'
编译后,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'