We are currently migrating Bugzilla to GitHub issues.
Any changes made to the bug tracker now will be lost, so please do not post new bugs or make changes to them.
When we're done, all bug URLs will redirect to their equivalent location on the new bug tracker.

Bug 3780 - GCC 7 implicit fallthrough warnings
Summary: GCC 7 implicit fallthrough warnings
Status: RESOLVED FIXED
Alias: None
Product: SDL
Classification: Unclassified
Component: build (show other bugs)
Version: HG 2.1
Hardware: All All
: P2 trivial
Assignee: Sam Lantinga
QA Contact: Sam Lantinga
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2017-08-28 06:58 UTC by Martin Gerhardy
Modified: 2017-09-06 19:29 UTC (History)
2 users (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Martin Gerhardy 2017-08-28 06:58:01 UTC
SDL_blit.h, SDL_fillrect.c and SDL_stdinc.h produces a lot of the (new) gcc-7 implicit fallthrough warnings.
Comment 1 Sam Lantinga 2017-08-28 16:31:45 UTC
I don't have gcc 7 here, can you attach the output? Do you have a patch to fix the warnings?
Comment 2 Martin Gerhardy 2017-09-06 16:02:05 UTC
/home/mgerhardy/dev/engine/contrib/libs/sdl2/src/video/SDL_blit_N.c:1274:9: note: in expansion of macro ‘DUFFS_LOOP’
         DUFFS_LOOP(
         ^~~~~~~~~~
/home/mgerhardy/dev/engine/contrib/libs/sdl2/src/video/SDL_blit_N.c:1277:13: warning: this statement may fall through [-Wimplicit-fallthrough=]
             ++dst;
             ^~~
/home/mgerhardy/dev/engine/contrib/libs/sdl2/src/video/SDL_blit.h:479:17: note: in definition of macro ‘DUFFS_LOOP8’
     case 4:     pixel_copy_increment;                                   \
                 ^~~~~~~~~~~~~~~~~~~~
/home/mgerhardy/dev/engine/contrib/libs/sdl2/src/video/SDL_blit_N.c:1274:9: note: in expansion of macro ‘DUFFS_LOOP’
         DUFFS_LOOP(
         ^~~~~~~~~~
/home/mgerhardy/dev/engine/contrib/libs/sdl2/src/video/SDL_blit.h:480:5: note: here
     case 3:     pixel_copy_increment;                                   \
     ^
/home/mgerhardy/dev/engine/contrib/libs/sdl2/src/video/SDL_blit.h:501:5: note: in expansion of macro ‘DUFFS_LOOP8’
     DUFFS_LOOP8(pixel_copy_increment, width)
     ^~~~~~~~~~~
/home/mgerhardy/dev/engine/contrib/libs/sdl2/src/video/SDL_blit_N.c:1274:9: note: in expansion of macro ‘DUFFS_LOOP’
         DUFFS_LOOP(
         ^~~~~~~~~~
/home/mgerhardy/dev/engine/contrib/libs/sdl2/src/video/SDL_blit_N.c:1277:13: warning: this statement may fall through [-Wimplicit-fallthrough=]
             ++dst;
             ^~~
/home/mgerhardy/dev/engine/contrib/libs/sdl2/src/video/SDL_blit.h:480:17: note: in definition of macro ‘DUFFS_LOOP8’
     case 3:     pixel_copy_increment;                                   \
                 ^~~~~~~~~~~~~~~~~~~~
/home/mgerhardy/dev/engine/contrib/libs/sdl2/src/video/SDL_blit_N.c:1274:9: note: in expansion of macro ‘DUFFS_LOOP’
         DUFFS_LOOP(
         ^~~~~~~~~~
/home/mgerhardy/dev/engine/contrib/libs/sdl2/src/video/SDL_blit.h:481:5: note: here
     case 2:     pixel_copy_increment;                                   \
     ^
/home/mgerhardy/dev/engine/contrib/libs/sdl2/src/video/SDL_blit.h:501:5: note: in expansion of macro ‘DUFFS_LOOP8’
     DUFFS_LOOP8(pixel_copy_increment, width)
     ^~~~~~~~~~~
/home/mgerhardy/dev/engine/contrib/libs/sdl2/src/video/SDL_blit_N.c:1274:9: note: in expansion of macro ‘DUFFS_LOOP’
         DUFFS_LOOP(
         ^~~~~~~~~~
/home/mgerhardy/dev/engine/contrib/libs/sdl2/src/video/SDL_blit_N.c:1277:13: warning: this statement may fall through [-Wimplicit-fallthrough=]
             ++dst;
             ^~~
/home/mgerhardy/dev/engine/contrib/libs/sdl2/src/video/SDL_blit.h:481:17: note: in definition of macro ‘DUFFS_LOOP8’
     case 2:     pixel_copy_increment;                                   \
                 ^~~~~~~~~~~~~~~~~~~~
/home/mgerhardy/dev/engine/contrib/libs/sdl2/src/video/SDL_blit_N.c:1274:9: note: in expansion of macro ‘DUFFS_LOOP’
         DUFFS_LOOP(
         ^~~~~~~~~~
/home/mgerhardy/dev/engine/contrib/libs/sdl2/src/video/SDL_blit.h:482:5: note: here
     case 1:     pixel_copy_increment;                                   \
     ^
/home/mgerhardy/dev/engine/contrib/libs/sdl2/src/video/SDL_blit.h:501:5: note: in expansion of macro ‘DUFFS_LOOP8’
     DUFFS_LOOP8(pixel_copy_increment, width)
     ^~~~~~~~~~~
/home/mgerhardy/dev/engine/contrib/libs/sdl2/src/video/SDL_blit_N.c:1274:9: note: in expansion of macro ‘DUFFS_LOOP’
         DUFFS_LOOP(
         ^~~~~~~~~~
/home/mgerhardy/dev/engine/contrib/libs/sdl2/src/video/SDL_blit_N.c: In function ‘Blit_RGB565_32’:
/home/mgerhardy/dev/engine/contrib/libs/sdl2/src/video/SDL_blit_N.c:1390:17: warning: this statement may fall through [-Wimplicit-fallthrough=]
             src += 2;
             ~~~~^~~~
/home/mgerhardy/dev/engine/contrib/libs/sdl2/src/video/SDL_blit.h:475:21: note: in definition of macro ‘DUFFS_LOOP8’
     case 0: do {    pixel_copy_increment;                               \
                     ^~~~~~~~~~~~~~~~~~~~
/home/mgerhardy/dev/engine/contrib/libs/sdl2/src/video/SDL_blit_N.c:1387:9: note: in expansion of macro ‘DUFFS_LOOP’
         DUFFS_LOOP(
         ^~~~~~~~~~
/home/mgerhardy/dev/engine/contrib/libs/sdl2/src/video/SDL_blit.h:476:5: note: here
     case 7:     pixel_copy_increment;                                   \
     ^
/home/mgerhardy/dev/engine/contrib/libs/sdl2/src/video/SDL_blit.h:501:5: note: in expansion of macro ‘DUFFS_LOOP8’
     DUFFS_LOOP8(pixel_copy_increment, width)
     ^~~~~~~~~~~
/home/mgerhardy/dev/engine/contrib/libs/sdl2/src/video/SDL_blit_N.c:1387:9: note: in expansion of macro ‘DUFFS_LOOP’
         DUFFS_LOOP(
         ^~~~~~~~~~
/home/mgerhardy/dev/engine/contrib/libs/sdl2/src/video/SDL_blit_N.c:1390:17: warning: this statement may fall through [-Wimplicit-fallthrough=]
             src += 2;
             ~~~~^~~~
/home/mgerhardy/dev/engine/contrib/libs/sdl2/src/video/SDL_blit.h:476:17: note: in definition of macro ‘DUFFS_LOOP8’
     case 7:     pixel_copy_increment;                                   \
                 ^~~~~~~~~~~~~~~~~~~~
/home/mgerhardy/dev/engine/contrib/libs/sdl2/src/video/SDL_blit_N.c:1387:9: note: in expansion of macro ‘DUFFS_LOOP’
         DUFFS_LOOP(
         ^~~~~~~~~~
/home/mgerhardy/dev/engine/contrib/libs/sdl2/src/video/SDL_blit.h:477:5: note: here
     case 6:     pixel_copy_increment;                                   \
     ^
/home/mgerhardy/dev/engine/contrib/libs/sdl2/src/video/SDL_blit.h:501:5: note: in expansion of macro ‘DUFFS_LOOP8’
     DUFFS_LOOP8(pixel_copy_increment, width)
     ^~~~~~~~~~~
/home/mgerhardy/dev/engine/contrib/libs/sdl2/src/video/SDL_blit_N.c:1387:9: note: in expansion of macro ‘DUFFS_LOOP’
         DUFFS_LOOP(
         ^~~~~~~~~~
/home/mgerhardy/dev/engine/contrib/libs/sdl2/src/video/SDL_blit_N.c:1390:17: warning: this statement may fall through [-Wimplicit-fallthrough=]
             src += 2;
             ~~~~^~~~
/home/mgerhardy/dev/engine/contrib/libs/sdl2/src/video/SDL_blit.h:477:17: note: in definition of macro ‘DUFFS_LOOP8’
     case 6:     pixel_copy_increment;                                   \
                 ^~~~~~~~~~~~~~~~~~~~
/home/mgerhardy/dev/engine/contrib/libs/sdl2/src/video/SDL_blit_N.c:1387:9: note: in expansion of macro ‘DUFFS_LOOP’
         DUFFS_LOOP(
         ^~~~~~~~~~
/home/mgerhardy/dev/engine/contrib/libs/sdl2/src/video/SDL_blit.h:478:5: note: here
     case 5:     pixel_copy_increment;                                   \
     ^
/home/mgerhardy/dev/engine/contrib/libs/sdl2/src/video/SDL_blit.h:501:5: note: in expansion of macro ‘DUFFS_LOOP8’
     DUFFS_LOOP8(pixel_copy_increment, width)
     ^~~~~~~~~~~
/home/mgerhardy/dev/engine/contrib/libs/sdl2/src/video/SDL_blit_N.c:1387:9: note: in expansion of macro ‘DUFFS_LOOP’
         DUFFS_LOOP(
         ^~~~~~~~~~
/home/mgerhardy/dev/engine/contrib/libs/sdl2/src/video/SDL_blit_N.c:1390:17: warning: this statement may fall through [-Wimplicit-fallthrough=]
             src += 2;
             ~~~~^~~~
/home/mgerhardy/dev/engine/contrib/libs/sdl2/src/video/SDL_blit.h:478:17: note: in definition of macro ‘DUFFS_LOOP8’
     case 5:     pixel_copy_increment;                                   \
                 ^~~~~~~~~~~~~~~~~~~~
/home/mgerhardy/dev/engine/contrib/libs/sdl2/src/video/SDL_blit_N.c:1387:9: note: in expansion of macro ‘DUFFS_LOOP’
         DUFFS_LOOP(
         ^~~~~~~~~~
/home/mgerhardy/dev/engine/contrib/libs/sdl2/src/video/SDL_blit.h:479:5: note: here
     case 4:     pixel_copy_increment;                                   \
     ^
/home/mgerhardy/dev/engine/contrib/libs/sdl2/src/video/SDL_blit.h:501:5: note: in expansion of macro ‘DUFFS_LOOP8’
     DUFFS_LOOP8(pixel_copy_increment, width)
     ^~~~~~~~~~~
/home/mgerhardy/dev/engine/contrib/libs/sdl2/src/video/SDL_blit_N.c:1387:9: note: in expansion of macro ‘DUFFS_LOOP’
         DUFFS_LOOP(
         ^~~~~~~~~~
/home/mgerhardy/dev/engine/contrib/libs/sdl2/src/video/SDL_blit_N.c:1390:17: warning: this statement may fall through [-Wimplicit-fallthrough=]
             src += 2;
             ~~~~^~~~
/home/mgerhardy/dev/engine/contrib/libs/sdl2/src/video/SDL_blit.h:479:17: note: in definition of macro ‘DUFFS_LOOP8’
     case 4:     pixel_copy_increment;                                   \
                 ^~~~~~~~~~~~~~~~~~~~
/home/mgerhardy/dev/engine/contrib/libs/sdl2/src/video/SDL_blit_N.c:1387:9: note: in expansion of macro ‘DUFFS_LOOP’
         DUFFS_LOOP(
         ^~~~~~~~~~
/home/mgerhardy/dev/engine/contrib/libs/sdl2/src/video/SDL_blit.h:480:5: note: here
     case 3:     pixel_copy_increment;                                   \
     ^
/home/mgerhardy/dev/engine/contrib/libs/sdl2/src/video/SDL_blit.h:501:5: note: in expansion of macro ‘DUFFS_LOOP8’
     DUFFS_LOOP8(pixel_copy_increment, width)
     ^~~~~~~~~~~
/home/mgerhardy/dev/engine/contrib/libs/sdl2/src/video/SDL_blit_N.c:1387:9: note: in expansion of macro ‘DUFFS_LOOP’
         DUFFS_LOOP(
         ^~~~~~~~~~
/home/mgerhardy/dev/engine/contrib/libs/sdl2/src/video/SDL_blit_N.c:1390:17: warning: this statement may fall through [-Wimplicit-fallthrough=]
             src += 2;
             ~~~~^~~~
/home/mgerhardy/dev/engine/contrib/libs/sdl2/src/video/SDL_blit.h:480:17: note: in definition of macro ‘DUFFS_LOOP8’
     case 3:     pixel_copy_increment;                                   \
                 ^~~~~~~~~~~~~~~~~~~~
/home/mgerhardy/dev/engine/contrib/libs/sdl2/src/video/SDL_blit_N.c:1387:9: note: in expansion of macro ‘DUFFS_LOOP’
         DUFFS_LOOP(
         ^~~~~~~~~~
/home/mgerhardy/dev/engine/contrib/libs/sdl2/src/video/SDL_blit.h:481:5: note: here
     case 2:     pixel_copy_increment;                                   \
     ^
/home/mgerhardy/dev/engine/contrib/libs/sdl2/src/video/SDL_blit.h:501:5: note: in expansion of macro ‘DUFFS_LOOP8’
     DUFFS_LOOP8(pixel_copy_increment, width)
     ^~~~~~~~~~~
/home/mgerhardy/dev/engine/contrib/libs/sdl2/src/video/SDL_blit_N.c:1387:9: note: in expansion of macro ‘DUFFS_LOOP’
         DUFFS_LOOP(
         ^~~~~~~~~~
/home/mgerhardy/dev/engine/contrib/libs/sdl2/src/video/SDL_blit_N.c:1390:17: warning: this statement may fall through [-Wimplicit-fallthrough=]
             src += 2;
             ~~~~^~~~
/home/mgerhardy/dev/engine/contrib/libs/sdl2/src/video/SDL_blit.h:481:17: note: in definition of macro ‘DUFFS_LOOP8’
     case 2:     pixel_copy_increment;                                   \
                 ^~~~~~~~~~~~~~~~~~~~
/home/mgerhardy/dev/engine/contrib/libs/sdl2/src/video/SDL_blit_N.c:1387:9: note: in expansion of macro ‘DUFFS_LOOP’
         DUFFS_LOOP(
         ^~~~~~~~~~
/home/mgerhardy/dev/engine/contrib/libs/sdl2/src/video/SDL_blit.h:482:5: note: here
     case 1:     pixel_copy_increment;                                   \
     ^
/home/mgerhardy/dev/engine/contrib/libs/sdl2/src/video/SDL_blit.h:501:5: note: in expansion of macro ‘DUFFS_LOOP8’
     DUFFS_LOOP8(pixel_copy_increment, width)
     ^~~~~~~~~~~
/home/mgerhardy/dev/engine/contrib/libs/sdl2/src/video/SDL_blit_N.c:1387:9: note: in expansion of macro ‘DUFFS_LOOP’
         DUFFS_LOOP(
         ^~~~~~~~~~
/home/mgerhardy/dev/engine/contrib/libs/sdl2/src/video/SDL_blit_N.c: In function ‘BlitNto1’:
/home/mgerhardy/dev/engine/contrib/libs/sdl2/src/video/SDL_blit_N.c:2022:21: warning: this statement may fall through [-Wimplicit-fallthrough=]
                 src += srcbpp;
                 ~~~~^~~~
/home/mgerhardy/dev/engine/contrib/libs/sdl2/src/video/SDL_blit.h:475:21: note: in definition of macro ‘DUFFS_LOOP8’
     case 0: do {    pixel_copy_increment;                               \
                     ^~~~~~~~~~~~~~~~~~~~
/home/mgerhardy/dev/engine/contrib/libs/sdl2/src/video/SDL_blit_N.c:2012:13: note: in expansion of macro ‘DUFFS_LOOP’
             DUFFS_LOOP(
             ^~~~~~~~~~
/home/mgerhardy/dev/engine/contrib/libs/sdl2/src/video/SDL_blit.h:476:5: note: here
     case 7:     pixel_copy_increment;                                   \
     ^
/home/mgerhardy/dev/engine/contrib/libs/sdl2/src/video/SDL_blit.h:501:5: note: in expansion of macro ‘DUFFS_LOOP8’
     DUFFS_LOOP8(pixel_copy_increment, width)
     ^~~~~~~~~~~
/home/mgerhardy/dev/engine/contrib/libs/sdl2/src/video/SDL_blit_N.c:2012:13: note: in expansion of macro ‘DUFFS_LOOP’
             DUFFS_LOOP(
             ^~~~~~~~~~
/home/mgerhardy/dev/engine/contrib/libs/sdl2/src/video/SDL_blit_N.c:2022:21: warning: this statement may fall through [-Wimplicit-fallthrough=]
                 src += srcbpp;
                 ~~~~^~~~
/home/mgerhardy/dev/engine/contrib/libs/sdl2/src/video/SDL_blit.h:476:17: note: in definition of macro ‘DUFFS_LOOP8’
     case 7:     pixel_copy_increment;                                   \
                 ^~~~~~~~~~~~~~~~~~~~
/home/mgerhardy/dev/engine/contrib/libs/sdl2/src/video/SDL_blit_N.c:2012:13: note: in expansion of macro ‘DUFFS_LOOP’
             DUFFS_LOOP(
             ^~~~~~~~~~
/home/mgerhardy/dev/engine/contrib/libs/sdl2/src/video/SDL_blit.h:477:5: note: here
     case 6:     pixel_copy_increment;                                   \
     ^
/home/mgerhardy/dev/engine/contrib/libs/sdl2/src/video/SDL_blit.h:501:5: note: in expansion of macro ‘DUFFS_LOOP8’
     DUFFS_LOOP8(pixel_copy_increment, width)
     ^~~~~~~~~~~
/home/mgerhardy/dev/engine/contrib/libs/sdl2/src/video/SDL_blit_N.c:2012:13: note: in expansion of macro ‘DUFFS_LOOP’
             DUFFS_LOOP(
             ^~~~~~~~~~
/home/mgerhardy/dev/engine/contrib/libs/sdl2/src/video/SDL_blit_N.c:2022:21: warning: this statement may fall through [-Wimplicit-fallthrough=]
                 src += srcbpp;
                 ~~~~^~~~
/home/mgerhardy/dev/engine/contrib/libs/sdl2/src/video/SDL_blit.h:477:17: note: in definition of macro ‘DUFFS_LOOP8’
     case 6:     pixel_copy_increment;                                   \
                 ^~~~~~~~~~~~~~~~~~~~
/home/mgerhardy/dev/engine/contrib/libs/sdl2/src/video/SDL_blit_N.c:2012:13: note: in expansion of macro ‘DUFFS_LOOP’
             DUFFS_LOOP(
             ^~~~~~~~~~
/home/mgerhardy/dev/engine/contrib/libs/sdl2/src/video/SDL_blit.h:478:5: note: here
     case 5:     pixel_copy_increment;                                   \
     ^
/home/mgerhardy/dev/engine/contrib/libs/sdl2/src/video/SDL_blit.h:501:5: note: in expansion of macro ‘DUFFS_LOOP8’
     DUFFS_LOOP8(pixel_copy_increment, width)
     ^~~~~~~~~~~
/home/mgerhardy/dev/engine/contrib/libs/sdl2/src/video/SDL_blit_N.c:2012:13: note: in expansion of macro ‘DUFFS_LOOP’
             DUFFS_LOOP(
             ^~~~~~~~~~
/home/mgerhardy/dev/engine/contrib/libs/sdl2/src/video/SDL_blit_N.c:2022:21: warning: this statement may fall through [-Wimplicit-fallthrough=]
                 src += srcbpp;
                 ~~~~^~~~
/home/mgerhardy/dev/engine/contrib/libs/sdl2/src/video/SDL_blit.h:478:17: note: in definition of macro ‘DUFFS_LOOP8’
     case 5:     pixel_copy_increment;                                   \
                 ^~~~~~~~~~~~~~~~~~~~
/home/mgerhardy/dev/engine/contrib/libs/sdl2/src/video/SDL_blit_N.c:2012:13: note: in expansion of macro ‘DUFFS_LOOP’
             DUFFS_LOOP(
             ^~~~~~~~~~
/home/mgerhardy/dev/engine/contrib/libs/sdl2/src/video/SDL_blit.h:479:5: note: here
     case 4:     pixel_copy_increment;                                   \
     ^
/home/mgerhardy/dev/engine/contrib/libs/sdl2/src/video/SDL_blit.h:501:5: note: in expansion of macro ‘DUFFS_LOOP8’
     DUFFS_LOOP8(pixel_copy_increment, width)
     ^~~~~~~~~~~
/home/mgerhardy/dev/engine/contrib/libs/sdl2/src/video/SDL_blit_N.c:2012:13: note: in expansion of macro ‘DUFFS_LOOP’
             DUFFS_LOOP(
             ^~~~~~~~~~
/home/mgerhardy/dev/engine/contrib/libs/sdl2/src/video/SDL_blit_N.c:2022:21: warning: this statement may fall through [-Wimplicit-fallthrough=]
                 src += srcbpp;
                 ~~~~^~~~
/home/mgerhardy/dev/engine/contrib/libs/sdl2/src/video/SDL_blit.h:479:17: note: in definition of macro ‘DUFFS_LOOP8’
     case 4:     pixel_copy_increment;                                   \
                 ^~~~~~~~~~~~~~~~~~~~
/home/mgerhardy/dev/engine/contrib/libs/sdl2/src/video/SDL_blit_N.c:2012:13: note: in expansion of macro ‘DUFFS_LOOP’
             DUFFS_LOOP(
             ^~~~~~~~~~
/home/mgerhardy/dev/engine/contrib/libs/sdl2/src/video/SDL_blit.h:480:5: note: here
     case 3:     pixel_copy_increment;                                   \
     ^
/home/mgerhardy/dev/engine/contrib/libs/sdl2/src/video/SDL_blit.h:501:5: note: in expansion of macro ‘DUFFS_LOOP8’
     DUFFS_LOOP8(pixel_copy_increment, width)
     ^~~~~~~~~~~
/home/mgerhardy/dev/engine/contrib/libs/sdl2/src/video/SDL_blit_N.c:2012:13: note: in expansion of macro ‘DUFFS_LOOP’
             DUFFS_LOOP(
             ^~~~~~~~~~
/home/mgerhardy/dev/engine/contrib/libs/sdl2/src/video/SDL_blit_N.c:2022:21: warning: this statement may fall through [-Wimplicit-fallthrough=]
                 src += srcbpp;
                 ~~~~^~~~
/home/mgerhardy/dev/engine/contrib/libs/sdl2/src/video/SDL_blit.h:480:17: note: in definition of macro ‘DUFFS_LOOP8’
     case 3:     pixel_copy_increment;                                   \
                 ^~~~~~~~~~~~~~~~~~~~
/home/mgerhardy/dev/engine/contrib/libs/sdl2/src/video/SDL_blit_N.c:2012:13: note: in expansion of macro ‘DUFFS_LOOP’
             DUFFS_LOOP(
             ^~~~~~~~~~
/home/mgerhardy/dev/engine/contrib/libs/sdl2/src/video/SDL_blit.h:481:5: note: here
     case 2:     pixel_copy_increment;                                   \
     ^
/home/mgerhardy/dev/engine/contrib/libs/sdl2/src/video/SDL_blit.h:501:5: note: in expansion of macro ‘DUFFS_LOOP8’
     DUFFS_LOOP8(pixel_copy_increment, width)
     ^~~~~~~~~~~
/home/mgerhardy/dev/engine/contrib/libs/sdl2/src/video/SDL_blit_N.c:2012:13: note: in expansion of macro ‘DUFFS_LOOP’
             DUFFS_LOOP(
             ^~~~~~~~~~
/home/mgerhardy/dev/engine/contrib/libs/sdl2/src/video/SDL_blit_N.c:2022:21: warning: this statement may fall through [-Wimplicit-fallthrough=]
                 src += srcbpp;
                 ~~~~^~~~
/home/mgerhardy/dev/engine/contrib/libs/sdl2/src/video/SDL_blit.h:481:17: note: in definition of macro ‘DUFFS_LOOP8’
     case 2:     pixel_copy_increment;                                   \
                 ^~~~~~~~~~~~~~~~~~~~
/home/mgerhardy/dev/engine/contrib/libs/sdl2/src/video/SDL_blit_N.c:2012:13: note: in expansion of macro ‘DUFFS_LOOP’
             DUFFS_LOOP(
             ^~~~~~~~~~
/home/mgerhardy/dev/engine/contrib/libs/sdl2/src/video/SDL_blit.h:482:5: note: here
     case 1:     pixel_copy_increment;                                   \
     ^
/home/mgerhardy/dev/engine/contrib/libs/sdl2/src/video/SDL_blit.h:501:5: note: in expansion of macro ‘DUFFS_LOOP8’
     DUFFS_LOOP8(pixel_copy_increment, width)
     ^~~~~~~~~~~
/home/mgerhardy/dev/engine/contrib/libs/sdl2/src/video/SDL_blit_N.c:2012:13: note: in expansion of macro ‘DUFFS_LOOP’
             DUFFS_LOOP(
             ^~~~~~~~~~
/home/mgerhardy/dev/engine/contrib/libs/sdl2/src/video/SDL_blit_N.c:2054:21: warning: this statement may fall through [-Wimplicit-fallthrough=]
                 src += srcbpp;
                 ~~~~^~~~
/home/mgerhardy/dev/engine/contrib/libs/sdl2/src/video/SDL_blit.h:475:21: note: in definition of macro ‘DUFFS_LOOP8’
     case 0: do {    pixel_copy_increment;                               \
                     ^~~~~~~~~~~~~~~~~~~~
/home/mgerhardy/dev/engine/contrib/libs/sdl2/src/video/SDL_blit_N.c:2044:13: note: in expansion of macro ‘DUFFS_LOOP’
             DUFFS_LOOP(
             ^~~~~~~~~~
/home/mgerhardy/dev/engine/contrib/libs/sdl2/src/video/SDL_blit.h:476:5: note: here
     case 7:     pixel_copy_increment;                                   \
     ^
/home/mgerhardy/dev/engine/contrib/libs/sdl2/src/video/SDL_blit.h:501:5: note: in expansion of macro ‘DUFFS_LOOP8’
     DUFFS_LOOP8(pixel_copy_increment, width)
     ^~~~~~~~~~~
/home/mgerhardy/dev/engine/contrib/libs/sdl2/src/video/SDL_blit_N.c:2044:13: note: in expansion of macro ‘DUFFS_LOOP’
             DUFFS_LOOP(
             ^~~~~~~~~~
/home/mgerhardy/dev/engine/contrib/libs/sdl2/src/video/SDL_blit_N.c:2054:21: warning: this statement may fall through [-Wimplicit-fallthrough=]
                 src += srcbpp;
                 ~~~~^~~~
/home/mgerhardy/dev/engine/contrib/libs/sdl2/src/video/SDL_blit.h:476:17: note: in definition of macro ‘DUFFS_LOOP8’
     case 7:     pixel_copy_increment;                                   \
                 ^~~~~~~~~~~~~~~~~~~~
/home/mgerhardy/dev/engine/contrib/libs/sdl2/src/video/SDL_blit_N.c:2044:13: note: in expansion of macro ‘DUFFS_LOOP’
             DUFFS_LOOP(
             ^~~~~~~~~~
/home/mgerhardy/dev/engine/contrib/libs/sdl2/src/video/SDL_blit.h:477:5: note: here
     case 6:     pixel_copy_increment;                                   \
     ^
/home/mgerhardy/dev/engine/contrib/libs/sdl2/src/video/SDL_blit.h:501:5: note: in expansion of macro ‘DUFFS_LOOP8’
     DUFFS_LOOP8(pixel_copy_increment, width)
     ^~~~~~~~~~~
/home/mgerhardy/dev/engine/contrib/libs/sdl2/src/video/SDL_blit_N.c:2044:13: note: in expansion of macro ‘DUFFS_LOOP’
             DUFFS_LOOP(
             ^~~~~~~~~~
/home/mgerhardy/dev/engine/contrib/libs/sdl2/src/video/SDL_blit_N.c:2054:21: warning: this statement may fall through [-Wimplicit-fallthrough=]
                 src += srcbpp;
                 ~~~~^~~~
/home/mgerhardy/dev/engine/contrib/libs/sdl2/src/video/SDL_blit.h:477:17: note: in definition of macro ‘DUFFS_LOOP8’
     case 6:     pixel_copy_increment;                                   \
                 ^~~~~~~~~~~~~~~~~~~~
/home/mgerhardy/dev/engine/contrib/libs/sdl2/src/video/SDL_blit_N.c:2044:13: note: in expansion of macro ‘DUFFS_LOOP’
             DUFFS_LOOP(
             ^~~~~~~~~~
/home/mgerhardy/dev/engine/contrib/libs/sdl2/src/video/SDL_blit.h:478:5: note: here
     case 5:     pixel_copy_increment;                                   \
     ^
/home/mgerhardy/dev/engine/contrib/libs/sdl2/src/video/SDL_blit.h:501:5: note: in expansion of macro ‘DUFFS_LOOP8’
     DUFFS_LOOP8(pixel_copy_increment, width)
     ^~~~~~~~~~~
/home/mgerhardy/dev/engine/contrib/libs/sdl2/src/video/SDL_blit_N.c:2044:13: note: in expansion of macro ‘DUFFS_LOOP’
             DUFFS_LOOP(
             ^~~~~~~~~~
/home/mgerhardy/dev/engine/contrib/libs/sdl2/src/video/SDL_blit_N.c:2054:21: warning: this statement may fall through [-Wimplicit-fallthrough=]
                 src += srcbpp;
                 ~~~~^~~~
/home/mgerhardy/dev/engine/contrib/libs/sdl2/src/video/SDL_blit.h:478:17: note: in definition of macro ‘DUFFS_LOOP8’
     case 5:     pixel_copy_increment;                                   \
                 ^~~~~~~~~~~~~~~~~~~~
/home/mgerhardy/dev/engine/contrib/libs/sdl2/src/video/SDL_blit_N.c:2044:13: note: in expansion of macro ‘DUFFS_LOOP’
             DUFFS_LOOP(
             ^~~~~~~~~~
/home/mgerhardy/dev/engine/contrib/libs/sdl2/src/video/SDL_blit.h:479:5: note: here
     case 4:     pixel_copy_increment;                                   \
     ^
/home/mgerhardy/dev/engine/contrib/libs/sdl2/src/video/SDL_blit.h:501:5: note: in expansion of macro ‘DUFFS_LOOP8’
     DUFFS_LOOP8(pixel_copy_increment, width)
     ^~~~~~~~~~~
/home/mgerhardy/dev/engine/contrib/libs/sdl2/src/video/SDL_blit_N.c:2044:13: note: in expansion of macro ‘DUFFS_LOOP’
             DUFFS_LOOP(
             ^~~~~~~~~~
/home/mgerhardy/dev/engine/contrib/libs/sdl2/src/video/SDL_blit_N.c:2054:21: warning: this statement may fall through [-Wimplicit-fallthrough=]
                 src += srcbpp;
                 ~~~~^~~~
/home/mgerhardy/dev/engine/contrib/libs/sdl2/src/video/SDL_blit.h:479:17: note: in definition of macro ‘DUFFS_LOOP8’
     case 4:     pixel_copy_increment;                                   \
                 ^~~~~~~~~~~~~~~~~~~~
/home/mgerhardy/dev/engine/contrib/libs/sdl2/src/video/SDL_blit_N.c:2044:13: note: in expansion of macro ‘DUFFS_LOOP’
             DUFFS_LOOP(
             ^~~~~~~~~~
/home/mgerhardy/dev/engine/contrib/libs/sdl2/src/video/SDL_blit.h:480:5: note: here
     case 3:     pixel_copy_increment;                                   \
     ^
/home/mgerhardy/dev/engine/contrib/libs/sdl2/src/video/SDL_blit.h:501:5: note: in expansion of macro ‘DUFFS_LOOP8’
     DUFFS_LOOP8(pixel_copy_increment, width)
     ^~~~~~~~~~~
/home/mgerhardy/dev/engine/contrib/libs/sdl2/src/video/SDL_blit_N.c:2044:13: note: in expansion of macro ‘DUFFS_LOOP’
             DUFFS_LOOP(
             ^~~~~~~~~~
/home/mgerhardy/dev/engine/contrib/libs/sdl2/src/video/SDL_blit_N.c:2054:21: warning: this statement may fall through [-Wimplicit-fallthrough=]
                 src += srcbpp;
                 ~~~~^~~~
/home/mgerhardy/dev/engine/contrib/libs/sdl2/src/video/SDL_blit.h:480:17: note: in definition of macro ‘DUFFS_LOOP8’
     case 3:     pixel_copy_increment;                                   \
                 ^~~~~~~~~~~~~~~~~~~~
/home/mgerhardy/dev/engine/contrib/libs/sdl2/src/video/SDL_blit_N.c:2044:13: note: in expansion of macro ‘DUFFS_LOOP’
             DUFFS_LOOP(
             ^~~~~~~~~~
/home/mgerhardy/dev/engine/contrib/libs/sdl2/src/video/SDL_blit.h:481:5: note: here
     case 2:     pixel_copy_increment;                                   \
     ^
/home/mgerhardy/dev/engine/contrib/libs/sdl2/src/video/SDL_blit.h:501:5: note: in expansion of macro ‘DUFFS_LOOP8’
     DUFFS_LOOP8(pixel_copy_increment, width)
     ^~~~~~~~~~~
/home/mgerhardy/dev/engine/contrib/libs/sdl2/src/video/SDL_blit_N.c:2044:13: note: in expansion of macro ‘DUFFS_LOOP’
             DUFFS_LOOP(
             ^~~~~~~~~~
/home/mgerhardy/dev/engine/contrib/libs/sdl2/src/video/SDL_blit_N.c:2054:21: warning: this statement may fall through [-Wimplicit-fallthrough=]
                 src += srcbpp;
                 ~~~~^~~~
/home/mgerhardy/dev/engine/contrib/libs/sdl2/src/video/SDL_blit.h:481:17: note: in definition of macro ‘DUFFS_LOOP8’
     case 2:     pixel_copy_increment;                                   \
                 ^~~~~~~~~~~~~~~~~~~~
/home/mgerhardy/dev/engine/contrib/libs/sdl2/src/video/SDL_blit_N.c:2044:13: note: in expansion of macro ‘DUFFS_LOOP’
             DUFFS_LOOP(
             ^~~~~~~~~~
/home/mgerhardy/dev/engine/contrib/libs/sdl2/src/video/SDL_blit.h:482:5: note: here
     case 1:     pixel_copy_increment;                                   \
     ^
/home/mgerhardy/dev/engine/contrib/libs/sdl2/src/video/SDL_blit.h:501:5: note: in expansion of macro ‘DUFFS_LOOP8’
     DUFFS_LOOP8(pixel_copy_increment, width)
     ^~~~~~~~~~~
/home/mgerhardy/dev/engine/contrib/libs/sdl2/src/video/SDL_blit_N.c:2044:13: note: in expansion of macro ‘DUFFS_LOOP’
             DUFFS_LOOP(
             ^~~~~~~~~~
/home/mgerhardy/dev/engine/contrib/libs/sdl2/src/video/SDL_blit_N.c: In function ‘Blit4to4MaskAlpha’:
/home/mgerhardy/dev/engine/contrib/libs/sdl2/src/video/SDL_blit_N.c:2098:17: warning: this statement may fall through [-Wimplicit-fallthrough=]
                 ++src;
                 ^~~
/home/mgerhardy/dev/engine/contrib/libs/sdl2/src/video/SDL_blit.h:475:21: note: in definition of macro ‘DUFFS_LOOP8’
     case 0: do {    pixel_copy_increment;                               \
                     ^~~~~~~~~~~~~~~~~~~~
/home/mgerhardy/dev/engine/contrib/libs/sdl2/src/video/SDL_blit_N.c:2094:13: note: in expansion of macro ‘DUFFS_LOOP’
             DUFFS_LOOP(
             ^~~~~~~~~~
/home/mgerhardy/dev/engine/contrib/libs/sdl2/src/video/SDL_blit.h:476:5: note: here
     case 7:     pixel_copy_increment;                                   \
     ^
/home/mgerhardy/dev/engine/contrib/libs/sdl2/src/video/SDL_blit.h:501:5: note: in expansion of macro ‘DUFFS_LOOP8’
     DUFFS_LOOP8(pixel_copy_increment, width)
     ^~~~~~~~~~~
/home/mgerhardy/dev/engine/contrib/libs/sdl2/src/video/SDL_blit_N.c:2094:13: note: in expansion of macro ‘DUFFS_LOOP’
             DUFFS_LOOP(
             ^~~~~~~~~~
/home/mgerhardy/dev/engine/contrib/libs/sdl2/src/video/SDL_blit_N.c:2098:17: warning: this statement may fall through [-Wimplicit-fallthrough=]
                 ++src;
                 ^~~
/home/mgerhardy/dev/engine/contrib/libs/sdl2/src/video/SDL_blit.h:476:17: note: in definition of macro ‘DUFFS_LOOP8’
     case 7:     pixel_copy_increment;                                   \
                 ^~~~~~~~~~~~~~~~~~~~
/home/mgerhardy/dev/engine/contrib/libs/sdl2/src/video/SDL_blit_N.c:2094:13: note: in expansion of macro ‘DUFFS_LOOP’
             DUFFS_LOOP(
             ^~~~~~~~~~
/home/mgerhardy/dev/engine/contrib/libs/sdl2/src/video/SDL_blit.h:477:5: note: here
     case 6:     pixel_copy_increment;                                   \
     ^
/home/mgerhardy/dev/engine/contrib/libs/sdl2/src/video/SDL_blit.h:501:5: note: in expansion of macro ‘DUFFS_LOOP8’
     DUFFS_LOOP8(pixel_copy_increment, width)
     ^~~~~~~~~~~
/home/mgerhardy/dev/engine/contrib/libs/sdl2/src/video/SDL_blit_N.c:2094:13: note: in expansion of macro ‘DUFFS_LOOP’
             DUFFS_LOOP(
             ^~~~~~~~~~
/home/mgerhardy/dev/engine/contrib/libs/sdl2/src/video/SDL_blit_N.c:2098:17: warning: this statement may fall through [-Wimplicit-fallthrough=]
                 ++src;
                 ^~~
/home/mgerhardy/dev/engine/contrib/libs/sdl2/src/video/SDL_blit.h:477:17: note: in definition of macro ‘DUFFS_LOOP8’
     case 6:     pixel_copy_increment;                                   \
                 ^~~~~~~~~~~~~~~~~~~~
/home/mgerhardy/dev/engine/contrib/libs/sdl2/src/video/SDL_blit_N.c:2094:13: note: in expansion of macro ‘DUFFS_LOOP’
             DUFFS_LOOP(
             ^~~~~~~~~~
/home/mgerhardy/dev/engine/contrib/libs/sdl2/src/video/SDL_blit.h:478:5: note: here
     case 5:     pixel_copy_increment;                                   \
     ^
/home/mgerhardy/dev/engine/contrib/libs/sdl2/src/video/SDL_blit.h:501:5: note: in expansion of macro ‘DUFFS_LOOP8’
     DUFFS_LOOP8(pixel_copy_increment, width)
     ^~~~~~~~~~~
/home/mgerhardy/dev/engine/contrib/libs/sdl2/src/video/SDL_blit_N.c:2094:13: note: in expansion of macro ‘DUFFS_LOOP’
             DUFFS_LOOP(
             ^~~~~~~~~~
/home/mgerhardy/dev/engine/contrib/libs/sdl2/src/video/SDL_blit_N.c:2098:17: warning: this statement may fall through [-Wimplicit-fallthrough=]
                 ++src;
                 ^~~
/home/mgerhardy/dev/engine/contrib/libs/sdl2/src/video/SDL_blit.h:478:17: note: in definition of macro ‘DUFFS_LOOP8’
     case 5:     pixel_copy_increment;                                   \
                 ^~~~~~~~~~~~~~~~~~~~
/home/mgerhardy/dev/engine/contrib/libs/sdl2/src/video/SDL_blit_N.c:2094:13: note: in expansion of macro ‘DUFFS_LOOP’
             DUFFS_LOOP(
             ^~~~~~~~~~
/home/mgerhardy/dev/engine/contrib/libs/sdl2/src/video/SDL_blit.h:479:5: note: here
     case 4:     pixel_copy_increment;                                   \
     ^
/home/mgerhardy/dev/engine/contrib/libs/sdl2/src/video/SDL_blit.h:501:5: note: in expansion of macro ‘DUFFS_LOOP8’
     DUFFS_LOOP8(pixel_copy_increment, width)
     ^~~~~~~~~~~
/home/mgerhardy/dev/engine/contrib/libs/sdl2/src/video/SDL_blit_N.c:2094:13: note: in expansion of macro ‘DUFFS_LOOP’
             DUFFS_LOOP(
             ^~~~~~~~~~
/home/mgerhardy/dev/engine/contrib/libs/sdl2/src/video/SDL_blit_N.c:2098:17: warning: this statement may fall through [-Wimplicit-fallthrough=]
                 ++src;
                 ^~~
/home/mgerhardy/dev/engine/contrib/libs/sdl2/src/video/SDL_blit.h:479:17: note: in definition of macro ‘DUFFS_LOOP8’
     case 4:     pixel_copy_increment;                                   \
                 ^~~~~~~~~~~~~~~~~~~~
/home/mgerhardy/dev/engine/contrib/libs/sdl2/src/video/SDL_blit_N.c:2094:13: note: in expansion of macro ‘DUFFS_LOOP’
             DUFFS_LOOP(
             ^~~~~~~~~~
/home/mgerhardy/dev/engine/contrib/libs/sdl2/src/video/SDL_blit.h:480:5: note: here
     case 3:     pixel_copy_increment;                                   \
     ^
/home/mgerhardy/dev/engine/contrib/libs/sdl2/src/video/SDL_blit.h:501:5: note: in expansion of macro ‘DUFFS_LOOP8’
     DUFFS_LOOP8(pixel_copy_increment, width)
     ^~~~~~~~~~~
/home/mgerhardy/dev/engine/contrib/libs/sdl2/src/video/SDL_blit_N.c:2094:13: note: in expansion of macro ‘DUFFS_LOOP’
             DUFFS_LOOP(
             ^~~~~~~~~~
/home/mgerhardy/dev/engine/contrib/libs/sdl2/src/video/SDL_blit_N.c:2098:17: warning: this statement may fall through [-Wimplicit-fallthrough=]
                 ++src;
                 ^~~
/home/mgerhardy/dev/engine/contrib/libs/sdl2/src/video/SDL_blit.h:480:17: note: in definition of macro ‘DUFFS_LOOP8’
     case 3:     pixel_copy_increment;                                   \
                 ^~~~~~~~~~~~~~~~~~~~
/home/mgerhardy/dev/engine/contrib/libs/sdl2/src/video/SDL_blit_N.c:2094:13: note: in expansion of macro ‘DUFFS_LOOP’
             DUFFS_LOOP(
             ^~~~~~~~~~
/home/mgerhardy/dev/engine/contrib/libs/sdl2/src/video/SDL_blit.h:481:5: note: here
     case 2:     pixel_copy_increment;                                   \
     ^
/home/mgerhardy/dev/engine/contrib/libs/sdl2/src/video/SDL_blit.h:501:5: note: in expansion of macro ‘DUFFS_LOOP8’
     DUFFS_LOOP8(pixel_copy_increment, width)
     ^~~~~~~~~~~
/home/mgerhardy/dev/engine/contrib/libs/sdl2/src/video/SDL_blit_N.c:2094:13: note: in expansion of macro ‘DUFFS_LOOP’
             DUFFS_LOOP(
             ^~~~~~~~~~
/home/mgerhardy/dev/engine/contrib/libs/sdl2/src/video/SDL_blit_N.c:2098:17: warning: this statement may fall through [-Wimplicit-fallthrough=]
                 ++src;
                 ^~~
/home/mgerhardy/dev/engine/contrib/libs/sdl2/src/video/SDL_blit.h:481:17: note: in definition of macro ‘DUFFS_LOOP8’
     case 2:     pixel_copy_increment;                                   \
                 ^~~~~~~~~~~~~~~~~~~~
/home/mgerhardy/dev/engine/contrib/libs/sdl2/src/video/SDL_blit_N.c:2094:13: note: in expansion of macro ‘DUFFS_LOOP’
             DUFFS_LOOP(
             ^~~~~~~~~~
/home/mgerhardy/dev/engine/contrib/libs/sdl2/src/video/SDL_blit.h:482:5: note: here
     case 1:     pixel_copy_increment;                                   \
     ^
/home/mgerhardy/dev/engine/contrib/libs/sdl2/src/video/SDL_blit.h:501:5: note: in expansion of macro ‘DUFFS_LOOP8’
     DUFFS_LOOP8(pixel_copy_increment, width)
     ^~~~~~~~~~~
/home/mgerhardy/dev/engine/contrib/libs/sdl2/src/video/SDL_blit_N.c:2094:13: note: in expansion of macro ‘DUFFS_LOOP’
             DUFFS_LOOP(
             ^~~~~~~~~~
/home/mgerhardy/dev/engine/contrib/libs/sdl2/src/video/SDL_blit_N.c:2115:17: warning: this statement may fall through [-Wimplicit-fallthrough=]
                 ++src;
                 ^~~
/home/mgerhardy/dev/engine/contrib/libs/sdl2/src/video/SDL_blit.h:475:21: note: in definition of macro ‘DUFFS_LOOP8’
     case 0: do {    pixel_copy_increment;                               \
                     ^~~~~~~~~~~~~~~~~~~~
/home/mgerhardy/dev/engine/contrib/libs/sdl2/src/video/SDL_blit_N.c:2111:13: note: in expansion of macro ‘DUFFS_LOOP’
             DUFFS_LOOP(
             ^~~~~~~~~~
/home/mgerhardy/dev/engine/contrib/libs/sdl2/src/video/SDL_blit.h:476:5: note: here
     case 7:     pixel_copy_increment;                                   \
     ^
/home/mgerhardy/dev/engine/contrib/libs/sdl2/src/video/SDL_blit.h:501:5: note: in expansion of macro ‘DUFFS_LOOP8’
     DUFFS_LOOP8(pixel_copy_increment, width)
     ^~~~~~~~~~~
/home/mgerhardy/dev/engine/contrib/libs/sdl2/src/video/SDL_blit_N.c:2111:13: note: in expansion of macro ‘DUFFS_LOOP’
             DUFFS_LOOP(
             ^~~~~~~~~~
/home/mgerhardy/dev/engine/contrib/libs/sdl2/src/video/SDL_blit_N.c:2115:17: warning: this statement may fall through [-Wimplicit-fallthrough=]
                 ++src;
                 ^~~
/home/mgerhardy/dev/engine/contrib/libs/sdl2/src/video/SDL_blit.h:476:17: note: in definition of macro ‘DUFFS_LOOP8’
     case 7:     pixel_copy_increment;                                   \
                 ^~~~~~~~~~~~~~~~~~~~
/home/mgerhardy/dev/engine/contrib/libs/sdl2/src/video/SDL_blit_N.c:2111:13: note: in expansion of macro ‘DUFFS_LOOP’
             DUFFS_LOOP(
             ^~~~~~~~~~
/home/mgerhardy/dev/engine/contrib/libs/sdl2/src/video/SDL_blit.h:477:5: note: here
     case 6:     pixel_copy_increment;                                   \
     ^
/home/mgerhardy/dev/engine/contrib/libs/sdl2/src/video/SDL_blit.h:501:5: note: in expansion of macro ‘DUFFS_LOOP8’
     DUFFS_LOOP8(pixel_copy_increment, width)
     ^~~~~~~~~~~
/home/mgerhardy/dev/engine/contrib/libs/sdl2/src/video/SDL_blit_N.c:2111:13: note: in expansion of macro ‘DUFFS_LOOP’
             DUFFS_LOOP(
             ^~~~~~~~~~
/home/mgerhardy/dev/engine/contrib/libs/sdl2/src/video/SDL_blit_N.c:2115:17: warning: this statement may fall through [-Wimplicit-fallthrough=]
                 ++src;
                 ^~~
/home/mgerhardy/dev/engine/contrib/libs/sdl2/src/video/SDL_blit.h:477:17: note: in definition of macro ‘DUFFS_LOOP8’
     case 6:     pixel_copy_increment;                                   \
                 ^~~~~~~~~~~~~~~~~~~~
/home/mgerhardy/dev/engine/contrib/libs/sdl2/src/video/SDL_blit_N.c:2111:13: note: in expansion of macro ‘DUFFS_LOOP’
             DUFFS_LOOP(
             ^~~~~~~~~~
/home/mgerhardy/dev/engine/contrib/libs/sdl2/src/video/SDL_blit.h:478:5: note: here
     case 5:     pixel_copy_increment;                                   \
     ^
/home/mgerhardy/dev/engine/contrib/libs/sdl2/src/video/SDL_blit.h:501:5: note: in expansion of macro ‘DUFFS_LOOP8’
     DUFFS_LOOP8(pixel_copy_increment, width)
     ^~~~~~~~~~~
/home/mgerhardy/dev/engine/contrib/libs/sdl2/src/video/SDL_blit_N.c:2111:13: note: in expansion of macro ‘DUFFS_LOOP’
             DUFFS_LOOP(
             ^~~~~~~~~~
/home/mgerhardy/dev/engine/contrib/libs/sdl2/src/video/SDL_blit_N.c:2115:17: warning: this statement may fall through [-Wimplicit-fallthrough=]
                 ++src;
                 ^~~
/home/mgerhardy/dev/engine/contrib/libs/sdl2/src/video/SDL_blit.h:478:17: note: in definition of macro ‘DUFFS_LOOP8’
     case 5:     pixel_copy_increment;                                   \
                 ^~~~~~~~~~~~~~~~~~~~
/home/mgerhardy/dev/engine/contrib/libs/sdl2/src/video/SDL_blit_N.c:2111:13: note: in expansion of macro ‘DUFFS_LOOP’
             DUFFS_LOOP(
             ^~~~~~~~~~
/home/mgerhardy/dev/engine/contrib/libs/sdl2/src/video/SDL_blit.h:479:5: note: here
     case 4:     pixel_copy_increment;                                   \
     ^
/home/mgerhardy/dev/engine/contrib/libs/sdl2/src/video/SDL_blit.h:501:5: note: in expansion of macro ‘DUFFS_LOOP8’
     DUFFS_LOOP8(pixel_copy_increment, width)
     ^~~~~~~~~~~
/home/mgerhardy/dev/engine/contrib/libs/sdl2/src/video/SDL_blit_N.c:2111:13: note: in expansion of macro ‘DUFFS_LOOP’
             DUFFS_LOOP(
             ^~~~~~~~~~
/home/mgerhardy/dev/engine/contrib/libs/sdl2/src/video/SDL_blit_N.c:2115:17: warning: this statement may fall through [-Wimplicit-fallthrough=]
                 ++src;
                 ^~~
/home/mgerhardy/dev/engine/contrib/libs/sdl2/src/video/SDL_blit.h:479:17: note: in definition of macro ‘DUFFS_LOOP8’
     case 4:     pixel_copy_increment;                                   \
                 ^~~~~~~~~~~~~~~~~~~~
/home/mgerhardy/dev/engine/contrib/libs/sdl2/src/video/SDL_blit_N.c:2111:13: note: in expansion of macro ‘DUFFS_LOOP’
             DUFFS_LOOP(
             ^~~~~~~~~~
/home/mgerhardy/dev/engine/contrib/libs/sdl2/src/video/SDL_blit.h:480:5: note: here
     case 3:     pixel_copy_increment;                                   \
     ^
/home/mgerhardy/dev/engine/contrib/libs/sdl2/src/video/SDL_blit.h:501:5: note: in expansion of macro ‘DUFFS_LOOP8’
     DUFFS_LOOP8(pixel_copy_increment, width)
     ^~~~~~~~~~~
/home/mgerhardy/dev/engine/contrib/libs/sdl2/src/video/SDL_blit_N.c:2111:13: note: in expansion of macro ‘DUFFS_LOOP’
             DUFFS_LOOP(
             ^~~~~~~~~~
/home/mgerhardy/dev/engine/contrib/libs/sdl2/src/video/SDL_blit_N.c:2115:17: warning: this statement may fall through [-Wimplicit-fallthrough=]
Comment 3 Sam Lantinga 2017-09-06 17:34:21 UTC
That's an intentional explicit fallthrough. Is there a way to tell the compiler that?
Comment 4 Ryan C. Gordon 2017-09-06 18:58:26 UTC
(In reply to Sam Lantinga from comment #3)
> That's an intentional explicit fallthrough. Is there a way to tell the
> compiler that?

case 0:
   whatever();
   __attribute__ ((fallthrough));  // tells gcc this is intentional.
case 1:
   something_else();
Comment 5 Ryan C. Gordon 2017-09-06 19:00:00 UTC
(In reply to Ryan C. Gordon from comment #4)
>    __attribute__ ((fallthrough));  // tells gcc this is intentional.

(and gcc only needs this for actual fallthrough: if there's a noreturn function like exit(), or it falls into a case with nothing but a break/return, etc, it knows not to warn.)

Details: https://developers.redhat.com/blog/2017/03/10/wimplicit-fallthrough-in-gcc-7/

--ryan.
Comment 6 Ozkan Sezer 2017-09-06 19:05:08 UTC
Something like the following at the offending places:

diff --git a/src/video/SDL_blit.h b/src/video/SDL_blit.h
--- a/src/video/SDL_blit.h
+++ b/src/video/SDL_blit.h
@@ -472,14 +472,14 @@
 #define DUFFS_LOOP8(pixel_copy_increment, width)                        \
 { int n = (width+7)/8;                                                  \
     switch (width & 7) {                                                \
-    case 0: do {    pixel_copy_increment;                               \
-    case 7:     pixel_copy_increment;                                   \
-    case 6:     pixel_copy_increment;                                   \
-    case 5:     pixel_copy_increment;                                   \
-    case 4:     pixel_copy_increment;                                   \
-    case 3:     pixel_copy_increment;                                   \
-    case 2:     pixel_copy_increment;                                   \
-    case 1:     pixel_copy_increment;                                   \
+    case 0: do {    pixel_copy_increment; /* fallthrough */             \
+    case 7:     pixel_copy_increment;     /* fallthrough */             \
+    case 6:     pixel_copy_increment;     /* fallthrough */             \
+    case 5:     pixel_copy_increment;     /* fallthrough */             \
+    case 4:     pixel_copy_increment;     /* fallthrough */             \
+    case 3:     pixel_copy_increment;     /* fallthrough */             \
+    case 2:     pixel_copy_increment;     /* fallthrough */             \
+    case 1:     pixel_copy_increment;     /* fallthrough */             \
         } while ( --n > 0 );                                            \
     }                                                                   \
 }

See https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html
for -Wimplicit-fallthrough
Comment 7 Ryan C. Gordon 2017-09-06 19:17:56 UTC
(In reply to Ozkan Sezer from comment #6)
> /* fallthrough */

Whoa, there's a regular expression parser for comments here.  :O

--ryam.
Comment 8 Sam Lantinga 2017-09-06 19:29:35 UTC
Fixed, thanks!
https://hg.libsdl.org/SDL/rev/a09ca9e8938c

That comment trick is a neat one. :)