In general, that is correct. The problem in the case of gcc 2.96 is that it appears to actually be not inlining the function at all in a non-optimized build and further is putting the actual function in all objects generated from source that included the headers that defined the static inline function, even those that did not use it. I may be wrong on this, but given my limited digging through gcc this appears to be what is happening.
As for extern inline, yes, that may well be why they got away from that syntax, as it does indeed suggest an external symbol somewhere.
On Fri, Aug 17, 2001 at 04:34:02PM +0100, J. Cone wrote:
I would have thought any inlining would enlarge a program compared with single-copy-and-call functions.
Extern inline would imply that there had to be an un-inlined copy somewhere to advertise to the linker, sort of like a weak symbol.