Improve reporting of NOTINLINE full calls in make-host-2.lisp

Previously, make-host-2.lisp reported full calls of inline functions
even if all full calls were NOTINLINE. This was because the diagnostic
loop failed to check the 0th bit of the EMITTED-FULL-CALLS cell (via
ODDP), which PONDER-FULL-CALL specifically uses to track whether any
of the calls lacked a NOTINLINE declaration.

Background: When accommodating compilation dependencies in other
ways (such as changing the build order) is too difficult, NOTINLINE is
used to avoid the compilation failures that a full call to a function
that's later inlined would cause.

With this change, there are no "Likely suspicious" calls reported on
the default x86-64 build.
This commit is contained in:
Gabor Melis 2026-05-27 14:24:37 +02:00
parent 48063e4170
commit e1c2bc15e2

View file

@ -98,6 +98,12 @@
(source-xform (sb-int:info :function :source-transform name)) (source-xform (sb-int:info :function :source-transform name))
(info (sb-int:info :function :info name))) (info (sb-int:info :function :info name)))
(when (and cell (when (and cell
;; Do not report if all calls were expressly
;; NOTINLINE. If CELL is odd (i.e. there were full
;; calls without NOTINLINE), then the number of
;; full calls reported includes those expressly
;; NOTINLINE. See SB-C::EMITTED-FULL-CALL-COUNT.
(oddp cell)
(or inlinep (or inlinep
source-xform source-xform
(and info (sb-c::fun-info-templates info)) (and info (sb-c::fun-info-templates info))