Hi Tim, > We use 'static _GL_INLINE' for some static functions we want to get > inlined.
This is a wrong use of '_GL_INLINE'. There are 3 uses of the keyword 'inline' in C: 1) 'static inline'. 2) 'inline' and 'extern inline'. Portable use of 1) is simple: - use AC_REQUIRE([AC_C_INLINE]) - use 'static inline' in the code. Portable use of 2) is more involved: This is what https://www.gnu.org/software/gnulib/manual/html_node/extern-inline.html is about. When you write 'static _GL_INLINE', you are mixing up the cases 1) and 2). > "C code ordinarily should not use inline. Typically it is better to let > the compiler figure out whether to inline, as compilers are pretty good > about optimization nowadays. In this sense, inline is like register, > another keyword that is typically no longer needed." This advice applies to modern compilers. By the way, Paul, what is the problem with telling the compiler what to 'static inline'? In other words, what was the motivation of changing 'static inline' to 'static' - other than "it's not needed" - in the 13 patches presented on November 09, 2012 in https://lists.gnu.org/archive/html/bug-gnulib/2012-11/ and committed on 2012-11-29 ? Bruno