|
From: | Paul Eggert |
Subject: | Re: Changes in GC and in pure space |
Date: | Wed, 4 Sep 2019 12:15:40 -0700 |
User-agent: | Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Thunderbird/60.8.0 |
Óscar Fuentes wrote:
At least in the C++ world, `inline' is used for putting function definitions on headers, not for inlining. There is a consensus from many years ago that the compiler is expected to do the right thing wrt inlining irrespectively of the presence or ausence of the keyword
Things are a bit different in C. In C, the consensus you mention holds for 'static inline' (where the 'inline' is typically just a noise word nowadays), but it does not hold for the plain 'inline' functions that we're talking about because C requires that if one compilation unit defines a plain 'inline' function, then exactly one other compilation unit must define that function as 'extern inline'.
Emacs rarely uses 'static inline', due to the consensus that you mention. In the few exceptions where Emacs does use 'static inline', I vaguely recall there being performance advantages when compiled by GCC in typical platforms, as GCC does not ignore the 'inline' in these exceptional situations.
[Prev in Thread] | Current Thread | [Next in Thread] |