Work around a compiler bug on OS X.
diff --git a/ChangeLog b/ChangeLog
index caf1309..aef4d6a 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -4,6 +4,8 @@
Changes
* Introduced POLARSSL_HAVE_READDIR_R for systems without it
* Improvements to the CMake build system, contributed by Julian Ospald.
+ * Work around a bug of the version of Clang shipped by Apple with Mavericks
+ that prevented bignum.c from compiling. (Reported by Rafael Baptista.)
Security
* Forbid change of server certificate during renegotiation to prevent
diff --git a/library/bignum.c b/library/bignum.c
index 5460290..0d13cd8 100644
--- a/library/bignum.c
+++ b/library/bignum.c
@@ -1114,7 +1114,14 @@
Z.p[i - t - 1] = ~0;
else
{
-#if defined(POLARSSL_HAVE_UDBL)
+ /*
+ * The version of Clang shipped by Apple with Mavericks can't
+ * handle 128-bit division properly. Disable 128-bits division
+ * for Clang on Apple for now, while waiting for more input on the
+ * exact version(s) affected and their identification macros.
+ */
+#if defined(POLARSSL_HAVE_UDBL) && \
+ ! ( defined(__x86_64__) && defined(__clang__) && defined(__APPLE__) )
t_udbl r;
r = (t_udbl) X.p[i] << biL;