Damien George 2c139bbf4e py/mpz: Fix bugs with bitwise of -0 by ensuring all 0's are positive.
This commit makes sure that the value zero is always encoded in an mpz_t as
neg=0 and len=0 (previously it was just len=0).

This invariant is needed for some of the bitwise operations that operate on
negative numbers, because they cannot handle -0.  For example
(-((1<<100)-(1<<100)))|1 was being computed as -65535, instead of 1.

Fixes issue #8042.

Signed-off-by: Damien George <damien@micropython.org>
2021-12-21 18:00:05 +11:00
..
2014-03-31 18:02:22 +01:00
2020-09-04 00:10:24 +10:00
2020-09-04 00:10:24 +10:00
2017-05-29 11:36:05 +03:00
2014-02-10 07:13:32 +02:00
2014-04-13 17:46:30 +01:00