49 #if defined(HAVE__BUILTIN_OP_OVERFLOW)
50 return __builtin_add_overflow(
a,
b, result);
67 #if defined(HAVE__BUILTIN_OP_OVERFLOW)
68 return __builtin_sub_overflow(
a,
b, result);
85 #if defined(HAVE__BUILTIN_OP_OVERFLOW)
86 return __builtin_mul_overflow(
a,
b, result);
106 #if defined(HAVE__BUILTIN_OP_OVERFLOW)
107 return __builtin_add_overflow(
a,
b, result);
109 int64
res = (int64)
a + (int64)
b;
124 #if defined(HAVE__BUILTIN_OP_OVERFLOW)
125 return __builtin_sub_overflow(
a,
b, result);
127 int64
res = (int64)
a - (int64)
b;
142 #if defined(HAVE__BUILTIN_OP_OVERFLOW)
143 return __builtin_mul_overflow(
a,
b, result);
145 int64
res = (int64)
a * (int64)
b;
163 #if defined(HAVE__BUILTIN_OP_OVERFLOW)
164 return __builtin_add_overflow(
a,
b, result);
165 #elif defined(HAVE_INT128)
166 int128
res = (int128)
a + (int128)
b;
173 *result = (int64)
res;
190 #if defined(HAVE__BUILTIN_OP_OVERFLOW)
191 return __builtin_sub_overflow(
a,
b, result);
192 #elif defined(HAVE_INT128)
193 int128
res = (int128)
a - (int128)
b;
200 *result = (int64)
res;
221 #if defined(HAVE__BUILTIN_OP_OVERFLOW)
222 return __builtin_mul_overflow(
a,
b, result);
223 #elif defined(HAVE_INT128)
224 int128
res = (int128)
a * (int128)
b;
231 *result = (int64)
res;
247 a != 0 &&
a != 1 &&
b != 0 &&
b != 1 &&
272 #if defined(HAVE__BUILTIN_OP_OVERFLOW)
273 return __builtin_add_overflow(
a,
b, result);
290 #if defined(HAVE__BUILTIN_OP_OVERFLOW)
291 return __builtin_sub_overflow(
a,
b, result);
306 #if defined(HAVE__BUILTIN_OP_OVERFLOW)
307 return __builtin_mul_overflow(
a,
b, result);
327 #if defined(HAVE__BUILTIN_OP_OVERFLOW)
328 return __builtin_add_overflow(
a,
b, result);
345 #if defined(HAVE__BUILTIN_OP_OVERFLOW)
346 return __builtin_sub_overflow(
a,
b, result);
361 #if defined(HAVE__BUILTIN_OP_OVERFLOW)
362 return __builtin_mul_overflow(
a,
b, result);
364 uint64
res = (uint64)
a * (uint64)
b;
382 #if defined(HAVE__BUILTIN_OP_OVERFLOW)
383 return __builtin_add_overflow(
a,
b, result);
400 #if defined(HAVE__BUILTIN_OP_OVERFLOW)
401 return __builtin_sub_overflow(
a,
b, result);
416 #if defined(HAVE__BUILTIN_OP_OVERFLOW)
417 return __builtin_mul_overflow(
a,
b, result);
418 #elif defined(HAVE_INT128)
419 uint128
res = (uint128)
a * (uint128)
b;
426 *result = (uint64)
res;
431 if (
a != 0 &&
b !=
res /
a)
485 return (
a >
b) - (
a <
b);
491 return (
a >
b) - (
a <
b);
497 return (
a >
b) - (
a <
b);
503 return (
a >
b) - (
a <
b);
509 return (
a >
b) - (
a <
b);
static void PGresult * res
static bool pg_mul_s64_overflow(int64 a, int64 b, int64 *result)
static int pg_cmp_s16(int16 a, int16 b)
static bool pg_sub_u32_overflow(uint32 a, uint32 b, uint32 *result)
static int pg_cmp_u32(uint32 a, uint32 b)
static bool pg_add_u32_overflow(uint32 a, uint32 b, uint32 *result)
static bool pg_sub_s64_overflow(int64 a, int64 b, int64 *result)
static bool pg_add_u64_overflow(uint64 a, uint64 b, uint64 *result)
static int pg_cmp_u16(uint16 a, uint16 b)
static bool pg_sub_s16_overflow(int16 a, int16 b, int16 *result)
static bool pg_mul_s32_overflow(int32 a, int32 b, int32 *result)
static bool pg_mul_u16_overflow(uint16 a, uint16 b, uint16 *result)
static bool pg_mul_u32_overflow(uint32 a, uint32 b, uint32 *result)
static bool pg_mul_s16_overflow(int16 a, int16 b, int16 *result)
static int pg_cmp_s64(int64 a, int64 b)
static bool pg_mul_u64_overflow(uint64 a, uint64 b, uint64 *result)
static bool pg_sub_u16_overflow(uint16 a, uint16 b, uint16 *result)
static bool pg_add_u16_overflow(uint16 a, uint16 b, uint16 *result)
static bool pg_add_s16_overflow(int16 a, int16 b, int16 *result)
static int pg_cmp_s32(int32 a, int32 b)
static int pg_cmp_u64(uint64 a, uint64 b)
static int pg_cmp_size(size_t a, size_t b)
static bool pg_sub_s32_overflow(int32 a, int32 b, int32 *result)
static bool pg_add_s64_overflow(int64 a, int64 b, int64 *result)
static bool pg_sub_u64_overflow(uint64 a, uint64 b, uint64 *result)
static bool pg_add_s32_overflow(int32 a, int32 b, int32 *result)