Address Spaces: Move stage 2 tests to stage2/llvm.zig

This commit is contained in:
Robin Voetter 2021-09-01 17:03:41 +02:00
parent 8f28c58759
commit 2f43749c2b
2 changed files with 60 additions and 60 deletions

View file

@ -1819,64 +1819,4 @@ 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.compiles(
\\fn entry(a: *addrspace(.gs) i32) *addrspace(.gs) i32 {
\\ return a;
\\}
\\pub fn main() void { _ = entry; }
);
case.compiles(
\\fn entry(a: *addrspace(.generic) i32) *i32 {
\\ return a;
\\}
\\pub fn main() void { _ = entry; }
);
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",
});
case.compiles(
\\fn entry(a: *addrspace(.gs) i32) *addrspace(.gs) i32 {
\\ return &a.*;
\\}
\\pub fn main() void { _ = entry; }
);
}
}

View file

@ -242,4 +242,64 @@ pub fn addCases(ctx: *TestContext) !void {
\\}
, "");
}
{
var case = ctx.exeUsingLlvmBackend("address space pointer coercions", linux_x64);
case.addError(
\\fn entry(a: *addrspace(.gs) i32) *i32 {
\\ return a;
\\}
\\pub export fn main() void { _ = entry; }
, &[_][]const u8{
":2:12: error: expected *i32, found *addrspace(.gs) i32",
});
case.compiles(
\\fn entry(a: *addrspace(.gs) i32) *addrspace(.gs) i32 {
\\ return a;
\\}
\\pub export fn main() void { _ = entry; }
);
case.compiles(
\\fn entry(a: *addrspace(.generic) i32) *i32 {
\\ return a;
\\}
\\pub export fn main() void { _ = entry; }
);
case.addError(
\\fn entry(a: *addrspace(.gs) i32) *addrspace(.fs) i32 {
\\ return a;
\\}
\\pub export 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 export 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 export fn main() void { _ = entry; }
, &[_][]const u8{
":2:12: error: expected *i32, found *addrspace(.gs) i32",
});
case.compiles(
\\fn entry(a: *addrspace(.gs) i32) *addrspace(.gs) i32 {
\\ return &a.*;
\\}
\\pub export fn main() void { _ = entry; }
);
}
}