Re: [PATCH 1/2] linux/kernel.h: use 'short' to define USHRT_MAX, SHRT_MAX, SHRT_MIN

From: Alexey Dobriyan
Date: Sat Feb 02 2019 - 11:31:43 EST


On Sun, Feb 03, 2019 at 01:06:24AM +0900, Masahiro Yamada wrote:
> The log of commit 44f564a4bf6a ("ipc: add definitions of USHORT_MAX
> and others") did not explain why it used (s16) and (u16) instead of
> (short) and (unsigned short).
>
> Let's use (short) and (unsigned short), which is more sensible, and
> more consistent with the other MAX/MIN defines.
>
> As you see in include/uapi/asm-generic/int-ll64.h, s16/u16 are
> typedef'ed as signed/unsigned short. So, this commit does not have
> a functional change.

> -#define USHRT_MAX ((u16)(~0U))
> -#define SHRT_MAX ((s16)(USHRT_MAX>>1))
> -#define SHRT_MIN ((s16)(-SHRT_MAX - 1))
> +#define USHRT_MAX ((unsigned short)(~0U))
^ ^
+---+
unnecessary ()
> +#define SHRT_MAX ((short)(USHRT_MAX>>1))
> +#define SHRT_MIN ((short)(-SHRT_MAX - 1))

"short" and "unsigned short" are probably the most useless C types.
I doubt their usage should be promoted.