diff options
| author | Robin Voetter <robin@voetter.nl> | 2021-10-01 20:50:44 +0200 |
|---|---|---|
| committer | Robin Voetter <robin@voetter.nl> | 2021-10-04 11:25:29 +0200 |
| commit | 96f095987f2f3a4d1be941b89afae0a706aad856 (patch) | |
| tree | 6d0a570de9de208fe720d578529382163f2bafcc | |
| parent | 692827baa79590c20f09ae598b2c27663f72a207 (diff) | |
| download | zig-96f095987f2f3a4d1be941b89afae0a706aad856.tar.gz zig-96f095987f2f3a4d1be941b89afae0a706aad856.zip | |
Adapt Type.minInt and maxInt to use setTwosCompLimit
| -rw-r--r-- | src/type.zig | 14 |
1 files changed, 4 insertions, 10 deletions
diff --git a/src/type.zig b/src/type.zig index 6d27eeaadb..fdaa445041 100644 --- a/src/type.zig +++ b/src/type.zig @@ -3101,9 +3101,8 @@ pub const Type = extern union { return Value.Tag.int_i64.create(arena, n); } - var res = try std.math.big.int.Managed.initSet(arena, 1); - try res.shiftLeft(res, info.bits - 1); - res.negate(); + var res = try std.math.big.int.Managed.init(arena); + try res.setTwosCompIntLimit(.min, info.signedness, info.bits); const res_const = res.toConst(); if (res_const.positive) { @@ -3126,13 +3125,8 @@ pub const Type = extern union { return Value.Tag.int_u64.create(arena, n); } - var res = try std.math.big.int.Managed.initSet(arena, 1); - try res.shiftLeft(res, info.bits - @boolToInt(info.signedness == .signed)); - const one = std.math.big.int.Const{ - .limbs = &[_]std.math.big.Limb{1}, - .positive = true, - }; - res.sub(res.toConst(), one) catch unreachable; + var res = try std.math.big.int.Managed.init(arena); + try res.setTwosCompIntLimit(.max, info.signedness, info.bits); const res_const = res.toConst(); if (res_const.positive) { |
