what “inline __attribute__((always_inline))” means in the function?
37,913
Solution 1
The often referenced gcc documentation for always_inline is incomplete.
always_inline attribute makes gcc compiler:
- Ignore
-fno-inline(this is what the documentation says). - Ignore the inlining limits hence inlining the function regardless. It also inlines functions with
allocacalls, whichinlinekeyword never does. - Not produce an external definition of a function with external linkage if marked with
always_inline.
The source of the above information is gcc source code, and, hence, is subject to change with no warning.
An interesting bechmark: always_inline
performance.
Solution 2
It forces the compiler to inline the function even if optimizations are disabled. Check this documentation for more information.
Related videos on Youtube
Author by
developer
Updated on July 09, 2022Comments
-
developer 11 monthsI have found the following function definition :
static inline __attribute__((always_inline)) int fn(const char *s) { return (!s || (*s == '\0')); }And I want to know the meaning of
inline __attribute__((always_inline))? -
kkkobelief24 almost 2 yearsicc also apply it now