aboutsummaryrefslogtreecommitdiffstats
path: root/src/data.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/data.c')
-rw-r--r--src/data.c7
1 files changed, 4 insertions, 3 deletions
diff --git a/src/data.c b/src/data.c
index 073fb0d4926..ce0e8e40f51 100644
--- a/src/data.c
+++ b/src/data.c
@@ -2494,8 +2494,9 @@ arith_driver (enum arithop code, size_t nargs, register Lisp_Object *args)
2494 case Amult: 2494 case Amult:
2495 if (INT_MULTIPLY_OVERFLOW (accum, next)) 2495 if (INT_MULTIPLY_OVERFLOW (accum, next))
2496 { 2496 {
2497 EMACS_UINT a = accum, b = next, ab = a * b;
2497 overflow = 1; 2498 overflow = 1;
2498 accum = (EMACS_UINT) accum * (EMACS_UINT) next & INTMASK; 2499 accum = ab & INTMASK;
2499 } 2500 }
2500 else 2501 else
2501 accum *= next; 2502 accum *= next;
@@ -2792,11 +2793,11 @@ In this case, zeros are shifted in on the left. */)
2792 if (XINT (count) >= BITS_PER_EMACS_INT) 2793 if (XINT (count) >= BITS_PER_EMACS_INT)
2793 XSETINT (val, 0); 2794 XSETINT (val, 0);
2794 else if (XINT (count) > 0) 2795 else if (XINT (count) > 0)
2795 XSETINT (val, (EMACS_UINT) XUINT (value) << XFASTINT (count)); 2796 XSETINT (val, XUINT (value) << XFASTINT (count));
2796 else if (XINT (count) <= -BITS_PER_EMACS_INT) 2797 else if (XINT (count) <= -BITS_PER_EMACS_INT)
2797 XSETINT (val, 0); 2798 XSETINT (val, 0);
2798 else 2799 else
2799 XSETINT (val, (EMACS_UINT) XUINT (value) >> -XINT (count)); 2800 XSETINT (val, XUINT (value) >> -XINT (count));
2800 return val; 2801 return val;
2801} 2802}
2802 2803