C99 inlines

Stefan Farfeleder stefan at fafoe.narf.at
Mon Mar 9 06:58:21 PDT 2009


On Mon, Mar 09, 2009 at 09:55:41PM +1100, Andrew Reilly wrote:
> On Sun, Mar 08, 2009 at 03:09:24AM -0400, David Schultz wrote:
> > My main motivation is that currently there's no easy way to use
> > non-static inline functions that works with both gcc and other
> > compilers.
> 
> Please pardon my ignorance: what *is* non-static inline
> behaviour?  I've only ever used static inlines myself: they're
> the only sort that make sense (to me), in the world of standard
> C static compilation and linkage.  What happens elsewhen?  Does
> the compiler generate a "real" function with an exportable name
> that can be linked-to?  Why would you want to do that, when
> that's what perfectly ordinary functions do?  I can't imagine an
> extern inline meaning anything useful unless one can do
> LLVM-style link-time optimization.  Is that on the cards?

With static inline functions you end up with a copy in each object file
where the compiler decided to not inline at least one call, with an
inline function with external linkage all these copies are coalesced to
a single one.


More information about the freebsd-arch mailing list