GNU by default uses a non-standard method of declaring inline functions with the exact opposite meaning of the C99 standard.

So use LE_DECLARE_INLINE with the function body in a header. Then use LE_DEFINE_INLINE with just the function prototype in a .c file to tell the compiler to emit the function definition for cases where the function is not inlined.

This is preferred over using "static inline" since if a static inline function is not inlined by gcc, there may be multiple copies of the function included in the output. LE_DEFINE_INLINE

Cause a function definition to be emitted for an inline function, in case the compiler decides not to use the inline definition.