ref: 6c42012d3d227941cfec46b77768b2d3e5891dea
dir: /overflows.h/
#define addof_int64(c,a,b) ( \ (b < 1)? \ ((INT64_MIN-(b) <= (a))?((c=(a)+(b))?0:1):1): \ ((INT64_MAX-(b) >= (a))?((c=(a)+(b))?0:1):1) \ ) #define subof_int64(c,a,b) ( \ (b < 1)? \ ((INT64_MAX+(b) >= (a))?((c=(a)-(b))?0:1):1): \ ((INT64_MIN+(b) <= (a))?((c=(a)-(b))?0:1):1) \ ) #define addof_uint64(c,a,b) ( \ (b < 1)? \ ((-(b) <= (a))?((c=(a)+(b))?0:1):1): \ ((UINT64_MAX-(b) >= (a))?((c=(a)+(b))?0:1):1) \ ) #define subof_uint64(c,a,b) ( \ (b < 1)? \ ((UINT64_MAX+(b) >= (a))?((c=(a)-(b))?0:1):1): \ (((b) <= (a))?((c=(a)-(b))?0:1):1) \ ) #define mulof(c,a,b) ( \ (((a) != 0) && ((c=(a)*(b))/(a) != (b)))?1:0 \ )