diff --git a/Makefile.include b/Makefile.include index 137ad480bc897b827f81e58d3bc97dc55be6e634..35edb0c0e96689ef53b598852ef5364d6bc5ce79 100644 --- a/Makefile.include +++ b/Makefile.include @@ -141,10 +141,6 @@ ifeq ($(WPEDANTIC),1) CFLAGS += -Wpedantic endif -# remove this once codebase is adapted -CFLAGS += -Wno-implicit-fallthrough -CXXFLAGS += -Wno-implicit-fallthrough - ifneq (10,$(if $(RIOT_VERSION),1,0)$(if $(__RIOTBUILD_FLAG),1,0)) # Provide a shallow sanity check. You cannot call `make` in a module directory. @@ -248,6 +244,16 @@ include $(RIOTCPU)/$(CPU)/Makefile.include # Import all toolchain settings include $(RIOTMAKE)/toolchain/$(TOOLCHAIN).inc.mk +# Tell ccache to pass the original file to the compiler, instead of passing the +# preprocessed code. Without this setting, the compilation will fail with +# -Wimplicit-fallthrough warnings even when the fall through case is properly +# commented because the preprocessor has stripped the comments from the code. +# This also fixes some other false warnings when compiling with LLVM/Clang. +# The environment variable only affects builds with ccache (e.g. on CI/Murdock). +# Non cached builds are not affected in any way. +# For more information, see http://petereisentraut.blogspot.com/2011/09/ccache-and-clang-part-2.html +export CCACHE_CPP2=yes + # get number of interfaces straight before resolving dependencies GNRC_NETIF_NUMOF ?= 1 diff --git a/drivers/sht1x/sht1x_saul.c b/drivers/sht1x/sht1x_saul.c index 7c0abd92551c7178b4da06e173c908aafe42b785..50c52eea90ac93b79eed1f151688f7a755f4dfe5 100644 --- a/drivers/sht1x/sht1x_saul.c +++ b/drivers/sht1x/sht1x_saul.c @@ -41,6 +41,7 @@ static int read(const sht1x_dev_t *dev, int16_t *temp, int16_t *hum) continue; case -ECANCELED: puts("[sht1x] Measurement times out"); + /* falls through */ default: /* Other failure, cannot recover so giving up */ return -1;