authorgravatar for twostepted@gmail.comTravis Staloch <twostepted@gmail.com> 2021-09-09 14:17:59-07:00
committergravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2021-09-28 17:03:43-07:00
log487059535242e2b94303502806feaa99d560c63b
treed0940ca8756bb848b30dcd8a6c59566ff3a44921
parent1d86eae5269edcac5f32d166f13ed27483f07688

sat-arithmetic: add additional tokenizer tests


2 files changed, 13 insertions(+), 0 deletions(-)

lib/std/zig/tokenizer.zig+12
......@@ -2019,6 +2019,18 @@ test "tokenizer - saturating" {
20192019 try testTokenize("<<", &.{.angle_bracket_angle_bracket_left});
20202020 try testTokenize("<<|", &.{.angle_bracket_angle_bracket_left_pipe});
20212021 try testTokenize("<<|=", &.{.angle_bracket_angle_bracket_left_pipe_equal});
2022
2023 try testTokenize("*", &.{.asterisk});
2024 try testTokenize("*|", &.{.asterisk_pipe});
2025 try testTokenize("*|=", &.{.asterisk_pipe_equal});
2026
2027 try testTokenize("+", &.{.plus});
2028 try testTokenize("+|", &.{.plus_pipe});
2029 try testTokenize("+|=", &.{.plus_pipe_equal});
2030
2031 try testTokenize("-", &.{.minus});
2032 try testTokenize("-|", &.{.minus_pipe});
2033 try testTokenize("-|=", &.{.minus_pipe_equal});
20222034}
20232035
20242036fn testTokenize(source: [:0]const u8, expected_tokens: []const Token.Tag) !void {
src/codegen/c.zig+1
......@@ -1347,6 +1347,7 @@ fn airSatOp(
13471347 .c_longlong => "LLONG_MIN",
13481348 .isize => "INTPTR_MIN",
13491349 else => blk: {
1350 // compute the type minimum based on the bitcount (bits)
13501351 const val = -1 * std.math.pow(i65, 2, @intCast(i65, bits - 1));
13511352 break :blk std.fmt.bufPrint(&min_buf, "{d}", .{val}) catch |err| switch (err) {
13521353 error.NoSpaceLeft => unreachable,