aboutsummaryrefslogtreecommitdiff
path: root/test/cases.zig
diff options
context:
space:
mode:
authorRobin Voetter <robin@voetter.nl>2021-08-27 05:04:13 +0200
committerRobin Voetter <robin@voetter.nl>2021-09-20 02:29:04 +0200
commit7686165c8265cebfb7a3d7d4fd4f00a46dc4743a (patch)
tree7a03f46aea52bdf1b1a3f701a95b88f0ae8b9598 /test/cases.zig
parent6336f08c2122faf712cb4b5096555e2617ce3936 (diff)
downloadzig-7686165c8265cebfb7a3d7d4fd4f00a46dc4743a.tar.gz
zig-7686165c8265cebfb7a3d7d4fd4f00a46dc4743a.zip
Address Spaces: Pointer coercion errors tests
Diffstat (limited to 'test/cases.zig')
-rw-r--r--test/cases.zig43
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",
+ });
+ }
}