Better fix for bug 2129 - fix for bug 2121 breaks linking for mingw and throws multiple warnings J?nis R?cis Reopening as compilation with ANSI C throws lots of unnecessary warnings, both using MinGW and using Linux GCC. (BTW, what happened? MinGW is broken to all hell. sdl2-config does not even link SDLMain anymore?) I think this may have been lost somewhere, so again: GCC supports inlining via __inline__ in all known versions of GCC, regardless of the C standard in use. Please don't assume that __STRICT_ANSI__ implies no inlining support.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45
diff --git a/include/begin_code.h b/include/begin_code.h
index 3d43770..7addded 100644
--- a/include/begin_code.h
+++ b/include/begin_code.h
@@ -100,31 +100,23 @@
#endif /* Compiler needs structure packing set */
#ifndef SDL_INLINE
-/* Set up compiler-specific options for inlining functions */
-#if defined(_MSC_VER) || defined(__BORLANDC__) || \
- defined(__DMC__) || defined(__SC__) || \
- defined(__WATCOMC__) || defined(__LCC__) || \
- defined(__DECC)
-#define SDL_INLINE __inline
+#if defined(__GNUC__)
+#define SDL_INLINE __inline__
+#elif defined(_MSC_VER) || defined(__BORLANDC__) || \
+ defined(__DMC__) || defined(__SC__) || \
+ defined(__WATCOMC__) || defined(__LCC__) || \
+ defined(__DECC)
+#define SDL_INLINE __inline
#else
#define SDL_INLINE inline
-#endif /* Visual C++ */
-#endif /* SDL_INLINE not defined */
-
-/* If inlining isn't supported, remove SDL_INLINE, turning static
- inlined functions into static functions (potentially resulting in
- code bloat in all files which include the offending header files)
-*/
-#if __STRICT_ANSI__
-#undef SDL_INLINE
-#define SDL_INLINE
#endif
+#endif /* SDL_INLINE not defined */
#ifndef SDL_FORCE_INLINE
#if defined(_MSC_VER)
#define SDL_FORCE_INLINE __forceinline
#elif ( (defined(__GNUC__) && (__GNUC__ >= 4)) || defined(__clang__) )
-#define SDL_FORCE_INLINE __attribute__((always_inline)) static SDL_INLINE
+#define SDL_FORCE_INLINE __attribute__((always_inline)) static __inline__
#else
#define SDL_FORCE_INLINE static SDL_INLINE
#endif