pgsql: Provide overflow safe integer math inline functions.

Andres Freund <andres@anarazel.de>

From: Andres Freund <andres@anarazel.de>
To: pgsql-committers@postgresql.org
Date: 2017-12-13T01:01:19Z
Lists: pgsql-hackers
Provide overflow safe integer math inline functions.

It's not easy to get signed integer overflow checks correct and
fast. Therefore abstract the necessary infrastructure into a common
header providing addition, subtraction and multiplication for 16, 32,
64 bit signed integers.

The new macros aren't yet used, but a followup commit will convert
several open coded overflow checks.

Author: Andres Freund, with some code stolen from Greg Stark
Reviewed-By: Robert Haas
Discussion: https://postgr.es/m/20171024103954.ztmatprlglz3rwke@alap3.anarazel.de

Branch
------
master

Details
-------
https://git.postgresql.org/pg/commitdiff/4d6ad31257adaf8a51e1c4377d96afa656d9165f

Modified Files
--------------
config/c-compiler.m4          |  22 ++++
configure                     |  33 ++++++
configure.in                  |   4 +
src/include/common/int.h      | 239 ++++++++++++++++++++++++++++++++++++++++++
src/include/pg_config.h.in    |   3 +
src/include/pg_config.h.win32 |   3 +
6 files changed, 304 insertions(+)

Commits

  1. Try harder to detect unavailability of __builtin_mul_overflow(int64).

  2. Try to detect runtime unavailability of __builtin_mul_overflow(int64).

  3. Fix a number of copy & paste comment errors in common/int.h.

  4. Provide overflow safe integer math inline functions.