diff options
| author | Jakub Konka <kubkon@jakubkonka.com> | 2022-03-01 15:37:31 +0100 |
|---|---|---|
| committer | Jakub Konka <kubkon@jakubkonka.com> | 2022-03-01 17:59:39 +0100 |
| commit | 52205a3c162d5adaf98be1dbf96bf86afd658182 (patch) | |
| tree | 3b0113e2e22cd1911100b71c21403588f4eaa451 | |
| parent | ad03fef71222ad4335107257451c1828fb9adc88 (diff) | |
| download | zig-52205a3c162d5adaf98be1dbf96bf86afd658182.tar.gz zig-52205a3c162d5adaf98be1dbf96bf86afd658182.zip | |
x64: fix array to slice impl
| -rw-r--r-- | src/arch/x86_64/CodeGen.zig | 2 | ||||
| -rw-r--r-- | test/behavior/cast.zig | 2 |
2 files changed, 1 insertions, 3 deletions
diff --git a/src/arch/x86_64/CodeGen.zig b/src/arch/x86_64/CodeGen.zig index 23d99c72bd..c1d1c6863e 100644 --- a/src/arch/x86_64/CodeGen.zig +++ b/src/arch/x86_64/CodeGen.zig @@ -5268,7 +5268,7 @@ fn airArrayToSlice(self: *Self, inst: Air.Inst.Index) !void { const ptr_ty = self.air.typeOf(ty_op.operand); const ptr = try self.resolveInst(ty_op.operand); const array_ty = ptr_ty.childType(); - const array_len = array_ty.arrayLenIncludingSentinel(); + const array_len = array_ty.arrayLen(); const result: MCValue = if (self.liveness.isUnused(inst)) .dead else blk: { const stack_offset = @intCast(i32, try self.allocMem(inst, 16, 16)); try self.genSetStack(ptr_ty, stack_offset, ptr, .{}); diff --git a/test/behavior/cast.zig b/test/behavior/cast.zig index c49e4bd44f..d6e8368e8e 100644 --- a/test/behavior/cast.zig +++ b/test/behavior/cast.zig @@ -497,7 +497,6 @@ test "single-item pointer of array to slice to unknown length pointer" { if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; if (builtin.zig_backend == .stage2_c) return error.SkipZigTest; // TODO if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO - if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO try testCastPtrOfArrayToSliceAndPtr(); comptime try testCastPtrOfArrayToSliceAndPtr(); @@ -821,7 +820,6 @@ test "peer cast [:x]T to []T" { if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; if (builtin.zig_backend == .stage2_c) return error.SkipZigTest; // TODO if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO - if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO const S = struct { fn doTheTest() !void { |
