From 22b4c9e1a9595bd94ada4c500a430e2668ffcd07 Mon Sep 17 00:00:00 2001 From: Andrew Kelley Date: Sat, 23 Oct 2021 19:46:48 -0700 Subject: stage2: implement more C pointer Sema and comptime ptr arith --- test/behavior/pointers.zig | 35 +++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) (limited to 'test/behavior/pointers.zig') diff --git a/test/behavior/pointers.zig b/test/behavior/pointers.zig index 47d21b8155..69f9e2af2a 100644 --- a/test/behavior/pointers.zig +++ b/test/behavior/pointers.zig @@ -58,3 +58,38 @@ test "initialize const optional C pointer to null" { try expect(a == null); comptime try expect(a == null); } + +test "assigning integer to C pointer" { + var x: i32 = 0; + var ptr: [*c]u8 = 0; + var ptr2: [*c]u8 = x; + if (false) { + ptr; + ptr2; + } +} + +test "C pointer comparison and arithmetic" { + const S = struct { + fn doTheTest() !void { + var ptr1: [*c]u32 = 0; + var ptr2 = ptr1 + 10; + try expect(ptr1 == 0); + try expect(ptr1 >= 0); + try expect(ptr1 <= 0); + // expect(ptr1 < 1); + // expect(ptr1 < one); + // expect(1 > ptr1); + // expect(one > ptr1); + try expect(ptr1 < ptr2); + try expect(ptr2 > ptr1); + try expect(ptr2 >= 40); + try expect(ptr2 == 40); + try expect(ptr2 <= 40); + ptr2 -= 10; + try expect(ptr1 == ptr2); + } + }; + try S.doTheTest(); + comptime try S.doTheTest(); +} -- cgit v1.2.3