> Date: Thu, 11 Jan 2018 13:53:00 +1000 > From: David Gwynne <da...@gwynne.id.au> > > this silences the warnings when building dhclient. > > according to guenther@, the c standard says ternary operators are > subject to type promotion rules, ie, it ends up being at least an > int. this adds explicit casts to the expected type, which makes > printf happier when you tell it that it's a %hu coming up. > > ok?
ok kettenis@ > Index: _endian.h > =================================================================== > RCS file: /cvs/src/sys/sys/_endian.h,v > retrieving revision 1.7 > diff -u -p -r1.7 _endian.h > --- _endian.h 7 Jan 2018 15:17:42 -0000 1.7 > +++ _endian.h 11 Jan 2018 03:31:01 -0000 > @@ -83,9 +83,12 @@ __swap64md(__uint64_t x) > } > #endif > > -#define __swap16(x) (__builtin_constant_p(x) ? __swap16gen(x) : > __swap16md(x)) > -#define __swap32(x) (__builtin_constant_p(x) ? __swap32gen(x) : > __swap32md(x)) > -#define __swap64(x) (__builtin_constant_p(x) ? __swap64gen(x) : > __swap64md(x)) > +#define __swap16(x) \ > + (__uint16_t)(__builtin_constant_p(x) ? __swap16gen(x) : __swap16md(x)) > +#define __swap32(x) \ > + (__uint32_t)(__builtin_constant_p(x) ? __swap32gen(x) : __swap32md(x)) > +#define __swap64(x) \ > + (__uint64_t)(__builtin_constant_p(x) ? __swap64gen(x) : __swap64md(x)) > > #if _BYTE_ORDER == _LITTLE_ENDIAN > > >