Commit 12d18a36e5

Andrew Kelley <andrew@ziglang.org>
2021-03-25 04:58:38
stage2: enable passing tests
1 parent 01bfd83
Changed files (1)
test
stage2
test/stage2/test.zig
@@ -622,197 +622,197 @@ pub fn addCases(ctx: *TestContext) !void {
         );
 
         // Labeled blocks (no conditional branch)
-        //case.addCompareOutput(
-        //    \\export fn _start() noreturn {
-        //    \\    assert(add(3, 4) == 20);
-        //    \\
-        //    \\    exit();
-        //    \\}
-        //    \\
-        //    \\fn add(a: u32, b: u32) u32 {
-        //    \\    const x: u32 = blk: {
-        //    \\        const c = a + b; // 7
-        //    \\        const d = a + c; // 10
-        //    \\        const e = d + b; // 14
-        //    \\        break :blk e;
-        //    \\    };
-        //    \\    const y = x + a; // 17
-        //    \\    const z = y + a; // 20
-        //    \\    return z;
-        //    \\}
-        //    \\
-        //    \\pub fn assert(ok: bool) void {
-        //    \\    if (!ok) unreachable; // assertion failure
-        //    \\}
-        //    \\
-        //    \\fn exit() noreturn {
-        //    \\    asm volatile ("syscall"
-        //    \\        :
-        //    \\        : [number] "{rax}" (231),
-        //    \\          [arg1] "{rdi}" (0)
-        //    \\        : "rcx", "r11", "memory"
-        //    \\    );
-        //    \\    unreachable;
-        //    \\}
-        //,
-        //    "",
-        //);
+        case.addCompareOutput(
+            \\export fn _start() noreturn {
+            \\    assert(add(3, 4) == 20);
+            \\
+            \\    exit();
+            \\}
+            \\
+            \\fn add(a: u32, b: u32) u32 {
+            \\    const x: u32 = blk: {
+            \\        const c = a + b; // 7
+            \\        const d = a + c; // 10
+            \\        const e = d + b; // 14
+            \\        break :blk e;
+            \\    };
+            \\    const y = x + a; // 17
+            \\    const z = y + a; // 20
+            \\    return z;
+            \\}
+            \\
+            \\pub fn assert(ok: bool) void {
+            \\    if (!ok) unreachable; // assertion failure
+            \\}
+            \\
+            \\fn exit() noreturn {
+            \\    asm volatile ("syscall"
+            \\        :
+            \\        : [number] "{rax}" (231),
+            \\          [arg1] "{rdi}" (0)
+            \\        : "rcx", "r11", "memory"
+            \\    );
+            \\    unreachable;
+            \\}
+        ,
+            "",
+        );
 
         // This catches a possible bug in the logic for re-using dying operands.
-        //case.addCompareOutput(
-        //    \\export fn _start() noreturn {
-        //    \\    assert(add(3, 4) == 116);
-        //    \\
-        //    \\    exit();
-        //    \\}
-        //    \\
-        //    \\fn add(a: u32, b: u32) u32 {
-        //    \\    const x: u32 = blk: {
-        //    \\        const c = a + b; // 7
-        //    \\        const d = a + c; // 10
-        //    \\        const e = d + b; // 14
-        //    \\        const f = d + e; // 24
-        //    \\        const g = e + f; // 38
-        //    \\        const h = f + g; // 62
-        //    \\        const i = g + h; // 100
-        //    \\        const j = i + d; // 110
-        //    \\        break :blk j;
-        //    \\    };
-        //    \\    const y = x + a; // 113
-        //    \\    const z = y + a; // 116
-        //    \\    return z;
-        //    \\}
-        //    \\
-        //    \\pub fn assert(ok: bool) void {
-        //    \\    if (!ok) unreachable; // assertion failure
-        //    \\}
-        //    \\
-        //    \\fn exit() noreturn {
-        //    \\    asm volatile ("syscall"
-        //    \\        :
-        //    \\        : [number] "{rax}" (231),
-        //    \\          [arg1] "{rdi}" (0)
-        //    \\        : "rcx", "r11", "memory"
-        //    \\    );
-        //    \\    unreachable;
-        //    \\}
-        //,
-        //    "",
-        //);
+        case.addCompareOutput(
+            \\export fn _start() noreturn {
+            \\    assert(add(3, 4) == 116);
+            \\
+            \\    exit();
+            \\}
+            \\
+            \\fn add(a: u32, b: u32) u32 {
+            \\    const x: u32 = blk: {
+            \\        const c = a + b; // 7
+            \\        const d = a + c; // 10
+            \\        const e = d + b; // 14
+            \\        const f = d + e; // 24
+            \\        const g = e + f; // 38
+            \\        const h = f + g; // 62
+            \\        const i = g + h; // 100
+            \\        const j = i + d; // 110
+            \\        break :blk j;
+            \\    };
+            \\    const y = x + a; // 113
+            \\    const z = y + a; // 116
+            \\    return z;
+            \\}
+            \\
+            \\pub fn assert(ok: bool) void {
+            \\    if (!ok) unreachable; // assertion failure
+            \\}
+            \\
+            \\fn exit() noreturn {
+            \\    asm volatile ("syscall"
+            \\        :
+            \\        : [number] "{rax}" (231),
+            \\          [arg1] "{rdi}" (0)
+            \\        : "rcx", "r11", "memory"
+            \\    );
+            \\    unreachable;
+            \\}
+        ,
+            "",
+        );
 
         // Spilling registers to the stack.
-        //case.addCompareOutput(
-        //    \\export fn _start() noreturn {
-        //    \\    assert(add(3, 4) == 791);
-        //    \\
-        //    \\    exit();
-        //    \\}
-        //    \\
-        //    \\fn add(a: u32, b: u32) u32 {
-        //    \\    const x: u32 = blk: {
-        //    \\        const c = a + b; // 7
-        //    \\        const d = a + c; // 10
-        //    \\        const e = d + b; // 14
-        //    \\        const f = d + e; // 24
-        //    \\        const g = e + f; // 38
-        //    \\        const h = f + g; // 62
-        //    \\        const i = g + h; // 100
-        //    \\        const j = i + d; // 110
-        //    \\        const k = i + j; // 210
-        //    \\        const l = k + c; // 217
-        //    \\        const m = l + d; // 227
-        //    \\        const n = m + e; // 241
-        //    \\        const o = n + f; // 265
-        //    \\        const p = o + g; // 303
-        //    \\        const q = p + h; // 365
-        //    \\        const r = q + i; // 465
-        //    \\        const s = r + j; // 575
-        //    \\        const t = s + k; // 785
-        //    \\        break :blk t;
-        //    \\    };
-        //    \\    const y = x + a; // 788
-        //    \\    const z = y + a; // 791
-        //    \\    return z;
-        //    \\}
-        //    \\
-        //    \\pub fn assert(ok: bool) void {
-        //    \\    if (!ok) unreachable; // assertion failure
-        //    \\}
-        //    \\
-        //    \\fn exit() noreturn {
-        //    \\    asm volatile ("syscall"
-        //    \\        :
-        //    \\        : [number] "{rax}" (231),
-        //    \\          [arg1] "{rdi}" (0)
-        //    \\        : "rcx", "r11", "memory"
-        //    \\    );
-        //    \\    unreachable;
-        //    \\}
-        //,
-        //    "",
-        //);
+        case.addCompareOutput(
+            \\export fn _start() noreturn {
+            \\    assert(add(3, 4) == 791);
+            \\
+            \\    exit();
+            \\}
+            \\
+            \\fn add(a: u32, b: u32) u32 {
+            \\    const x: u32 = blk: {
+            \\        const c = a + b; // 7
+            \\        const d = a + c; // 10
+            \\        const e = d + b; // 14
+            \\        const f = d + e; // 24
+            \\        const g = e + f; // 38
+            \\        const h = f + g; // 62
+            \\        const i = g + h; // 100
+            \\        const j = i + d; // 110
+            \\        const k = i + j; // 210
+            \\        const l = k + c; // 217
+            \\        const m = l + d; // 227
+            \\        const n = m + e; // 241
+            \\        const o = n + f; // 265
+            \\        const p = o + g; // 303
+            \\        const q = p + h; // 365
+            \\        const r = q + i; // 465
+            \\        const s = r + j; // 575
+            \\        const t = s + k; // 785
+            \\        break :blk t;
+            \\    };
+            \\    const y = x + a; // 788
+            \\    const z = y + a; // 791
+            \\    return z;
+            \\}
+            \\
+            \\pub fn assert(ok: bool) void {
+            \\    if (!ok) unreachable; // assertion failure
+            \\}
+            \\
+            \\fn exit() noreturn {
+            \\    asm volatile ("syscall"
+            \\        :
+            \\        : [number] "{rax}" (231),
+            \\          [arg1] "{rdi}" (0)
+            \\        : "rcx", "r11", "memory"
+            \\    );
+            \\    unreachable;
+            \\}
+        ,
+            "",
+        );
 
         // Reusing the registers of dead operands playing nicely with conditional branching.
-        //case.addCompareOutput(
-        //    \\export fn _start() noreturn {
-        //    \\    assert(add(3, 4) == 791);
-        //    \\    assert(add(4, 3) == 79);
-        //    \\
-        //    \\    exit();
-        //    \\}
-        //    \\
-        //    \\fn add(a: u32, b: u32) u32 {
-        //    \\    const x: u32 = if (a < b) blk: {
-        //    \\        const c = a + b; // 7
-        //    \\        const d = a + c; // 10
-        //    \\        const e = d + b; // 14
-        //    \\        const f = d + e; // 24
-        //    \\        const g = e + f; // 38
-        //    \\        const h = f + g; // 62
-        //    \\        const i = g + h; // 100
-        //    \\        const j = i + d; // 110
-        //    \\        const k = i + j; // 210
-        //    \\        const l = k + c; // 217
-        //    \\        const m = l + d; // 227
-        //    \\        const n = m + e; // 241
-        //    \\        const o = n + f; // 265
-        //    \\        const p = o + g; // 303
-        //    \\        const q = p + h; // 365
-        //    \\        const r = q + i; // 465
-        //    \\        const s = r + j; // 575
-        //    \\        const t = s + k; // 785
-        //    \\        break :blk t;
-        //    \\    } else blk: {
-        //    \\        const t = b + b + a; // 10
-        //    \\        const c = a + t; // 14
-        //    \\        const d = c + t; // 24
-        //    \\        const e = d + t; // 34
-        //    \\        const f = e + t; // 44
-        //    \\        const g = f + t; // 54
-        //    \\        const h = c + g; // 68
-        //    \\        break :blk h + b; // 71
-        //    \\    };
-        //    \\    const y = x + a; // 788, 75
-        //    \\    const z = y + a; // 791, 79
-        //    \\    return z;
-        //    \\}
-        //    \\
-        //    \\pub fn assert(ok: bool) void {
-        //    \\    if (!ok) unreachable; // assertion failure
-        //    \\}
-        //    \\
-        //    \\fn exit() noreturn {
-        //    \\    asm volatile ("syscall"
-        //    \\        :
-        //    \\        : [number] "{rax}" (231),
-        //    \\          [arg1] "{rdi}" (0)
-        //    \\        : "rcx", "r11", "memory"
-        //    \\    );
-        //    \\    unreachable;
-        //    \\}
-        //,
-        //    "",
-        //);
+        case.addCompareOutput(
+            \\export fn _start() noreturn {
+            \\    assert(add(3, 4) == 791);
+            \\    assert(add(4, 3) == 79);
+            \\
+            \\    exit();
+            \\}
+            \\
+            \\fn add(a: u32, b: u32) u32 {
+            \\    const x: u32 = if (a < b) blk: {
+            \\        const c = a + b; // 7
+            \\        const d = a + c; // 10
+            \\        const e = d + b; // 14
+            \\        const f = d + e; // 24
+            \\        const g = e + f; // 38
+            \\        const h = f + g; // 62
+            \\        const i = g + h; // 100
+            \\        const j = i + d; // 110
+            \\        const k = i + j; // 210
+            \\        const l = k + c; // 217
+            \\        const m = l + d; // 227
+            \\        const n = m + e; // 241
+            \\        const o = n + f; // 265
+            \\        const p = o + g; // 303
+            \\        const q = p + h; // 365
+            \\        const r = q + i; // 465
+            \\        const s = r + j; // 575
+            \\        const t = s + k; // 785
+            \\        break :blk t;
+            \\    } else blk: {
+            \\        const t = b + b + a; // 10
+            \\        const c = a + t; // 14
+            \\        const d = c + t; // 24
+            \\        const e = d + t; // 34
+            \\        const f = e + t; // 44
+            \\        const g = f + t; // 54
+            \\        const h = c + g; // 68
+            \\        break :blk h + b; // 71
+            \\    };
+            \\    const y = x + a; // 788, 75
+            \\    const z = y + a; // 791, 79
+            \\    return z;
+            \\}
+            \\
+            \\pub fn assert(ok: bool) void {
+            \\    if (!ok) unreachable; // assertion failure
+            \\}
+            \\
+            \\fn exit() noreturn {
+            \\    asm volatile ("syscall"
+            \\        :
+            \\        : [number] "{rax}" (231),
+            \\          [arg1] "{rdi}" (0)
+            \\        : "rcx", "r11", "memory"
+            \\    );
+            \\    unreachable;
+            \\}
+        ,
+            "",
+        );
 
         // Character literals and multiline strings.
         case.addCompareOutput(