From 3331aecdf89c0b275fb8234414c6a8281114ae33 Mon Sep 17 00:00:00 2001 From: Michael Stahl Date: Mon, 11 Dec 2017 16:51:07 +0100 Subject: o3tl: 32-bit clang 4.0.1 fails with undefined reference to `__mulodi4' ... so prevent it from using __builtin_mul_overflow(). Change-Id: Id716f88abb0385701b6df42353b663479abfd496 --- include/o3tl/safeint.hxx | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'include') diff --git a/include/o3tl/safeint.hxx b/include/o3tl/safeint.hxx index 56175edb3bbe..67af99cf810c 100644 --- a/include/o3tl/safeint.hxx +++ b/include/o3tl/safeint.hxx @@ -82,7 +82,8 @@ template inline bool checked_sub(T a, T b, T& result) return !msl::utilities::SafeSubtract(a, b, result); } -#elif (defined __GNUC__ && __GNUC__ >= 5) || (__has_builtin(__builtin_mul_overflow) && !(defined ANDROID && defined __clang__)) +#elif (defined __GNUC__ && __GNUC__ >= 5) || (__has_builtin(__builtin_mul_overflow) && !(defined ANDROID && defined __clang__) && !(defined(__clang__) && defined(__i386__) && __clang_major__ == 4)) +// 32-bit clang 4.0.1 fails with undefined reference to `__mulodi4' template inline bool checked_multiply(T a, T b, T& result) { -- cgit