diff --git a/compiler/checkgen.lisp b/compiler/checkgen.lisp index 11832e35ad2436e296560de4cc4b66b99b9bb67c..d3c55eaad1c35068572a43318dd8b145fb21dadc 100644 --- a/compiler/checkgen.lisp +++ b/compiler/checkgen.lisp @@ -231,10 +231,11 @@ ((function-info-ir2-convert kind) t) (t (dolist (template (function-info-templates kind) nil) - (when (and (eq (template-policy template) :fast-safe) - (valid-function-use dest - (template-type template))) - (return t))))))) + (when (eq (template-policy template) :fast-safe) + (multiple-value-bind + (val win) + (valid-function-use dest (template-type template)) + (when (or val (not win)) (return t))))))))) (t t))))