Browse Source

Fixed bug 1646 - Warnings from clang with -Weverything

Sam Lantinga 8 years ago
parent
commit
818d1d3e80

+ 10 - 0
include/begin_code.h

@@ -134,6 +134,16 @@
 #endif
 #endif /* SDL_FORCE_INLINE not defined */
 
+#ifndef SDL_NORETURN
+#if defined(__GNUC__)
+#define SDL_NORETURN __attribute__((noreturn))
+#elif defined(_MSC_VER)
+#define SDL_NORETURN __declspec(noreturn)
+#else
+#define SDL_NORETURN
+#endif
+#endif /* SDL_NORETURN not defined */
+
 /* Apparently this is needed by several Windows compilers */
 #if !defined(__MACH__)
 #ifndef NULL

+ 4 - 2
src/SDL_assert.c

@@ -111,7 +111,8 @@ static void SDL_GenerateAssertionReport(void)
     }
 }
 
-static void SDL_ExitProcess(int exitcode)
+
+static SDL_NORETURN void SDL_ExitProcess(int exitcode)
 {
 #ifdef __WIN32__
     ExitProcess(exitcode);
@@ -120,7 +121,8 @@ static void SDL_ExitProcess(int exitcode)
 #endif
 }
 
-static void SDL_AbortAssertion(void)
+
+static SDL_NORETURN void SDL_AbortAssertion(void)
 {
     SDL_Quit();
     SDL_ExitProcess(42);

+ 1 - 1
src/test/SDL_test_fuzzer.c

@@ -443,7 +443,7 @@ SDLTest_RandomSint64BoundaryValue(Sint64 boundary1, Sint64 boundary2, SDL_bool v
 float
 SDLTest_RandomUnitFloat()
 {
-    return (float) SDLTest_RandomUint32() / UINT_MAX;
+    return SDLTest_RandomUint32() / (float) UINT_MAX;
 }
 
 float

+ 1 - 1
src/test/SDL_test_harness.c

@@ -206,7 +206,7 @@ SDLTest_SetTestTimeout(int timeout, void (*callback)())
 /**
 * \brief Timeout handler. Aborts test run and exits harness process.
 */
-static void
+static SDL_NORETURN void
 SDLTest_BailOut()
 {
     SDLTest_LogError("TestCaseTimeout timer expired. Aborting test run.");

+ 3 - 1
src/test/SDL_test_log.c

@@ -26,7 +26,9 @@
 */
 
 /* quiet windows compiler warnings */
-#define _CRT_SECURE_NO_WARNINGS
+#if defined(_MSC_VER)
+# define _CRT_SECURE_NO_WARNINGS
+#endif
 
 #include "SDL_config.h"
 

+ 8 - 2
src/video/SDL_blit_N.c

@@ -1113,6 +1113,7 @@ Blit_RGB101010_index8(SDL_BlitInfo * info)
                                 (((*src)&0x0000F800)>>6)| \
                                 (((*src)&0x000000F8)>>3)); \
 }
+#ifndef USE_DUFFS_LOOP
 #define RGB888_RGB555_TWO(dst, src) { \
     *(Uint32 *)(dst) = (((((src[HI])&0x00F80000)>>9)| \
                          (((src[HI])&0x0000F800)>>6)| \
@@ -1121,6 +1122,7 @@ Blit_RGB101010_index8(SDL_BlitInfo * info)
                          (((src[LO])&0x0000F800)>>6)| \
                          (((src[LO])&0x000000F8)>>3); \
 }
+#endif
 static void
 Blit_RGB888_RGB555(SDL_BlitInfo * info)
 {
@@ -1237,6 +1239,7 @@ Blit_RGB888_RGB555(SDL_BlitInfo * info)
                                 (((*src)&0x0000FC00)>>5)| \
                                 (((*src)&0x000000F8)>>3)); \
 }
+#ifndef USE_DUFFS_LOOP
 #define RGB888_RGB565_TWO(dst, src) { \
     *(Uint32 *)(dst) = (((((src[HI])&0x00F80000)>>8)| \
                          (((src[HI])&0x0000FC00)>>5)| \
@@ -1245,6 +1248,7 @@ Blit_RGB888_RGB555(SDL_BlitInfo * info)
                          (((src[LO])&0x0000FC00)>>5)| \
                          (((src[LO])&0x000000F8)>>3); \
 }
+#endif
 static void
 Blit_RGB888_RGB565(SDL_BlitInfo * info)
 {
@@ -2459,6 +2463,9 @@ BlitNto2101010(SDL_BlitInfo * info)
 }
 
 /* Normal N to N optimized blitters */
+#define NO_ALPHA   1
+#define SET_ALPHA  2
+#define COPY_ALPHA 4
 struct blit_table
 {
     Uint32 srcR, srcG, srcB;
@@ -2466,8 +2473,7 @@ struct blit_table
     Uint32 dstR, dstG, dstB;
     Uint32 blit_features;
     SDL_BlitFunc blitfunc;
-    enum
-    { NO_ALPHA = 1, SET_ALPHA = 2, COPY_ALPHA = 4 } alpha;
+    Uint32 alpha; // bitwise NO_ALPHA, SET_ALPHA, COPY_ALPHA
 };
 static const struct blit_table normal_blit_1[] = {
     /* Default for 8-bit RGB source, never optimized */

+ 3 - 0
src/video/x11/SDL_x11opengles.h

@@ -30,6 +30,9 @@
 
 typedef struct SDL_PrivateGLESData
 {
+  /* 1401 If the struct-declaration-list contains no named members, the behavior is undefined. */
+  /* warning: empty struct has size 0 in C, size 1 in C++ [-Wc++-compat] */
+  int dummy; 
 } SDL_PrivateGLESData;
 
 /* OpenGLES functions */