Messages in this thread |  | | Date | Tue, 7 Jun 2022 15:27:44 -0700 | From | Andrew Morton <> | Subject | Re: [PATCH] include/uapi/linux/swab.h: add __u16 cast to __swab16 conditional |
| |
On Tue, 7 Jun 2022 15:20:06 -0700 Justin Stitt <jstitt007@gmail.com> wrote:
> if __HAVE_BUILTIN_BSWAP16__ is defined then __swab16 utilizes a __u16 cast. > This same cast should be used if __HAVE_BUILTIN_BSWAP16__ is not defined as > well. This should fix loads (at least a few) clang -Wformat warnings > specifically with `ntohs()` > > ... > > --- a/include/uapi/linux/swab.h > +++ b/include/uapi/linux/swab.h > @@ -102,7 +102,7 @@ static inline __attribute_const__ __u32 __fswahb32(__u32 val) > #define __swab16(x) (__u16)__builtin_bswap16((__u16)(x)) > #else > #define __swab16(x) \ > - (__builtin_constant_p((__u16)(x)) ? \ > + (__u16)(__builtin_constant_p((__u16)(x)) ? \ > ___constant_swab16(x) : \ > __fswab16(x)) > #endif
More explanation, please? Both ___constant_swab16() and __fswab16() return __u16, so why does this patch have any effect?
|  |