summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPatrick Steinhardt <ps@pks.im>2018-06-25 11:55:13 +0200
committerPatrick Steinhardt <ps@pks.im>2018-07-13 08:25:12 +0200
commitf347a441c81c4e16dd54de07c5070eca8fccd5c8 (patch)
tree7a641184da70f62c175b0b24139af6dc60de14e5
parent6dfc8bc2499db78eae4e29dd121c75121f0e8baf (diff)
downloadlibgit2-f347a441c81c4e16dd54de07c5070eca8fccd5c8.tar.gz
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.
-rw-r--r--src/common.h4
-rw-r--r--src/khash.h4
-rw-r--r--src/xdiff/xdiffi.c4
3 files changed, 9 insertions, 3 deletions
diff --git a/src/common.h b/src/common.h
index 44063be12..cb980c107 100644
--- a/src/common.h
+++ b/src/common.h
@@ -17,8 +17,10 @@
/** Declare a function as always inlined. */
#if defined(_MSC_VER)
# define GIT_INLINE(type) static __inline type
+#elif defined(__GNUC__)
+# define GIT_INLINE(type) static __inline__ type
#else
-# define GIT_INLINE(type) static inline type
+# define GIT_INLINE(type) static type
#endif
/** Support for gcc/clang __has_builtin intrinsic */
diff --git a/src/khash.h b/src/khash.h
index 71eb583d5..40e2d1848 100644
--- a/src/khash.h
+++ b/src/khash.h
@@ -146,8 +146,10 @@ typedef unsigned long long khint64_t;
#ifndef kh_inline
#ifdef _MSC_VER
#define kh_inline __inline
+#elif defined(__GNUC__)
+#define kh_inline __inline__
#else
-#define kh_inline inline
+#define kh_inline
#endif
#endif /* kh_inline */
diff --git a/src/xdiff/xdiffi.c b/src/xdiff/xdiffi.c
index 3a71ef678..97db05466 100644
--- a/src/xdiff/xdiffi.c
+++ b/src/xdiff/xdiffi.c
@@ -33,8 +33,10 @@
/** Declare a function as always inlined. */
#if defined(_MSC_VER)
# define XDL_INLINE(type) static __inline type
+#elif defined(__GNUC__)
+# define XDL_INLINE(type) static __inline__ type
#else
-# define XDL_INLINE(type) static inline type
+#define XDG_INLINE(type) static type
#endif
typedef struct s_xdpsplit {