|
@@ -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
|
|
|
}
|
|
|
|