aboutsummaryrefslogtreecommitdiff
path: root/src/Sema.zig
diff options
context:
space:
mode:
authorAndrew Kelley <andrew@ziglang.org>2021-10-16 15:06:13 -0400
committerGitHub <noreply@github.com>2021-10-16 15:06:13 -0400
commit82ec56e47e004176cc380cc69764602c4a8d0768 (patch)
tree311a130761e959a49953d57bbef4d0eff40b025b /src/Sema.zig
parent6f30c8c098fcbf52f4a78e662c89508997945e8a (diff)
parent1e09157b53441d06cd1f49b9c3917a58ee244cb1 (diff)
downloadzig-82ec56e47e004176cc380cc69764602c4a8d0768.tar.gz
zig-82ec56e47e004176cc380cc69764602c4a8d0768.zip
Merge pull request #9954 from Snektron/shifts
Big int saturating left shift
Diffstat (limited to 'src/Sema.zig')
-rw-r--r--src/Sema.zig10
1 files changed, 5 insertions, 5 deletions
diff --git a/src/Sema.zig b/src/Sema.zig
index 2ab2b76c18..4c3f20f28b 100644
--- a/src/Sema.zig
+++ b/src/Sema.zig
@@ -6502,13 +6502,13 @@ fn zirShl(
if (rhs_val.compareWithZero(.eq)) {
return sema.addConstant(lhs_ty, lhs_val);
}
- const val = try lhs_val.shl(rhs_val, sema.arena);
- switch (air_tag) {
+ const val = switch (air_tag) {
.shl_exact => return sema.fail(block, lhs_src, "TODO implement Sema for comptime shl_exact", .{}),
- .shl_sat => return sema.fail(block, lhs_src, "TODO implement Sema for comptime shl_sat", .{}),
- .shl => {},
+ .shl_sat => try lhs_val.shlSat(rhs_val, lhs_ty, sema.arena, sema.mod.getTarget()),
+ .shl => try lhs_val.shl(rhs_val, sema.arena),
else => unreachable,
- }
+ };
+
return sema.addConstant(lhs_ty, val);
} else rs: {
if (maybe_rhs_val) |rhs_val| {