diff --git a/AK/Checked.h b/AK/Checked.h index 7026c49302..06fd95980f 100644 --- a/AK/Checked.h +++ b/AK/Checked.h @@ -328,26 +328,26 @@ public: template [[nodiscard]] static constexpr bool addition_would_overflow(U u, V v) { -#if defined(AK_COMPILER_CLANG) +#if __has_builtin(__builtin_add_overflow_p) + return __builtin_add_overflow_p(u, v, (T)0); +#else Checked checked; checked = u; checked += v; return checked.has_overflow(); -#else - return __builtin_add_overflow_p(u, v, (T)0); #endif } template [[nodiscard]] static constexpr bool multiplication_would_overflow(U u, V v) { -#if defined(AK_COMPILER_CLANG) +#if __has_builtin(__builtin_mul_overflow_p) + return __builtin_mul_overflow_p(u, v, (T)0); +#else Checked checked; checked = u; checked *= v; return checked.has_overflow(); -#else - return __builtin_mul_overflow_p(u, v, (T)0); #endif }