diff -r 591473851c95 -r 3d80d425543b src/ucx/ucx.h --- a/src/ucx/ucx.h Tue Jan 02 17:00:21 2018 +0100 +++ b/src/ucx/ucx.h Sun Jan 21 10:13:21 2018 +0100 @@ -131,6 +131,15 @@ */ typedef size_t(*read_func)(void*, size_t, size_t, void*); + + +#if defined(__GNUC__) || defined(__clang__) +#define UCX_MUL_BUILTIN +#define ucx_szmul(a, b, result) __builtin_umull_overflow(a, b, result) +#else +int ucx_szmul(size_t a, size_t b, size_t *result); +#endif + #ifdef __cplusplus } #endif