aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/ext/mulodi/mulodi4.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/src/ext/mulodi/mulodi4.c b/src/ext/mulodi/mulodi4.c
index bfa5e01295..9891bbf1af 100644
--- a/src/ext/mulodi/mulodi4.c
+++ b/src/ext/mulodi/mulodi4.c
@@ -17,6 +17,7 @@
#else
#define COMPILER_RT_ABI
#define di_int int64_t
+#define di_uint uint64_t
#include "torint.h"
di_int __mulodi4(di_int a, di_int b, int* overflow);
@@ -30,9 +31,9 @@ COMPILER_RT_ABI di_int
__mulodi4(di_int a, di_int b, int* overflow)
{
const int N = (int)(sizeof(di_int) * CHAR_BIT);
- const di_int MIN = (di_int)1 << (N-1);
+ const di_int MIN = (di_int) ((di_uint)1 << (N-1));
const di_int MAX = ~MIN;
- *overflow = 0;
+ *overflow = 0;
di_int result = a * b;
if (a == MIN)
{