Ryujinx-SDL/src/render/software
Misa 3bf7994fe2 Add and use SDL_FALLTHROUGH for fallthroughs
Case fallthrough warnings can be suppressed using the __fallthrough__
compiler attribute. Unfortunately, not all compilers have this
attribute, or even have __has_attribute to check if they have the
__fallthrough__ attribute. [[fallthrough]] is also available in C++17
and the next C2x, but not everyone uses C++17 or C2x.

So define the SDL_FALLTHROUGH macro to deal with those problems - if we
are using C++17 or C2x, it expands to [[fallthrough]]; else if the
compiler has __has_attribute and has the __fallthrough__ attribute, then
it expands to __attribute__((__fallthrough__)); else it expands to an
empty statement, with a /* fallthrough */ comment (it's a do {} while
(0) statement, because users of this macro need to use a semicolon,
because [[fallthrough]] and __attribute__((__fallthrough__)) require a
semicolon).

Clang before Clang 10 and GCC before GCC 7 have problems with using
__attribute__ as a sole statement and warn about a "declaration not
declaring anything", so fall back to using the /* fallthrough */ comment
if we are using those older compiler versions.

Applications using SDL are also free to use this macro (because it is
defined in begin_code.h).

All existing /* fallthrough */ comments have been replaced with this
macro. Some of them were unnecessary because they were the last case in
a switch; using SDL_FALLTHROUGH in those cases would result in a compile
error on compilers that support __fallthrough__, for having a
__attribute__((__fallthrough__)) statement that didn't immediately
precede a case label.
2021-11-12 07:26:14 +03:00
..
SDL_blendfillrect.c Updated copyright for 2021 2021-01-02 10:25:38 -08:00
SDL_blendfillrect.h Updated copyright for 2021 2021-01-02 10:25:38 -08:00
SDL_blendline.c Updated copyright for 2021 2021-01-02 10:25:38 -08:00
SDL_blendline.h Updated copyright for 2021 2021-01-02 10:25:38 -08:00
SDL_blendpoint.c Updated copyright for 2021 2021-01-02 10:25:38 -08:00
SDL_blendpoint.h Updated copyright for 2021 2021-01-02 10:25:38 -08:00
SDL_draw.h Add and use SDL_FALLTHROUGH for fallthroughs 2021-11-12 07:26:14 +03:00
SDL_drawline.c Updated copyright for 2021 2021-01-02 10:25:38 -08:00
SDL_drawline.h Updated copyright for 2021 2021-01-02 10:25:38 -08:00
SDL_drawpoint.c Updated copyright for 2021 2021-01-02 10:25:38 -08:00
SDL_drawpoint.h Updated copyright for 2021 2021-01-02 10:25:38 -08:00
SDL_render_sw_c.h Updated copyright for 2021 2021-01-02 10:25:38 -08:00
SDL_render_sw.c SDL_Renderer simplifications: 2021-10-24 22:27:56 -04:00
SDL_rotate.c Added a single SDL_LEAN_AND_MEAN define to turn on minimal SDL builds 2020-01-23 01:00:52 -08:00
SDL_rotate.h Updated copyright for 2021 2021-01-02 10:25:38 -08:00
SDL_triangle.c Remove SDL_HAVE_RENDER_GEOMETRY define 2021-10-24 22:27:56 -04:00
SDL_triangle.h Add software renderer implementation 2021-08-19 00:10:59 +02:00