diff options
author | Erlang/OTP <[email protected]> | 2019-01-08 14:39:41 +0100 |
---|---|---|
committer | Erlang/OTP <[email protected]> | 2019-01-08 14:39:41 +0100 |
commit | 75196853fcda05f4d76f852a7b9b976c4e31b655 (patch) | |
tree | 8a05431b7f70a1d47132aafac7fa5ad2664c6a19 /erts/emulator/beam/big.c | |
parent | ffc6c26914813a95fe0652c51b57c3c00a9f4ad7 (diff) | |
parent | c8d3bff46adbff3205eaf76de8a634557cbd4af4 (diff) | |
download | otp-75196853fcda05f4d76f852a7b9b976c4e31b655.tar.gz otp-75196853fcda05f4d76f852a7b9b976c4e31b655.tar.bz2 otp-75196853fcda05f4d76f852a7b9b976c4e31b655.zip |
Merge branch 'sverker/big-band-bug/ERL-804/OTP-15487' into maint-19
* sverker/big-band-bug/ERL-804/OTP-15487:
erts: Fix bug in 'band' of two negative numbers, one big
Diffstat (limited to 'erts/emulator/beam/big.c')
-rw-r--r-- | erts/emulator/beam/big.c | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/erts/emulator/beam/big.c b/erts/emulator/beam/big.c index 27064a4fd6..3f33dfd467 100644 --- a/erts/emulator/beam/big.c +++ b/erts/emulator/beam/big.c @@ -1159,8 +1159,11 @@ static dsize_t I_band(ErtsDigit* x, dsize_t xl, short xsgn, *r++ = ~c1 & ~c2; x++; y++; } - while(xl--) - *r++ = ~*x++; + while(xl--) { + DSUBb(*x,0,b1,c1); + *r++ = ~c1; + x++; + } } } return I_btrail(r0, r, sign); |