When trying to compile this code: if (INT_ADD_OVERFLOW ((ptrdiff_t) (bool_header_size - header_size), total_payload_bytes)) memory_full (SIZE_MAX); gcc produces this warning: alloc.c:2051: warning: assuming signed overflow does not occur when assuming that (X + c) >= X is always true [-Wstrict-overflow] Is INT_ADD_OVERFLOW actually safe?