[lib] Make lib compatible with -Wfall-through excepting legacy

Switch to a macro `ZSTD_FALLTHROUGH;` instead of a comment. On supported
compilers this uses an attribute, otherwise it becomes a comment.

This is necessary to be compatible with clang's `-Wfall-through`, and
gcc's `-Wfall-through=2` which don't support comments. Without this the
linux build emits a bunch of warnings.

Also add a test to CI to ensure that we don't regress.
This commit is contained in:
Nick Terrell
2021-09-23 10:51:18 -07:00
parent e3feec74d3
commit 189e87bcbe
11 changed files with 81 additions and 24 deletions
+12
View File
@@ -151,6 +151,18 @@ jobs:
make gcc8install
CC=gcc-8 CFLAGS="-Werror" make -j all
implicit-fall-through:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: -Wimplicit-fallthrough build
run: |
make clean
CC=gcc MOREFLAGS="-Werror -Wimplicit-fallthrough=2 -O0" make -C lib -j libzstd.a ZSTD_LEGACY_SUPPORT=0
make clean
CC=clang MOREFLAGS="-Werror -Wimplicit-fallthrough -O0" make -C lib -j libzstd.a ZSTD_LEGACY_SUPPORT=0
visual-2019:
runs-on: windows-latest
strategy: