On Mon, Sep 05, 2005 at 02:47:40PM -0400, Jakub Jelinek wrote: > On Mon, Sep 05, 2005 at 08:00:05PM +0200, Adrian Bunk wrote: > > It isn't the same, but "static inline" is the correct variant. > > > > "extern inline __attribute__((always_inline))" (which is what > > "extern inline" is expanded to) doesn't make sense. > > It does make sense and is different from > static inline __attribute__((always_inline)). > Try: > static inline __attribute__((always_inline)) void foo (void) {} > void (*fn)(void) = foo; > vs. > extern inline __attribute__((always_inline)) void foo (void) {} > void (*fn)(void) = foo; > In the former case, GCC will emit the out of line static copy of foo > if you take its address, in the latter case either you provide foo > function by other means, or you get linker error.
And we need the former case because in the kernel we do not have out-of-line variants of the inline functions. > Jakub cu Adrian -- "Is there not promise of rain?" Ling Tan asked suddenly out of the darkness. There had been need of rain for many days. "Only a promise," Lao Er said. Pearl S. Buck - Dragon Seed - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/