stage2: implement more C pointer Sema and comptime ptr arith
This commit is contained in:
@@ -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();
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user