Re: pgsql: Provide overflow safe integer math inline functions.
Andres Freund <andres@anarazel.de>
From: Andres Freund <andres@anarazel.de>
To: pgsql-committers@postgresql.org, Michael Paquier <michael.paquier@gmail.com>
Date: 2017-12-13T21:37:54Z
Lists: pgsql-hackers
Hi Michael, On 2017-12-13 01:01:19 +0000, Andres Freund wrote: > Provide overflow safe integer math inline functions. https://buildfarm.postgresql.org/cgi-bin/show_log.pl?nm=dangomushi&dt=2017-12-13%2018%3A00%3A18 which seems half like a compiler bug to me. But either way, we gotta work around it. I suspect the reason configure test doesn't sufficiently detect this here is because it's testing the function with constant arguments. Could you perhaps test whether replacing PGAC_C_BUILTIN_OP_OVERFLOW's body with something like result PG_INT64_TYPE a; PG_INT64_TYPE b; PG_INT64_TYPE result; __builtin_mul_overflow(*(volatile PG_INT64_TYPE*) &a, *(volatile PG_INT64_TYPE*) &b, &result); makes it fail? I'd rather not test this via the buildfarm, given that dangomushi isn't the most frequently running / fastest animal. - Andres
Commits
-
Try harder to detect unavailability of __builtin_mul_overflow(int64).
- c6d21d56f1a9 11.0 landed
-
Try to detect runtime unavailability of __builtin_mul_overflow(int64).
- c04d35f442a8 11.0 landed
-
Fix a number of copy & paste comment errors in common/int.h.
- 11b8f076c02b 11.0 landed
-
Provide overflow safe integer math inline functions.
- 4d6ad31257ad 11.0 cited