• R
    Fix some printf format warnings · 5322ef20
    Ramsay Jones 提交于
    commit 51ea5519 ("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 6e1c2344
    ("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 (6e1c2344) 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: NRamsay Jones <ramsay@ramsay1.demon.co.uk>
    Acked-by: NNicolas Pitre <nico@fluxnic.net>
    Signed-off-by: NJeff King <peff@peff.net>
    5322ef20
bswap.h 867 字节