• Michael Paquier's avatar
    Add overflow-safe math inline functions for unsigned integers · 7dedfd22
    Michael Paquier authored
    Similarly to the signed versions added in 4d6ad312, this adds a set of
    inline functions for overflow checks with unsigned integers, including
    uint16, uint32 and uint64.  This relies on compiler built-in overflow
    checks by default if available.  The behavior of unsigned integers is
    well-defined so the fallback implementations checks are simple for
    additions and subtractions.  Multiplications avoid division-based checks
    which are expensive if possible, still this can happen for uint64 if
    128-bit integers are not available.
    
    While on it, the code in common/int.h is reorganized to avoid too many
    duplicated comments.  The new macros will be used in a follow-up patch.
    
    All thanks to Andres Freund for the input provided.
    
    Author: Fabien Coelho, Michael Paquier
    Discussion: https://postgr.es/m/20190830073423.GB2354@paquier.xyz
    7dedfd22
int.h 9.55 KB