Stage2/Testing: Move Transformation case to ZIRCase
parent
e77fc7fe7e
commit
b6bd51ed69
|
@ -141,21 +141,21 @@ pub const TestContext = struct {
|
|||
/// such as QEMU is required for tests to complete.
|
||||
///
|
||||
target: std.zig.CrossTarget,
|
||||
stages: []ZIRUpdate,
|
||||
stages: []const ZIRUpdate,
|
||||
};
|
||||
|
||||
pub fn addZIRCase(
|
||||
ctx: *TestContext,
|
||||
name: []const u8,
|
||||
target: std.zig.CrossTarget,
|
||||
stages: []ZIRUpdate,
|
||||
) !void {
|
||||
const case = .{
|
||||
stages: []const ZIRUpdate,
|
||||
) void {
|
||||
const case = ZIRCase{
|
||||
.name = name,
|
||||
.target = target,
|
||||
.stages = stages,
|
||||
};
|
||||
try ctx.cases.append(case);
|
||||
ctx.zir_cases.append(case) catch |err| std.debug.panic("Error: {}", .{err});
|
||||
}
|
||||
|
||||
pub fn addZIRCompareOutput(
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
const std = @import("std");
|
||||
const TestContext = @import("../../src-self-hosted/test.zig").TestContext;
|
||||
const ZIRUpdate = TestContext.ZIRUpdate;
|
||||
// self-hosted does not yet support PE executable files / COFF object files
|
||||
// or mach-o files. So we do the ZIR transform test cases cross compiling for
|
||||
// x86_64-linux.
|
||||
|
@ -9,32 +10,8 @@ const linux_x64 = std.zig.CrossTarget{
|
|||
};
|
||||
|
||||
pub fn addCases(ctx: *TestContext) void {
|
||||
ctx.addZIRTransform("referencing decls which appear later in the file", linux_x64,
|
||||
\\@void = primitive(void)
|
||||
\\@fnty = fntype([], @void, cc=C)
|
||||
\\
|
||||
\\@9 = str("entry")
|
||||
\\@10 = ref(@9)
|
||||
\\@11 = export(@10, @entry)
|
||||
\\
|
||||
\\@entry = fn(@fnty, {
|
||||
\\ %11 = return()
|
||||
\\})
|
||||
,
|
||||
\\@void = primitive(void)
|
||||
\\@fnty = fntype([], @void, cc=C)
|
||||
\\@9 = str("entry")
|
||||
\\@10 = ref(@9)
|
||||
\\@unnamed$6 = str("entry")
|
||||
\\@unnamed$7 = ref(@unnamed$6)
|
||||
\\@unnamed$8 = export(@unnamed$7, @entry)
|
||||
\\@unnamed$10 = fntype([], @void, cc=C)
|
||||
\\@entry = fn(@unnamed$10, {
|
||||
\\ %0 = return()
|
||||
\\})
|
||||
\\
|
||||
);
|
||||
ctx.addZIRTransform("elemptr, add, cmp, condbr, return, breakpoint", linux_x64,
|
||||
ctx.addZIRCase("elemptr, add, cmp, condbr, return, breakpoint", linux_x64, &[_]ZIRUpdate{ZIRUpdate{
|
||||
.src =
|
||||
\\@void = primitive(void)
|
||||
\\@usize = primitive(usize)
|
||||
\\@fnty = fntype([], @void, cc=C)
|
||||
|
@ -71,24 +48,19 @@ pub fn addCases(ctx: *TestContext) void {
|
|||
\\@10 = ref(@9)
|
||||
\\@11 = export(@10, @entry)
|
||||
,
|
||||
\\@void = primitive(void)
|
||||
\\@fnty = fntype([], @void, cc=C)
|
||||
\\@0 = int(0)
|
||||
\\@1 = int(1)
|
||||
\\@2 = int(2)
|
||||
\\@3 = int(3)
|
||||
\\@unnamed$7 = fntype([], @void, cc=C)
|
||||
\\@entry = fn(@unnamed$7, {
|
||||
.case = .{
|
||||
.Transformation =
|
||||
\\@0 = primitive(void)
|
||||
\\@1 = fntype([], @0, cc=C)
|
||||
\\@2 = fn(@1, {
|
||||
\\ %0 = return()
|
||||
\\})
|
||||
\\@a = str("2\x08\x01\n")
|
||||
\\@9 = str("entry")
|
||||
\\@10 = ref(@9)
|
||||
\\@unnamed$14 = str("entry")
|
||||
\\@unnamed$15 = ref(@unnamed$14)
|
||||
\\@unnamed$16 = export(@unnamed$15, @entry)
|
||||
\\@3 = str("entry")
|
||||
\\@4 = ref(@3)
|
||||
\\@5 = export(@4, @2)
|
||||
\\
|
||||
);
|
||||
},
|
||||
}});
|
||||
|
||||
{
|
||||
var case = ctx.addZIRMulti("reference cycle with compile error in the cycle", linux_x64);
|
||||
|
|
Loading…
Reference in New Issue