[PATCH 05/18] net/net: fix switch/case fallthrough annotations
Tom Rini
trini at konsulko.com
Wed Apr 9 00:29:18 CEST 2025
On Thu, Mar 27, 2025 at 03:33:00PM +0000, Andre Przywara wrote:
> The net_check_prereq() routine in the generic network handling code
> mixes case: labels with #ifdef's, which makes predicting fallthrough
> situations tricky. We had two "fall through" comments in the code, but
> at the wrong places.
>
> Remove one unneeded comment (no annotations necessary between just empty
> labels), and move one other instance to the right place (before any
> label sequence).
> This makes GCC's implicit fallthrough checker happy.
>
> Signed-off-by: Andre Przywara <andre.przywara at arm.com>
> Reviewed-by: Tom Rini <trini at konsulko.com>
> ---
> net/net.c | 3 +--
> 1 file changed, 1 insertion(+), 2 deletions(-)
>
> diff --git a/net/net.c b/net/net.c
> index 5219367e391..f191f16357c 100644
> --- a/net/net.c
> +++ b/net/net.c
> @@ -1525,7 +1525,6 @@ static int net_check_prereq(enum proto_t protocol)
> #if defined(CONFIG_CMD_NFS)
> case NFS:
> #endif
> - /* Fall through */
> case TFTPGET:
> case TFTPPUT:
> if (IS_ENABLED(CONFIG_IPV6) && use_ip6) {
> @@ -1539,11 +1538,11 @@ static int net_check_prereq(enum proto_t protocol)
> puts("*** ERROR: `serverip' not set\n");
> return 1;
> }
> + fallthrough;
> #if defined(CONFIG_CMD_PING) || \
> defined(CONFIG_CMD_DNS) || defined(CONFIG_PROT_UDP)
> common:
> #endif
> - /* Fall through */
>
> case NETCONS:
> case FASTBOOT_UDP:
So this one is harder than it looks. With clang, we cannot seemingly
have:
fallthrough;
#if defined(CONFIG_CMD_PING) || \
defined(CONFIG_CMD_DNS) || defined(CONFIG_PROT_UDP)
common:
#endif
And gcc was failing on:
}
#if defined(CONFIG_CMD_PING) || \
defined(CONFIG_CMD_DNS) || defined(CONFIG_PROT_UDP)
common:
#endif
fallthrough;
Maybe we can move the label to inside the next set of cases, and then
also add CONFIG_CMD_PING6 to the checks, as that also has 'goto common;'
--
Tom
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 659 bytes
Desc: not available
URL: <https://lists.denx.de/pipermail/u-boot/attachments/20250408/14e84a33/attachment.sig>
More information about the U-Boot
mailing list