On Wed, 30 Sep 2009, Ramsay Jones wrote: > > commit 51ea551 ("make sure byte swapping is optimal for git" > 2009-08-18) introduced a "sane definition for ntohl()/htonl()" > for use on some GNU C platforms. Unfortunately, for some of > these platforms, this results in the introduction of a problem > which is essentially the reverse of a problem that commit 6e1c234 > ("Fix some warnings (on cygwin) to allow -Werror" 2008-07-3) was > intended to fix. > > In particular, on platforms where the uint32_t type is defined > to be unsigned long, the return type of the new ntohl()/htonl() > is causing gcc to issue printf format warnings, such as: > > warning: long unsigned int format, unsigned int arg (arg 3) > > (nine such warnings, covering six different files). The earlier > commit (6e1c234) needed to suppress these same warnings, except > that the types were in the opposite direction; namely the format > specifier ("%u") was 'unsigned int' and the argument type (ie the > return type of ntohl()) was 'long unsigned int' (aka uint32_t). > > In order to suppress these warnings, the earlier commit used the > (C99) PRIu32 format specifier, since the definition of this macro > is suitable for use with the uint32_t type on that platform. > This worked because the return type of the (original) platform > ntohl()/htonl() functions was uint32_t. > > In order to suppress these warnings, we change the return type of > the new byte swapping functions in the compat/bswap.h header file > from 'unsigned int' to uint32_t. > > Signed-off-by: Ramsay Jones <ramsay@xxxxxxxxxxxxxxxxxxx> Acked-by: Nicolas Pitre <nico@xxxxxxxxxxx> > --- > compat/bswap.h | 4 ++-- > 1 files changed, 2 insertions(+), 2 deletions(-) > > diff --git a/compat/bswap.h b/compat/bswap.h > index 7246a12..5cc4acb 100644 > --- a/compat/bswap.h > +++ b/compat/bswap.h > @@ -9,7 +9,7 @@ > * Default version that the compiler ought to optimize properly with > * constant values. > */ > -static inline unsigned int default_swab32(unsigned int val) > +static inline uint32_t default_swab32(uint32_t val) > { > return (((val & 0xff000000) >> 24) | > ((val & 0x00ff0000) >> 8) | > @@ -20,7 +20,7 @@ static inline unsigned int default_swab32(unsigned int val) > #if defined(__GNUC__) && (defined(__i386__) || defined(__x86_64__)) > > #define bswap32(x) ({ \ > - unsigned int __res; \ > + uint32_t __res; \ > if (__builtin_constant_p(x)) { \ > __res = default_swab32(x); \ > } else { \ > -- > 1.6.4 > > -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html