From ba4aa12098a0a9def52582cecd5b0b664ded14d8 Mon Sep 17 00:00:00 2001 From: Veikka Tuominen Date: Mon, 3 Oct 2022 14:12:08 +0300 Subject: Sema: use correct value when `@ptrCast` operand is comptime known Closes #13034 --- test/behavior/pointers.zig | 11 +++++++++++ 1 file changed, 11 insertions(+) (limited to 'test/behavior/pointers.zig') diff --git a/test/behavior/pointers.zig b/test/behavior/pointers.zig index 91d398e84d..b0fb0f3a42 100644 --- a/test/behavior/pointers.zig +++ b/test/behavior/pointers.zig @@ -483,3 +483,14 @@ test "pointer to constant decl preserves alignment" { const alignment = @typeInfo(@TypeOf(&S.aligned)).Pointer.alignment; try std.testing.expect(alignment == 8); } + +test "ptrCast comptime known slice to C pointer" { + if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO + if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO + if (builtin.zig_backend == .stage2_c) return error.SkipZigTest; // TODO + if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO + + const s: [:0]const u8 = "foo"; + var p = @ptrCast([*c]const u8, s); + try std.testing.expectEqualStrings(s, std.mem.sliceTo(p, 0)); +} -- cgit v1.2.3