Commit f347a441 by Patrick Steinhardt

treewide: avoid use of `inline` attribute

ISO C90 does not specify the `inline` attribute, and as such we cannot
use it in our code. While we already use `__inline` when building in
Microsoft Visual Studio, we should also be using the `__inline__`
attribute from GCC/Clang. Otherwise, if we're using neither MSVC nor
GCC/Clang, we should simply avoid using `inline` at all and just define
functions as static.

This commit adjusts our own `GIT_INLINE` macro as well as the inline
macros specified by khash and xdiff. This allows us to enable strict C90
mode in a later commit.
parent 6dfc8bc2
...@@ -17,8 +17,10 @@ ...@@ -17,8 +17,10 @@
/** Declare a function as always inlined. */ /** Declare a function as always inlined. */
#if defined(_MSC_VER) #if defined(_MSC_VER)
# define GIT_INLINE(type) static __inline type # define GIT_INLINE(type) static __inline type
#elif defined(__GNUC__)
# define GIT_INLINE(type) static __inline__ type
#else #else
# define GIT_INLINE(type) static inline type # define GIT_INLINE(type) static type
#endif #endif
/** Support for gcc/clang __has_builtin intrinsic */ /** Support for gcc/clang __has_builtin intrinsic */
......
...@@ -146,8 +146,10 @@ typedef unsigned long long khint64_t; ...@@ -146,8 +146,10 @@ typedef unsigned long long khint64_t;
#ifndef kh_inline #ifndef kh_inline
#ifdef _MSC_VER #ifdef _MSC_VER
#define kh_inline __inline #define kh_inline __inline
#elif defined(__GNUC__)
#define kh_inline __inline__
#else #else
#define kh_inline inline #define kh_inline
#endif #endif
#endif /* kh_inline */ #endif /* kh_inline */
......
...@@ -33,8 +33,10 @@ ...@@ -33,8 +33,10 @@
/** Declare a function as always inlined. */ /** Declare a function as always inlined. */
#if defined(_MSC_VER) #if defined(_MSC_VER)
# define XDL_INLINE(type) static __inline type # define XDL_INLINE(type) static __inline type
#elif defined(__GNUC__)
# define XDL_INLINE(type) static __inline__ type
#else #else
# define XDL_INLINE(type) static inline type #define XDG_INLINE(type) static type
#endif #endif
typedef struct s_xdpsplit { typedef struct s_xdpsplit {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment