diff options
| author | Andrew Kelley <andrew@ziglang.org> | 2021-10-16 15:06:13 -0400 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2021-10-16 15:06:13 -0400 |
| commit | 82ec56e47e004176cc380cc69764602c4a8d0768 (patch) | |
| tree | 311a130761e959a49953d57bbef4d0eff40b025b /src/Sema.zig | |
| parent | 6f30c8c098fcbf52f4a78e662c89508997945e8a (diff) | |
| parent | 1e09157b53441d06cd1f49b9c3917a58ee244cb1 (diff) | |
| download | zig-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.zig | 10 |
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| { |
