mirror of
https://github.com/ziglang/zig.git
synced 2026-02-13 12:59:04 +00:00
Address Spaces: Split out stage2 address llvm tests to individual cases
This previously caused a test case to crash due to lingering llvm state.
This commit is contained in:
parent
7956eee1ab
commit
90a945b38c
@ -244,7 +244,7 @@ pub fn addCases(ctx: *TestContext) !void {
|
||||
}
|
||||
|
||||
{
|
||||
var case = ctx.exeUsingLlvmBackend("address space pointer coercions", linux_x64);
|
||||
var case = ctx.exeUsingLlvmBackend("invalid address space coercion", linux_x64);
|
||||
case.addError(
|
||||
\\fn entry(a: *addrspace(.gs) i32) *i32 {
|
||||
\\ return a;
|
||||
@ -253,21 +253,30 @@ pub fn addCases(ctx: *TestContext) !void {
|
||||
, &[_][]const u8{
|
||||
":2:12: error: expected *i32, found *addrspace(.gs) i32",
|
||||
});
|
||||
}
|
||||
|
||||
{
|
||||
var case = ctx.exeUsingLlvmBackend("pointer keeps address space", linux_x64);
|
||||
case.compiles(
|
||||
\\fn entry(a: *addrspace(.gs) i32) *addrspace(.gs) i32 {
|
||||
\\ return a;
|
||||
\\}
|
||||
\\pub export fn main() void { _ = entry; }
|
||||
);
|
||||
}
|
||||
|
||||
{
|
||||
var case = ctx.exeUsingLlvmBackend("pointer to explicit generic address space coerces to implicit pointer", linux_x64);
|
||||
case.compiles(
|
||||
\\fn entry(a: *addrspace(.generic) i32) *i32 {
|
||||
\\ return a;
|
||||
\\}
|
||||
\\pub export fn main() void { _ = entry; }
|
||||
);
|
||||
}
|
||||
|
||||
{
|
||||
var case = ctx.exeUsingLlvmBackend("pointers with different address spaces", linux_x64);
|
||||
case.addError(
|
||||
\\fn entry(a: *addrspace(.gs) i32) *addrspace(.fs) i32 {
|
||||
\\ return a;
|
||||
@ -276,7 +285,10 @@ pub fn addCases(ctx: *TestContext) !void {
|
||||
, &[_][]const u8{
|
||||
":2:12: error: expected *addrspace(.fs) i32, found *addrspace(.gs) i32",
|
||||
});
|
||||
}
|
||||
|
||||
{
|
||||
var case = ctx.exeUsingLlvmBackend("pointers with different address spaces", linux_x64);
|
||||
case.addError(
|
||||
\\fn entry(a: ?*addrspace(.gs) i32) *i32 {
|
||||
\\ return a.?;
|
||||
@ -285,7 +297,10 @@ pub fn addCases(ctx: *TestContext) !void {
|
||||
, &[_][]const u8{
|
||||
":2:13: error: expected *i32, found *addrspace(.gs) i32",
|
||||
});
|
||||
}
|
||||
|
||||
{
|
||||
var case = ctx.exeUsingLlvmBackend("invalid pointer keeps address space when taking address of dereference", linux_x64);
|
||||
case.addError(
|
||||
\\fn entry(a: *addrspace(.gs) i32) *i32 {
|
||||
\\ return &a.*;
|
||||
@ -294,7 +309,10 @@ pub fn addCases(ctx: *TestContext) !void {
|
||||
, &[_][]const u8{
|
||||
":2:12: error: expected *i32, found *addrspace(.gs) i32",
|
||||
});
|
||||
}
|
||||
|
||||
{
|
||||
var case = ctx.exeUsingLlvmBackend("pointer keeps address space when taking address of dereference", linux_x64);
|
||||
case.compiles(
|
||||
\\fn entry(a: *addrspace(.gs) i32) *addrspace(.gs) i32 {
|
||||
\\ return &a.*;
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user