Re: -Wimplicit-fallthrough not working with ccache

From: Gustavo A. R. Silva
Date: Mon Feb 18 2019 - 12:50:10 EST


Hi Kalle,

On 2/16/19 5:21 AM, Kalle Valo wrote:
> (replying to an old thread but renaming it)
>
> Kalle Valo <kvalo@xxxxxxxxxxxxxx> writes:
>
>> "Gustavo A. R. Silva" <gustavo@xxxxxxxxxxxxxx> wrote:
>>
>>> In preparation to enabling -Wimplicit-fallthrough, mark switch cases
>>> where we are expecting to fall through.
>>>
>>> Notice that in this particular case, I replaced "pass through" with
>>> a proper "fall through" comment, which is what GCC is expecting
>>> to find.
>>>
>>> Signed-off-by: Gustavo A. R. Silva <gustavo@xxxxxxxxxxxxxx>
>>> Signed-off-by: Kalle Valo <kvalo@xxxxxxxxxxxxxx>
>>
>> Patch applied to ath-next branch of ath.git, thanks.
>>
>> f1d270ae10ff ath10k: htt_tx: mark expected switch fall-throughs
>
> Gustavo, I enabled W=1 on my ath10k build checks and it took me a while
> to figure out why GCC was warning about fall through annotations missing
> even I knew you had fixed them. Finally I figured out that the reason
> was ccache, which I need because I work with different branches and need
> to recompile the kernel quite often.
>
> If the plan is to enable -Wimplicit-fallthrough by default in the kernel
> IMHO this might become an issue, as otherwise people using ccache start
> seeing lots of invalid warnings. Apparently CCACHE_COMMENTS=1 will fix
> that but my version of ccache doesn't support it, and how would everyone
> learn that trick anyway? Or maybe CCACHE_COMMENTS can enabled through
> kernel Makefile?
>

Can you share with me the warning messages you get?

I just see the following warnings with linux-next:

$ make CC="ccache gcc" W=1 drivers/net/wireless/ath/ath10k/htt_tx.o
CC [M] drivers/net/wireless/ath/ath10k/htt_tx.o
In file included from drivers/net/wireless/ath/ath10k/htt_tx.c:19:
drivers/net/wireless/ath/ath10k/htt.h:1727:1: warning: alignment 1 of âstruct ath10k_htt_txbuf_32â is less than 4 [-Wpacked-not-aligned]
} __packed;
^
drivers/net/wireless/ath/ath10k/htt.h:1734:1: warning: alignment 1 of âstruct ath10k_htt_txbuf_64â is less than 4 [-Wpacked-not-aligned]
} __packed;
^

In my Makefile I have:

KBUILD_CFLAGS += $(call cc-option,-Wimplicit-fallthrough=3,)


Thanks
--
Gustavo