From 7686165c8265cebfb7a3d7d4fd4f00a46dc4743a Mon Sep 17 00:00:00 2001 From: Robin Voetter Date: Fri, 27 Aug 2021 05:04:13 +0200 Subject: Address Spaces: Pointer coercion errors tests --- test/cases.zig | 43 +++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 41 insertions(+), 2 deletions(-) (limited to 'test') diff --git a/test/cases.zig b/test/cases.zig index 33fa5b19e2..1a92f20262 100644 --- a/test/cases.zig +++ b/test/cases.zig @@ -861,7 +861,7 @@ pub fn addCases(ctx: *TestContext) !void { "Hello, World!\n", ); try case.files.append(.{ - .src = + .src = \\pub fn print() void { \\ asm volatile ("syscall" \\ : @@ -924,7 +924,7 @@ pub fn addCases(ctx: *TestContext) !void { }, ); try case.files.append(.{ - .src = + .src = \\// dummy comment to make print be on line 2 \\fn print() void { \\ asm volatile ("syscall" @@ -1819,4 +1819,43 @@ pub fn addCases(ctx: *TestContext) !void { ":2:28: error: cannot set address space of local variable 'foo'", }); } + + { + var case = ctx.exe("address space pointer coercions", linux_x64); + case.addError( + \\fn entry(a: *addrspace(.gs) i32) *i32 { + \\ return a; + \\} + \\pub fn main() void { _ = entry; } + , &[_][]const u8{ + ":2:12: error: expected *i32, found *addrspace(.gs) i32", + }); + + case.addError( + \\fn entry(a: *addrspace(.gs) i32) *addrspace(.fs) i32 { + \\ return a; + \\} + \\pub fn main() void { _ = entry; } + , &[_][]const u8{ + ":2:12: error: expected *addrspace(.fs) i32, found *addrspace(.gs) i32", + }); + + case.addError( + \\fn entry(a: ?*addrspace(.gs) i32) *i32 { + \\ return a.?; + \\} + \\pub fn main() void { _ = entry; } + , &[_][]const u8{ + ":2:13: error: expected *i32, found *addrspace(.gs) i32", + }); + + case.addError( + \\fn entry(a: *addrspace(.gs) i32) *i32 { + \\ return &a.*; + \\} + \\pub fn main() void { _ = entry; } + , &[_][]const u8{ + ":2:12: error: expected *i32, found *addrspace(.gs) i32", + }); + } } -- cgit v1.2.3