diff options
author | Fredrik Gustafsson <[email protected]> | 2013-10-11 09:41:29 +0200 |
---|---|---|
committer | Fredrik Gustafsson <[email protected]> | 2013-10-11 09:41:29 +0200 |
commit | 8a5f2c73d9664c5a170827cea10214019490e923 (patch) | |
tree | acf6aba4445bdde0246d42a98254919d8a8e8640 /erts/emulator/beam | |
parent | 5b7844edf78d8225ba73aaa0551b94b8b91e58f7 (diff) | |
parent | 54aecc2a73a1398d141c7f8e9a96c24a5a5731cf (diff) | |
download | otp-8a5f2c73d9664c5a170827cea10214019490e923.tar.gz otp-8a5f2c73d9664c5a170827cea10214019490e923.tar.bz2 otp-8a5f2c73d9664c5a170827cea10214019490e923.zip |
Merge branch 'larshesel/fix-bsr-bug/OTP-11381' into maint
* larshesel/fix-bsr-bug/OTP-11381:
Fix bsr bug
Add bsr test data showing bug when shifting large numbers
Diffstat (limited to 'erts/emulator/beam')
-rw-r--r-- | erts/emulator/beam/big.c | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/erts/emulator/beam/big.c b/erts/emulator/beam/big.c index 6b43c53985..2b27b111d8 100644 --- a/erts/emulator/beam/big.c +++ b/erts/emulator/beam/big.c @@ -1325,9 +1325,9 @@ static dsize_t I_lshift(ErtsDigit* x, dsize_t xl, Sint y, return 1; } else { - SWord ay = (y < 0) ? -y : y; - int bw = ay / D_EXP; - int sw = ay % D_EXP; + Uint ay = (y < 0) ? -y : y; + Uint bw = ay / D_EXP; + Uint sw = ay % D_EXP; dsize_t rl; ErtsDigit a1=0; ErtsDigit a0=0; @@ -1368,7 +1368,7 @@ static dsize_t I_lshift(ErtsDigit* x, dsize_t xl, Sint y, } if (sign) { - int zl = bw; + Uint zl = bw; ErtsDigit* z = x; while(zl--) { |