stdinc: Silence clang warning for -Wimplicit-fallthrough. In a more ideal world, we'd use the appropriate `__attribute__` here, but it's one thing in a public header that probably shouldn't be there at all, so this is good enough for now. Fixes #4307.
diff --git a/include/SDL_stdinc.h b/include/SDL_stdinc.h
index d286e68..0cbbb43 100644
--- a/include/SDL_stdinc.h
+++ b/include/SDL_stdinc.h
@@ -481,16 +481,28 @@ SDL_FORCE_INLINE void SDL_memset4(void *dst, Uint32 val, size_t dwords)
size_t _n = (dwords + 3) / 4;
Uint32 *_p = SDL_static_cast(Uint32 *, dst);
Uint32 _val = (val);
- if (dwords == 0)
+ if (dwords == 0) {
return;
- switch (dwords % 4)
- {
+ }
+
+ /* !!! FIXME: there are better ways to do this, but this is just to clean this up for now. */
+ #ifdef __clang__
+ #pragma clang diagnostic push
+ #pragma clang diagnostic ignored "-Wimplicit-fallthrough"
+ #endif
+
+ switch (dwords % 4) {
case 0: do { *_p++ = _val; /* fallthrough */
case 3: *_p++ = _val; /* fallthrough */
case 2: *_p++ = _val; /* fallthrough */
case 1: *_p++ = _val; /* fallthrough */
} while ( --_n );
}
+
+ #ifdef __clang__
+ #pragma clang diagnostic pop
+ #endif
+
#endif
}