diff --git a/osdep/compiler.h b/osdep/compiler.h index 07cdd147d7..555d3d141b 100644 --- a/osdep/compiler.h +++ b/osdep/compiler.h @@ -7,6 +7,7 @@ #define MP_EXPAND_ARGS(...) __VA_ARGS__ #if defined(__STDC_VERSION__) && __STDC_VERSION__ >= 202311L +#include #define MP_NORETURN [[noreturn]] #define MP_FALLTHROUGH [[fallthrough]] #define MP_WARN_UNUSED_RESULT [[nodiscard]] @@ -84,4 +85,10 @@ #define MP_SCANF_ATTRIBUTE(a1, a2) #endif +#if defined(__STDC_VERSION_STDCKDINT_H__) && __STDC_VERSION_STDCKDINT_H__ >= 202311L +#define MP_CKD_MUL(result, a, b) ckd_mul(result, a, b) +#elif __has_builtin(__builtin_mul_overflow) +#define MP_CKD_MUL(result, a, b) __builtin_mul_overflow(a, b, result) +#endif + #endif