diff options
| author | Robin Voetter <robin@voetter.nl> | 2021-08-27 05:04:13 +0200 |
|---|---|---|
| committer | Robin Voetter <robin@voetter.nl> | 2021-09-20 02:29:04 +0200 |
| commit | 7686165c8265cebfb7a3d7d4fd4f00a46dc4743a (patch) | |
| tree | 7a03f46aea52bdf1b1a3f701a95b88f0ae8b9598 /test/cases.zig | |
| parent | 6336f08c2122faf712cb4b5096555e2617ce3936 (diff) | |
| download | zig-7686165c8265cebfb7a3d7d4fd4f00a46dc4743a.tar.gz zig-7686165c8265cebfb7a3d7d4fd4f00a46dc4743a.zip | |
Address Spaces: Pointer coercion errors tests
Diffstat (limited to 'test/cases.zig')
| -rw-r--r-- | test/cases.zig | 43 |
1 files changed, 41 insertions, 2 deletions
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", + }); + } } |
