mirror of https://github.com/encounter/SDL.git
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.
This commit is contained in:
parent
e65a658320
commit
25fc40b0bd
|
@ -481,16 +481,28 @@ SDL_FORCE_INLINE void SDL_memset4(void *dst, Uint32 val, size_t dwords)
|
||||||
size_t _n = (dwords + 3) / 4;
|
size_t _n = (dwords + 3) / 4;
|
||||||
Uint32 *_p = SDL_static_cast(Uint32 *, dst);
|
Uint32 *_p = SDL_static_cast(Uint32 *, dst);
|
||||||
Uint32 _val = (val);
|
Uint32 _val = (val);
|
||||||
if (dwords == 0)
|
if (dwords == 0) {
|
||||||
return;
|
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 0: do { *_p++ = _val; /* fallthrough */
|
||||||
case 3: *_p++ = _val; /* fallthrough */
|
case 3: *_p++ = _val; /* fallthrough */
|
||||||
case 2: *_p++ = _val; /* fallthrough */
|
case 2: *_p++ = _val; /* fallthrough */
|
||||||
case 1: *_p++ = _val; /* fallthrough */
|
case 1: *_p++ = _val; /* fallthrough */
|
||||||
} while ( --_n );
|
} while ( --_n );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#ifdef __clang__
|
||||||
|
#pragma clang diagnostic pop
|
||||||
|
#endif
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue