From: | Michael Paquier <michael(at)paquier(dot)xyz> |
---|---|
To: | pgsql-committers(at)lists(dot)postgresql(dot)org |
Subject: | pgsql: Add overflow-safe math inline functions for unsigned integers |
Date: | 2019-09-02 00:50:03 |
Message-ID: | E1i4aXj-0008Cr-36@gemulon.postgresql.org |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-committers |
Add overflow-safe math inline functions for unsigned integers
Similarly to the signed versions added in 4d6ad31, 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
Branch
------
master
Details
-------
https://git.postgresql.org/pg/commitdiff/7dedfd22b79822b7f4210e6255b672ea82db6678
Modified Files
--------------
src/include/common/int.h | 242 +++++++++++++++++++++++++++++++++++++++--------
1 file changed, 203 insertions(+), 39 deletions(-)
From | Date | Subject | |
---|---|---|---|
Next Message | Michael Paquier | 2019-09-02 01:04:09 | Re: pgsql: Fix compiler warning |
Previous Message | Tom Lane | 2019-09-01 21:34:16 | Re: pgsql: Doc: remove some long-obsolete information from installation.sgm |