[ Cc += [email protected] ]

"Gustavo A. R. Silva" <[email protected]> writes:
> In preparation to enabling -Wimplicit-fallthrough, mark switch cases
> where we are expecting to fall through.
>
> Signed-off-by: Gustavo A. R. Silva <[email protected]>
> ---
>  include/linux/signal.h | 6 ++++++
>  1 file changed, 6 insertions(+)

These all look correct to me.

Reviewed-by: Michael Ellerman <[email protected]>

> diff --git a/include/linux/signal.h b/include/linux/signal.h
> index 200ed96..f428e86 100644
> --- a/include/linux/signal.h
> +++ b/include/linux/signal.h
> @@ -129,9 +129,11 @@ static inline void name(sigset_t *r, const sigset_t *a, 
> const sigset_t *b) \
>               b3 = b->sig[3]; b2 = b->sig[2];                         \
>               r->sig[3] = op(a3, b3);                                 \
>               r->sig[2] = op(a2, b2);                                 \
> +             /* fall through */                                      \
>       case 2:                                                         \
>               a1 = a->sig[1]; b1 = b->sig[1];                         \
>               r->sig[1] = op(a1, b1);                                 \
> +             /* fall through */                                      \
>       case 1:                                                         \
>               a0 = a->sig[0]; b0 = b->sig[0];                         \
>               r->sig[0] = op(a0, b0);                                 \
> @@ -161,7 +163,9 @@ static inline void name(sigset_t *set)                    
>                 \
>       switch (_NSIG_WORDS) {                                          \
>       case 4: set->sig[3] = op(set->sig[3]);                          \
>               set->sig[2] = op(set->sig[2]);                          \
> +             /* fall through */                                      \
>       case 2: set->sig[1] = op(set->sig[1]);                          \
> +             /* fall through */                                      \
>       case 1: set->sig[0] = op(set->sig[0]);                          \
>                   break;                                              \
>       default:                                                        \
> @@ -182,6 +186,7 @@ static inline void sigemptyset(sigset_t *set)
>               memset(set, 0, sizeof(sigset_t));
>               break;
>       case 2: set->sig[1] = 0;
> +             /* fall through */
>       case 1: set->sig[0] = 0;
>               break;
>       }
> @@ -194,6 +199,7 @@ static inline void sigfillset(sigset_t *set)
>               memset(set, -1, sizeof(sigset_t));
>               break;
>       case 2: set->sig[1] = -1;
> +             /* fall through */
>       case 1: set->sig[0] = -1;
>               break;
>       }

I think _NSIG_WORDS is always constant. So these last two seem like they
could just be replaced with memset() and a modern compiler would do the
right thing.

cheers

Reply via email to