25#if defined(__clang__) && \
26 (__clang_major__ > 3 || \
27 (__clang_major__ == 3 && __clang_minor__ > 7))
28 return __builtin_sadd_overflow(a, b, res);
29#elif defined(__GNUC__) && __GNUC__ > 4
30 return __builtin_sadd_overflow(a, b, res);
33 if (a > 0 && INT_MAX - a < b) {
36 if (a < 0 && INT_MIN - a > b) {