27 return __builtin_sadd_overflow(a, b, res);
28#elif defined(__GNUC__) && __GNUC__ > 4
29 return __builtin_sadd_overflow(a, b, res);
32 if (a > 0 && INT_MAX - a < b) {
35 if (a < 0 && INT_MIN - a > b) {
54 return __builtin_add_overflow(a, b, res);
55#elif defined(__GNUC__) && __GNUC__ > 4
56 return __builtin_add_overflow(a, b, res);
78 return __builtin_add_overflow(a, b, res);
79#elif defined(__GNUC__) && __GNUC__ > 4
80 return __builtin_add_overflow(a, b, res);
83 if (UINT64_MAX - a < b) {
101#if defined(__clang__)
102 return __builtin_mul_overflow(a, b, res);
103#elif defined(__GNUC__) && __GNUC__ > 4
104 return __builtin_mul_overflow(a, b, res);
107 if (a > 0 && UINT64_MAX / a < b) {
static bool size_overflow(size_t a, size_t b, size_t *res)
static bool sadd_overflow(int a, int b, int *res)
static bool u64mul_overflow(uint64_t a, uint64_t b, uint64_t *res)
static bool u64add_overflow(uint64_t a, uint64_t b, uint64_t *res)