Commit d08634e2c68d3c409ad0bc03c790e27bedd87fcd

Sam Lantinga 2013-10-21T02:32:34

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.

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