Better fix for bug 2129 - fix for bug 2121 breaks linking for mingw and throws multiple warnings
authorSam Lantinga <slouken@libsdl.org>
Mon, 21 Oct 2013 02:32:34 -0700
changeset 7872 ca36ab2a8179
parent 7871 ff9f1a1ed2dd
child 7873 e88af17231bd
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.
include/begin_code.h
--- a/include/begin_code.h	Mon Oct 21 02:20:39 2013 -0700
+++ b/include/begin_code.h	Mon Oct 21 02:32:34 2013 -0700
@@ -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
 #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
-
 #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