authorgravatar for luuk@degram.devLuuk de Gram <luuk@degram.dev> 2023-10-15 05:51:41+02:00
committergravatar for noreply@github.comGitHub <noreply@github.com> 2023-10-15 05:51:41+02:00
logb0f031f5730be496872591dce3242004cf9a6f22
treecc529312ee13c80a55f21d95ab051cd7f1cd2cea
parenta126afa1c3fe7e39678c201f6470b7899aedd47e
parent78fe3feedbfa2f86bfbacd1b478a5104092dffeb
signaturebadge-question-mark Signed by PGP key 4AEE18F83AFDEB23

Merge pull request #17523 from xxxbxxx/wasm-codegen

wasm codegen fixes

33 files changed, 91 insertions(+), 92 deletions(-)

src/arch/wasm/CodeGen.zig+43-22
...@@ -3602,11 +3602,6 @@ fn cmp(func: *CodeGen, lhs: WValue, rhs: WValue, ty: Type, op: std.math.CompareO...@@ -3602,11 +3602,6 @@ fn cmp(func: *CodeGen, lhs: WValue, rhs: WValue, ty: Type, op: std.math.CompareO
3602 return func.cmpBigInt(lhs, rhs, ty, op);3602 return func.cmpBigInt(lhs, rhs, ty, op);
3603 }3603 }
36043604
3605 // ensure that when we compare pointers, we emit
3606 // the true pointer of a stack value, rather than the stack pointer.
3607 try func.lowerToStack(lhs);
3608 try func.lowerToStack(rhs);
3609
3610 const signedness: std.builtin.Signedness = blk: {3605 const signedness: std.builtin.Signedness = blk: {
3611 // by default we tell the operand type is unsigned (i.e. bools and enum values)3606 // by default we tell the operand type is unsigned (i.e. bools and enum values)
3612 if (ty.zigTypeTag(mod) != .Int) break :blk .unsigned;3607 if (ty.zigTypeTag(mod) != .Int) break :blk .unsigned;
...@@ -3614,6 +3609,30 @@ fn cmp(func: *CodeGen, lhs: WValue, rhs: WValue, ty: Type, op: std.math.CompareO...@@ -3614,6 +3609,30 @@ fn cmp(func: *CodeGen, lhs: WValue, rhs: WValue, ty: Type, op: std.math.CompareO
3614 // incase of an actual integer, we emit the correct signedness3609 // incase of an actual integer, we emit the correct signedness
3615 break :blk ty.intInfo(mod).signedness;3610 break :blk ty.intInfo(mod).signedness;
3616 };3611 };
3612 const extend_sign = blk: {
3613 // do we need to extend the sign bit?
3614 if (signedness != .signed) break :blk false;
3615 if (op == .eq or op == .neq) break :blk false;
3616 const int_bits = ty.intInfo(mod).bits;
3617 const wasm_bits = toWasmBits(int_bits) orelse unreachable;
3618 break :blk (wasm_bits != int_bits);
3619 };
3620
3621 const lhs_wasm = if (extend_sign)
3622 try func.signExtendInt(lhs, ty)
3623 else
3624 lhs;
3625
3626 const rhs_wasm = if (extend_sign)
3627 try func.signExtendInt(rhs, ty)
3628 else
3629 rhs;
3630
3631 // ensure that when we compare pointers, we emit
3632 // the true pointer of a stack value, rather than the stack pointer.
3633 try func.lowerToStack(lhs_wasm);
3634 try func.lowerToStack(rhs_wasm);
3635
3617 const opcode: wasm.Opcode = buildOpcode(.{3636 const opcode: wasm.Opcode = buildOpcode(.{
3618 .valtype1 = typeToValtype(ty, mod),3637 .valtype1 = typeToValtype(ty, mod),
3619 .op = switch (op) {3638 .op = switch (op) {
...@@ -5331,17 +5350,17 @@ fn airAggregateInit(func: *CodeGen, inst: Air.Inst.Index) InnerError!void {...@@ -5331,17 +5350,17 @@ fn airAggregateInit(func: *CodeGen, inst: Air.Inst.Index) InnerError!void {
5331 else => {5350 else => {
5332 const result = try func.allocStack(result_ty);5351 const result = try func.allocStack(result_ty);
5333 const offset = try func.buildPointerOffset(result, 0, .new); // pointer to offset5352 const offset = try func.buildPointerOffset(result, 0, .new); // pointer to offset
5353 var prev_field_offset: u64 = 0;
5334 for (elements, 0..) |elem, elem_index| {5354 for (elements, 0..) |elem, elem_index| {
5335 if ((try result_ty.structFieldValueComptime(mod, elem_index)) != null) continue;5355 if ((try result_ty.structFieldValueComptime(mod, elem_index)) != null) continue;
53365356
5337 const elem_ty = result_ty.structFieldType(elem_index, mod);5357 const elem_ty = result_ty.structFieldType(elem_index, mod);
5338 const elem_size: u32 = @intCast(elem_ty.abiSize(mod));5358 const field_offset = result_ty.structFieldOffset(elem_index, mod);
5359 _ = try func.buildPointerOffset(offset, @intCast(field_offset - prev_field_offset), .modify);
5360 prev_field_offset = field_offset;
5361
5339 const value = try func.resolveInst(elem);5362 const value = try func.resolveInst(elem);
5340 try func.store(offset, value, elem_ty, 0);5363 try func.store(offset, value, elem_ty, 0);
5341
5342 if (elem_index < elements.len - 1) {
5343 _ = try func.buildPointerOffset(offset, elem_size, .modify);
5344 }
5345 }5364 }
53465365
5347 break :result_value result;5366 break :result_value result;
...@@ -6920,12 +6939,13 @@ fn signedSat(func: *CodeGen, lhs_operand: WValue, rhs_operand: WValue, ty: Type,...@@ -6920,12 +6939,13 @@ fn signedSat(func: *CodeGen, lhs_operand: WValue, rhs_operand: WValue, ty: Type,
6920 const int_info = ty.intInfo(mod);6939 const int_info = ty.intInfo(mod);
6921 const wasm_bits = toWasmBits(int_info.bits).?;6940 const wasm_bits = toWasmBits(int_info.bits).?;
6922 const is_wasm_bits = wasm_bits == int_info.bits;6941 const is_wasm_bits = wasm_bits == int_info.bits;
6942 const ext_ty = if (!is_wasm_bits) try mod.intType(int_info.signedness, wasm_bits) else ty;
69236943
6924 var lhs = if (!is_wasm_bits) lhs: {6944 var lhs = if (!is_wasm_bits) lhs: {
6925 break :lhs try (try func.signExtendInt(lhs_operand, ty)).toLocal(func, ty);6945 break :lhs try (try func.signExtendInt(lhs_operand, ty)).toLocal(func, ext_ty);
6926 } else lhs_operand;6946 } else lhs_operand;
6927 var rhs = if (!is_wasm_bits) rhs: {6947 var rhs = if (!is_wasm_bits) rhs: {
6928 break :rhs try (try func.signExtendInt(rhs_operand, ty)).toLocal(func, ty);6948 break :rhs try (try func.signExtendInt(rhs_operand, ty)).toLocal(func, ext_ty);
6929 } else rhs_operand;6949 } else rhs_operand;
69306950
6931 const max_val: u64 = @as(u64, @intCast((@as(u65, 1) << @as(u7, @intCast(int_info.bits - 1))) - 1));6951 const max_val: u64 = @as(u64, @intCast((@as(u65, 1) << @as(u7, @intCast(int_info.bits - 1))) - 1));
...@@ -6941,20 +6961,20 @@ fn signedSat(func: *CodeGen, lhs_operand: WValue, rhs_operand: WValue, ty: Type,...@@ -6941,20 +6961,20 @@ fn signedSat(func: *CodeGen, lhs_operand: WValue, rhs_operand: WValue, ty: Type,
6941 else => unreachable,6961 else => unreachable,
6942 };6962 };
69436963
6944 var bin_result = try (try func.binOp(lhs, rhs, ty, op)).toLocal(func, ty);6964 var bin_result = try (try func.binOp(lhs, rhs, ext_ty, op)).toLocal(func, ext_ty);
6945 if (!is_wasm_bits) {6965 if (!is_wasm_bits) {
6946 defer bin_result.free(func); // not returned in this branch6966 defer bin_result.free(func); // not returned in this branch
6947 defer lhs.free(func); // uses temporary local for absvalue6967 defer lhs.free(func); // uses temporary local for absvalue
6948 defer rhs.free(func); // uses temporary local for absvalue6968 defer rhs.free(func); // uses temporary local for absvalue
6949 try func.emitWValue(bin_result);6969 try func.emitWValue(bin_result);
6950 try func.emitWValue(max_wvalue);6970 try func.emitWValue(max_wvalue);
6951 _ = try func.cmp(bin_result, max_wvalue, ty, .lt);6971 _ = try func.cmp(bin_result, max_wvalue, ext_ty, .lt);
6952 try func.addTag(.select);6972 try func.addTag(.select);
6953 try func.addLabel(.local_set, bin_result.local.value); // re-use local6973 try func.addLabel(.local_set, bin_result.local.value); // re-use local
69546974
6955 try func.emitWValue(bin_result);6975 try func.emitWValue(bin_result);
6956 try func.emitWValue(min_wvalue);6976 try func.emitWValue(min_wvalue);
6957 _ = try func.cmp(bin_result, min_wvalue, ty, .gt);6977 _ = try func.cmp(bin_result, min_wvalue, ext_ty, .gt);
6958 try func.addTag(.select);6978 try func.addTag(.select);
6959 try func.addLabel(.local_set, bin_result.local.value); // re-use local6979 try func.addLabel(.local_set, bin_result.local.value); // re-use local
6960 return (try func.wrapOperand(bin_result, ty)).toLocal(func, ty);6980 return (try func.wrapOperand(bin_result, ty)).toLocal(func, ty);
...@@ -7036,12 +7056,13 @@ fn airShlSat(func: *CodeGen, inst: Air.Inst.Index) InnerError!void {...@@ -7036,12 +7056,13 @@ fn airShlSat(func: *CodeGen, inst: Air.Inst.Index) InnerError!void {
7036 64 => WValue{ .imm64 = shift_size },7056 64 => WValue{ .imm64 = shift_size },
7037 else => unreachable,7057 else => unreachable,
7038 };7058 };
7059 const ext_ty = try mod.intType(int_info.signedness, wasm_bits);
70397060
7040 var shl_res = try (try func.binOp(lhs, shift_value, ty, .shl)).toLocal(func, ty);7061 var shl_res = try (try func.binOp(lhs, shift_value, ext_ty, .shl)).toLocal(func, ext_ty);
7041 defer shl_res.free(func);7062 defer shl_res.free(func);
7042 var shl = try (try func.binOp(shl_res, rhs, ty, .shl)).toLocal(func, ty);7063 var shl = try (try func.binOp(shl_res, rhs, ext_ty, .shl)).toLocal(func, ext_ty);
7043 defer shl.free(func);7064 defer shl.free(func);
7044 var shr = try (try func.binOp(shl, rhs, ty, .shr)).toLocal(func, ty);7065 var shr = try (try func.binOp(shl, rhs, ext_ty, .shr)).toLocal(func, ext_ty);
7045 defer shr.free(func);7066 defer shr.free(func);
70467067
7047 switch (wasm_bits) {7068 switch (wasm_bits) {
...@@ -7053,7 +7074,7 @@ fn airShlSat(func: *CodeGen, inst: Air.Inst.Index) InnerError!void {...@@ -7053,7 +7074,7 @@ fn airShlSat(func: *CodeGen, inst: Air.Inst.Index) InnerError!void {
70537074
7054 try func.addImm32(std.math.minInt(i32));7075 try func.addImm32(std.math.minInt(i32));
7055 try func.addImm32(std.math.maxInt(i32));7076 try func.addImm32(std.math.maxInt(i32));
7056 _ = try func.cmp(shl_res, .{ .imm32 = 0 }, ty, .lt);7077 _ = try func.cmp(shl_res, .{ .imm32 = 0 }, ext_ty, .lt);
7057 try func.addTag(.select);7078 try func.addTag(.select);
7058 },7079 },
7059 64 => blk: {7080 64 => blk: {
...@@ -7064,16 +7085,16 @@ fn airShlSat(func: *CodeGen, inst: Air.Inst.Index) InnerError!void {...@@ -7064,16 +7085,16 @@ fn airShlSat(func: *CodeGen, inst: Air.Inst.Index) InnerError!void {
70647085
7065 try func.addImm64(@as(u64, @bitCast(@as(i64, std.math.minInt(i64)))));7086 try func.addImm64(@as(u64, @bitCast(@as(i64, std.math.minInt(i64)))));
7066 try func.addImm64(@as(u64, @bitCast(@as(i64, std.math.maxInt(i64)))));7087 try func.addImm64(@as(u64, @bitCast(@as(i64, std.math.maxInt(i64)))));
7067 _ = try func.cmp(shl_res, .{ .imm64 = 0 }, ty, .lt);7088 _ = try func.cmp(shl_res, .{ .imm64 = 0 }, ext_ty, .lt);
7068 try func.addTag(.select);7089 try func.addTag(.select);
7069 },7090 },
7070 else => unreachable,7091 else => unreachable,
7071 }7092 }
7072 try func.emitWValue(shl);7093 try func.emitWValue(shl);
7073 _ = try func.cmp(shl_res, shr, ty, .neq);7094 _ = try func.cmp(shl_res, shr, ext_ty, .neq);
7074 try func.addTag(.select);7095 try func.addTag(.select);
7075 try func.addLabel(.local_set, result.local.value);7096 try func.addLabel(.local_set, result.local.value);
7076 var shift_result = try func.binOp(result, shift_value, ty, .shr);7097 var shift_result = try func.binOp(result, shift_value, ext_ty, .shr);
7077 if (is_signed) {7098 if (is_signed) {
7078 shift_result = try func.wrapOperand(shift_result, ty);7099 shift_result = try func.wrapOperand(shift_result, ty);
7079 }7100 }
test/behavior/align.zig-1
...@@ -571,7 +571,6 @@ fn overaligned_fn() align(0x1000) i32 {...@@ -571,7 +571,6 @@ fn overaligned_fn() align(0x1000) i32 {
571test "comptime alloc alignment" {571test "comptime alloc alignment" {
572 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO572 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
573 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO573 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
574 if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest; // TODO
575 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO574 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
576 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;575 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
577576
test/behavior/basic.zig+48-2
...@@ -38,7 +38,6 @@ test "truncate to non-power-of-two integers" {...@@ -38,7 +38,6 @@ test "truncate to non-power-of-two integers" {
38}38}
3939
40test "truncate to non-power-of-two integers from 128-bit" {40test "truncate to non-power-of-two integers from 128-bit" {
41 if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest; // TODO
42 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO41 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
43 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO42 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
44 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO43 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
...@@ -398,7 +397,6 @@ test "array 2D const double ptr" {...@@ -398,7 +397,6 @@ test "array 2D const double ptr" {
398 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;397 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;
399 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO398 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
400 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest;399 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest;
401 if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest; // TODO
402 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;400 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
403401
404 const rect_2d_vertexes = [_][1]f32{402 const rect_2d_vertexes = [_][1]f32{
...@@ -1172,3 +1170,51 @@ test "pointer to struct literal with runtime field is constant" {...@@ -1172,3 +1170,51 @@ test "pointer to struct literal with runtime field is constant" {
1172 const ptr = &S{ .data = runtime_zero };1170 const ptr = &S{ .data = runtime_zero };
1173 try expect(@typeInfo(@TypeOf(ptr)).Pointer.is_const);1171 try expect(@typeInfo(@TypeOf(ptr)).Pointer.is_const);
1174}1172}
1173
1174test "integer compare" {
1175 const S = struct {
1176 fn doTheTestSigned(comptime T: type) !void {
1177 var z: T = 0;
1178 var p: T = 123;
1179 var n: T = -123;
1180 try expect(z == z and z != p and z != n);
1181 try expect(p == p and p != n and n == n);
1182 try expect(z > n and z < p and z >= n and z <= p);
1183 try expect(!(z < n or z > p or z <= n or z >= p or z > z or z < z));
1184 try expect(p > n and n < p and p >= n and n <= p and p >= p and p <= p and n >= n and n <= n);
1185 try expect(!(p < n or n > p or p <= n or n >= p or p > p or p < p or n > n or n < n));
1186 try expect(z == 0 and z != 123 and z != -123 and 0 == z and 0 != p and 0 != n);
1187 try expect(z > -123 and p > -123 and !(n > 123));
1188 try expect(z < 123 and !(p < 123) and n < 123);
1189 try expect(-123 <= z and -123 <= p and -123 <= n);
1190 try expect(123 >= z and 123 >= p and 123 >= n);
1191 try expect(!(0 != z or 123 != p or -123 != n));
1192 try expect(!(z > 0 or -123 > p or 123 < n));
1193 }
1194 fn doTheTestUnsigned(comptime T: type) !void {
1195 var z: T = 0;
1196 var p: T = 123;
1197 try expect(z == z and z != p);
1198 try expect(p == p);
1199 try expect(z < p and z <= p);
1200 try expect(!(z > p or z >= p or z > z or z < z));
1201 try expect(p >= p and p <= p);
1202 try expect(!(p > p or p < p));
1203 try expect(z == 0 and z != 123 and z != -123 and 0 == z and 0 != p);
1204 try expect(z > -123 and p > -123);
1205 try expect(z < 123 and !(p < 123));
1206 try expect(-123 <= z and -123 <= p);
1207 try expect(123 >= z and 123 >= p);
1208 try expect(!(0 != z or 123 != p));
1209 try expect(!(z > 0 or -123 > p));
1210 }
1211 };
1212 inline for (.{ u8, u16, u32, u64, usize, u10, u20, u30, u60 }) |T| {
1213 try S.doTheTestUnsigned(T);
1214 try comptime S.doTheTestUnsigned(T);
1215 }
1216 inline for (.{ i8, i16, i32, i64, isize, i10, i20, i30, i60 }) |T| {
1217 try S.doTheTestSigned(T);
1218 try comptime S.doTheTestSigned(T);
1219 }
1220}
test/behavior/bugs/10684.zig-1
...@@ -3,7 +3,6 @@ const builtin = @import("builtin");...@@ -3,7 +3,6 @@ const builtin = @import("builtin");
3const expectEqualStrings = std.testing.expectEqualStrings;3const expectEqualStrings = std.testing.expectEqualStrings;
44
5test "slicing slices" {5test "slicing slices" {
6 if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest; // TODO
7 if (builtin.zig_backend == .stage2_x86) return error.SkipZigTest; // TODO6 if (builtin.zig_backend == .stage2_x86) return error.SkipZigTest; // TODO
8 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO7 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
9 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO8 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
test/behavior/bugs/11787.zig-1
...@@ -3,7 +3,6 @@ const builtin = @import("builtin");...@@ -3,7 +3,6 @@ const builtin = @import("builtin");
3const testing = std.testing;3const testing = std.testing;
44
5test "slicing zero length array field of struct" {5test "slicing zero length array field of struct" {
6 if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest; // TODO
7 if (builtin.zig_backend == .stage2_x86) return error.SkipZigTest; // TODO6 if (builtin.zig_backend == .stage2_x86) return error.SkipZigTest; // TODO
8 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO7 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
9 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO8 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
test/behavior/bugs/11995.zig-1
...@@ -17,7 +17,6 @@ const wuffs_base__slice_u8 = extern struct {...@@ -17,7 +17,6 @@ const wuffs_base__slice_u8 = extern struct {
17 len: usize,17 len: usize,
18};18};
19test {19test {
20 if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest; // TODO
21 if (builtin.zig_backend == .stage2_x86) return error.SkipZigTest; // TODO20 if (builtin.zig_backend == .stage2_x86) return error.SkipZigTest; // TODO
22 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO21 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
23 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO22 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
test/behavior/bugs/12000.zig-1
...@@ -6,7 +6,6 @@ const T = struct {...@@ -6,7 +6,6 @@ const T = struct {
6};6};
77
8test {8test {
9 if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest; // TODO
10 if (builtin.zig_backend == .stage2_x86) return error.SkipZigTest; // TODO9 if (builtin.zig_backend == .stage2_x86) return error.SkipZigTest; // TODO
11 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO10 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
12 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO11 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
test/behavior/bugs/12051.zig-1
...@@ -2,7 +2,6 @@ const std = @import("std");...@@ -2,7 +2,6 @@ const std = @import("std");
2const builtin = @import("builtin");2const builtin = @import("builtin");
33
4test {4test {
5 if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest; // TODO
6 if (builtin.zig_backend == .stage2_x86) return error.SkipZigTest; // TODO5 if (builtin.zig_backend == .stage2_x86) return error.SkipZigTest; // TODO
7 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO6 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
8 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO7 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
test/behavior/bugs/12092.zig-1
...@@ -14,7 +14,6 @@ fn takeFoo(foo: *const Foo) !void {...@@ -14,7 +14,6 @@ fn takeFoo(foo: *const Foo) !void {
14}14}
1515
16test {16test {
17 if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest; // TODO
18 if (builtin.zig_backend == .stage2_x86) return error.SkipZigTest; // TODO17 if (builtin.zig_backend == .stage2_x86) return error.SkipZigTest; // TODO
19 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO18 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
20 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO19 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
test/behavior/bugs/12119.zig-1
...@@ -5,7 +5,6 @@ const u8x32 = @Vector(32, u8);...@@ -5,7 +5,6 @@ const u8x32 = @Vector(32, u8);
5const u32x8 = @Vector(8, u32);5const u32x8 = @Vector(8, u32);
66
7test {7test {
8 if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest; // TODO
9 if (builtin.zig_backend == .stage2_x86) return error.SkipZigTest; // TODO8 if (builtin.zig_backend == .stage2_x86) return error.SkipZigTest; // TODO
10 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO9 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
11 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO10 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
test/behavior/bugs/12450.zig-1
...@@ -9,7 +9,6 @@ const Foo = packed struct {...@@ -9,7 +9,6 @@ const Foo = packed struct {
9var buffer: [256]u8 = undefined;9var buffer: [256]u8 = undefined;
1010
11test {11test {
12 if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest; // TODO
13 if (builtin.zig_backend == .stage2_x86) return error.SkipZigTest; // TODO12 if (builtin.zig_backend == .stage2_x86) return error.SkipZigTest; // TODO
14 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO13 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
15 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO14 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
test/behavior/bugs/12680.zig-1
...@@ -8,7 +8,6 @@ extern fn test_func() callconv(.C) usize;...@@ -8,7 +8,6 @@ extern fn test_func() callconv(.C) usize;
8test "export a function twice" {8test "export a function twice" {
9 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;9 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;
10 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest;10 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest;
11 if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest;
12 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO11 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
13 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;12 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
14 if (builtin.zig_backend == .stage2_x86_64 and builtin.target.ofmt != .elf) return error.SkipZigTest;13 if (builtin.zig_backend == .stage2_x86_64 and builtin.target.ofmt != .elf) return error.SkipZigTest;
test/behavior/bugs/13068.zig-1
...@@ -7,7 +7,6 @@ var list = std.ArrayList(u32).init(allocator);...@@ -7,7 +7,6 @@ var list = std.ArrayList(u32).init(allocator);
7test {7test {
8 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO8 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
9 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO9 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
10 if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest; // TODO
11 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO10 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
12 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;11 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
1312
test/behavior/bugs/13366.zig-1
...@@ -13,7 +13,6 @@ const Block = struct {...@@ -13,7 +13,6 @@ const Block = struct {
13};13};
1414
15test {15test {
16 if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest; // TODO
17 if (builtin.zig_backend == .stage2_x86) return error.SkipZigTest; // TODO16 if (builtin.zig_backend == .stage2_x86) return error.SkipZigTest; // TODO
18 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO17 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
19 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO18 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
test/behavior/bugs/1741.zig-1
...@@ -2,7 +2,6 @@ const std = @import("std");...@@ -2,7 +2,6 @@ const std = @import("std");
2const builtin = @import("builtin");2const builtin = @import("builtin");
33
4test "fixed" {4test "fixed" {
5 if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest; // TODO
6 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO5 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
7 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO6 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
8 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;7 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
test/behavior/bugs/1851.zig-1
...@@ -3,7 +3,6 @@ const std = @import("std");...@@ -3,7 +3,6 @@ const std = @import("std");
3const expect = std.testing.expect;3const expect = std.testing.expect;
44
5test "allocation and looping over 3-byte integer" {5test "allocation and looping over 3-byte integer" {
6 if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest; // TODO
7 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO6 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
8 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO7 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
9 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO8 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
test/behavior/bugs/2622.zig-1
...@@ -3,7 +3,6 @@ const builtin = @import("builtin");...@@ -3,7 +3,6 @@ const builtin = @import("builtin");
3var buf: []u8 = undefined;3var buf: []u8 = undefined;
44
5test "reslice of undefined global var slice" {5test "reslice of undefined global var slice" {
6 if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest; // TODO
7 if (builtin.zig_backend == .stage2_x86) return error.SkipZigTest; // TODO6 if (builtin.zig_backend == .stage2_x86) return error.SkipZigTest; // TODO
8 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO7 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
9 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO8 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
test/behavior/bugs/2727.zig-1
...@@ -5,7 +5,6 @@ fn t() bool {...@@ -5,7 +5,6 @@ fn t() bool {
5}5}
66
7test {7test {
8 if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest; // TODO
9 if (builtin.zig_backend == .stage2_x86) return error.SkipZigTest; // TODO8 if (builtin.zig_backend == .stage2_x86) return error.SkipZigTest; // TODO
10 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO9 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
11 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO10 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
test/behavior/bugs/6047.zig-1
...@@ -10,7 +10,6 @@ fn getError2() !void {...@@ -10,7 +10,6 @@ fn getError2() !void {
10}10}
1111
12test "`try`ing an if/else expression" {12test "`try`ing an if/else expression" {
13 if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest; // TODO
14 if (builtin.zig_backend == .stage2_x86) return error.SkipZigTest; // TODO13 if (builtin.zig_backend == .stage2_x86) return error.SkipZigTest; // TODO
15 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO14 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
16 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO15 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
test/behavior/bugs/6905.zig-1
...@@ -2,7 +2,6 @@ const expect = @import("std").testing.expect;...@@ -2,7 +2,6 @@ const expect = @import("std").testing.expect;
2const builtin = @import("builtin");2const builtin = @import("builtin");
33
4test "sentinel-terminated 0-length slices" {4test "sentinel-terminated 0-length slices" {
5 if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest; // TODO
6 if (builtin.zig_backend == .stage2_x86) return error.SkipZigTest; // TODO5 if (builtin.zig_backend == .stage2_x86) return error.SkipZigTest; // TODO
7 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO6 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
8 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO7 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
test/behavior/bugs/6947.zig-1
...@@ -5,7 +5,6 @@ fn destroy(ptr: *void) void {...@@ -5,7 +5,6 @@ fn destroy(ptr: *void) void {
5}5}
66
7test {7test {
8 if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest; // TODO
9 if (builtin.zig_backend == .stage2_x86) return error.SkipZigTest; // TODO8 if (builtin.zig_backend == .stage2_x86) return error.SkipZigTest; // TODO
10 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO9 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
11 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO10 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
test/behavior/bugs/7325.zig-1
...@@ -78,7 +78,6 @@ fn genExpression(expr: Expression) !ExpressionResult {...@@ -78,7 +78,6 @@ fn genExpression(expr: Expression) !ExpressionResult {
78}78}
7979
80test {80test {
81 if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest; // TODO
82 if (builtin.zig_backend == .stage2_x86) return error.SkipZigTest; // TODO81 if (builtin.zig_backend == .stage2_x86) return error.SkipZigTest; // TODO
83 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO82 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
84 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO83 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
test/behavior/bugs/8646.zig-1
...@@ -7,7 +7,6 @@ const array = [_][]const []const u8{...@@ -7,7 +7,6 @@ const array = [_][]const []const u8{
7};7};
88
9test {9test {
10 if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest; // TODO
11 if (builtin.zig_backend == .stage2_x86) return error.SkipZigTest; // TODO10 if (builtin.zig_backend == .stage2_x86) return error.SkipZigTest; // TODO
12 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO11 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
13 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO12 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
test/behavior/bugs/920.zig-1
...@@ -57,7 +57,6 @@ const NormalDist = blk: {...@@ -57,7 +57,6 @@ const NormalDist = blk: {
57};57};
5858
59test "bug 920 fixed" {59test "bug 920 fixed" {
60 if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest; // TODO
61 if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO60 if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO
62 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO61 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
63 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO62 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
test/behavior/cast.zig-25
...@@ -1544,7 +1544,6 @@ test "implicit cast from [:0]T to [*c]T" {...@@ -1544,7 +1544,6 @@ test "implicit cast from [:0]T to [*c]T" {
15441544
1545test "bitcast packed struct with u0" {1545test "bitcast packed struct with u0" {
1546 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO1546 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
1547 if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest; // TODO
15481547
1549 const S = packed struct(u2) { a: u0, b: u2 };1548 const S = packed struct(u2) { a: u0, b: u2 };
1550 const s = @as(S, @bitCast(@as(u2, 2)));1549 const s = @as(S, @bitCast(@as(u2, 2)));
...@@ -1572,7 +1571,6 @@ test "single item pointer to pointer to array to slice" {...@@ -1572,7 +1571,6 @@ test "single item pointer to pointer to array to slice" {
1572}1571}
15731572
1574test "peer type resolution forms error union" {1573test "peer type resolution forms error union" {
1575 if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest; // TODO
1576 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;1574 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
15771575
1578 var foo: i32 = 123;1576 var foo: i32 = 123;
...@@ -1611,7 +1609,6 @@ test "coercion from single-item pointer to @as to slice" {...@@ -1611,7 +1609,6 @@ test "coercion from single-item pointer to @as to slice" {
1611test "peer type resolution: const sentinel slice and mutable non-sentinel slice" {1609test "peer type resolution: const sentinel slice and mutable non-sentinel slice" {
1612 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO1610 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
1613 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO1611 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
1614 if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest; // TODO
1615 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO1612 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
1616 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest; // TODO1613 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest; // TODO
16171614
...@@ -1641,7 +1638,6 @@ test "peer type resolution: float and comptime-known fixed-width integer" {...@@ -1641,7 +1638,6 @@ test "peer type resolution: float and comptime-known fixed-width integer" {
1641 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO1638 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
1642 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO1639 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
1643 if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO1640 if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO
1644 if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest; // TODO
1645 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO1641 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
1646 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest; // TODO1642 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest; // TODO
16471643
...@@ -1663,7 +1659,6 @@ test "peer type resolution: float and comptime-known fixed-width integer" {...@@ -1663,7 +1659,6 @@ test "peer type resolution: float and comptime-known fixed-width integer" {
1663test "peer type resolution: same array type with sentinel" {1659test "peer type resolution: same array type with sentinel" {
1664 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO1660 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
1665 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO1661 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
1666 if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest; // TODO
1667 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO1662 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
1668 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest; // TODO1663 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest; // TODO
16691664
...@@ -1685,7 +1680,6 @@ test "peer type resolution: same array type with sentinel" {...@@ -1685,7 +1680,6 @@ test "peer type resolution: same array type with sentinel" {
1685test "peer type resolution: array with sentinel and array without sentinel" {1680test "peer type resolution: array with sentinel and array without sentinel" {
1686 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO1681 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
1687 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO1682 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
1688 if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest; // TODO
1689 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO1683 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
1690 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest; // TODO1684 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest; // TODO
16911685
...@@ -1707,7 +1701,6 @@ test "peer type resolution: array with sentinel and array without sentinel" {...@@ -1707,7 +1701,6 @@ test "peer type resolution: array with sentinel and array without sentinel" {
1707test "peer type resolution: array and vector with same child type" {1701test "peer type resolution: array and vector with same child type" {
1708 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO1702 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
1709 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO1703 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
1710 if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest; // TODO
1711 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO1704 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
1712 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest; // TODO1705 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest; // TODO
17131706
...@@ -1752,7 +1745,6 @@ test "peer type resolution: array with smaller child type and vector with larger...@@ -1752,7 +1745,6 @@ test "peer type resolution: array with smaller child type and vector with larger
1752test "peer type resolution: error union and optional of same type" {1745test "peer type resolution: error union and optional of same type" {
1753 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO1746 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
1754 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO1747 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
1755 if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest; // TODO
1756 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO1748 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
1757 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest; // TODO1749 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest; // TODO
17581750
...@@ -1775,7 +1767,6 @@ test "peer type resolution: error union and optional of same type" {...@@ -1775,7 +1767,6 @@ test "peer type resolution: error union and optional of same type" {
1775test "peer type resolution: C pointer and @TypeOf(null)" {1767test "peer type resolution: C pointer and @TypeOf(null)" {
1776 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO1768 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
1777 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO1769 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
1778 if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest; // TODO
1779 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO1770 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
1780 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest; // TODO1771 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest; // TODO
17811772
...@@ -1797,7 +1788,6 @@ test "peer type resolution: C pointer and @TypeOf(null)" {...@@ -1797,7 +1788,6 @@ test "peer type resolution: C pointer and @TypeOf(null)" {
1797test "peer type resolution: three-way resolution combines error set and optional" {1788test "peer type resolution: three-way resolution combines error set and optional" {
1798 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO1789 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
1799 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO1790 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
1800 if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest; // TODO
1801 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO1791 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
1802 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest; // TODO1792 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest; // TODO
18031793
...@@ -1861,7 +1851,6 @@ test "peer type resolution: vector and optional vector" {...@@ -1861,7 +1851,6 @@ test "peer type resolution: vector and optional vector" {
1861test "peer type resolution: optional fixed-width int and comptime_int" {1851test "peer type resolution: optional fixed-width int and comptime_int" {
1862 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO1852 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
1863 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO1853 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
1864 if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest; // TODO
1865 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO1854 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
1866 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest; // TODO1855 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest; // TODO
18671856
...@@ -1883,7 +1872,6 @@ test "peer type resolution: optional fixed-width int and comptime_int" {...@@ -1883,7 +1872,6 @@ test "peer type resolution: optional fixed-width int and comptime_int" {
1883test "peer type resolution: array and tuple" {1872test "peer type resolution: array and tuple" {
1884 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO1873 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
1885 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO1874 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
1886 if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest; // TODO
1887 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO1875 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
1888 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest; // TODO1876 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest; // TODO
18891877
...@@ -1971,7 +1959,6 @@ test "peer type resolution: vector and array and tuple" {...@@ -1971,7 +1959,6 @@ test "peer type resolution: vector and array and tuple" {
1971test "peer type resolution: empty tuple pointer and slice" {1959test "peer type resolution: empty tuple pointer and slice" {
1972 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO1960 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
1973 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO1961 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
1974 if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest; // TODO
1975 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO1962 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
1976 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest; // TODO1963 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest; // TODO
19771964
...@@ -1992,7 +1979,6 @@ test "peer type resolution: empty tuple pointer and slice" {...@@ -1992,7 +1979,6 @@ test "peer type resolution: empty tuple pointer and slice" {
1992test "peer type resolution: tuple pointer and slice" {1979test "peer type resolution: tuple pointer and slice" {
1993 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO1980 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
1994 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO1981 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
1995 if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest; // TODO
1996 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO1982 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
1997 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest; // TODO1983 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest; // TODO
19981984
...@@ -2013,7 +1999,6 @@ test "peer type resolution: tuple pointer and slice" {...@@ -2013,7 +1999,6 @@ test "peer type resolution: tuple pointer and slice" {
2013test "peer type resolution: tuple pointer and optional slice" {1999test "peer type resolution: tuple pointer and optional slice" {
2014 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO2000 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
2015 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO2001 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
2016 if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest; // TODO
2017 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO2002 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
2018 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest; // TODO2003 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest; // TODO
20192004
...@@ -2034,7 +2019,6 @@ test "peer type resolution: tuple pointer and optional slice" {...@@ -2034,7 +2019,6 @@ test "peer type resolution: tuple pointer and optional slice" {
2034test "peer type resolution: many compatible pointers" {2019test "peer type resolution: many compatible pointers" {
2035 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO2020 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
2036 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO2021 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
2037 if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest; // TODO
2038 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO2022 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
2039 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest; // TODO2023 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest; // TODO
20402024
...@@ -2100,7 +2084,6 @@ test "peer type resolution: many compatible pointers" {...@@ -2100,7 +2084,6 @@ test "peer type resolution: many compatible pointers" {
2100test "peer type resolution: tuples with comptime fields" {2084test "peer type resolution: tuples with comptime fields" {
2101 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO2085 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
2102 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO2086 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
2103 if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest; // TODO
2104 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO2087 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
2105 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest; // TODO2088 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest; // TODO
21062089
...@@ -2132,7 +2115,6 @@ test "peer type resolution: tuples with comptime fields" {...@@ -2132,7 +2115,6 @@ test "peer type resolution: tuples with comptime fields" {
2132test "peer type resolution: C pointer and many pointer" {2115test "peer type resolution: C pointer and many pointer" {
2133 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO2116 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
2134 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO2117 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
2135 if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest; // TODO
2136 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO2118 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
2137 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest; // TODO2119 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest; // TODO
21382120
...@@ -2155,7 +2137,6 @@ test "peer type resolution: C pointer and many pointer" {...@@ -2155,7 +2137,6 @@ test "peer type resolution: C pointer and many pointer" {
2155test "peer type resolution: pointer attributes are combined correctly" {2137test "peer type resolution: pointer attributes are combined correctly" {
2156 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO2138 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
2157 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO2139 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
2158 if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest; // TODO
2159 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO2140 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
2160 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest; // TODO2141 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest; // TODO
21612142
...@@ -2199,7 +2180,6 @@ test "peer type resolution: pointer attributes are combined correctly" {...@@ -2199,7 +2180,6 @@ test "peer type resolution: pointer attributes are combined correctly" {
2199test "cast builtins can wrap result in optional" {2180test "cast builtins can wrap result in optional" {
2200 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO2181 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
2201 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO2182 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
2202 if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest; // TODO
2203 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO2183 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
2204 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest; // TODO2184 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest; // TODO
22052185
...@@ -2238,7 +2218,6 @@ test "cast builtins can wrap result in optional" {...@@ -2238,7 +2218,6 @@ test "cast builtins can wrap result in optional" {
2238test "cast builtins can wrap result in error union" {2218test "cast builtins can wrap result in error union" {
2239 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO2219 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
2240 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO2220 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
2241 if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest; // TODO
2242 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO2221 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
22432222
2244 const S = struct {2223 const S = struct {
...@@ -2277,7 +2256,6 @@ test "cast builtins can wrap result in error union" {...@@ -2277,7 +2256,6 @@ test "cast builtins can wrap result in error union" {
2277test "cast builtins can wrap result in error union and optional" {2256test "cast builtins can wrap result in error union and optional" {
2278 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO2257 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
2279 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO2258 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
2280 if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest; // TODO
2281 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO2259 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
2282 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest; // TODO2260 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest; // TODO
22832261
...@@ -2443,7 +2421,6 @@ test "@intFromBool on vector" {...@@ -2443,7 +2421,6 @@ test "@intFromBool on vector" {
2443}2421}
24442422
2445test "numeric coercions with undefined" {2423test "numeric coercions with undefined" {
2446 if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest;
2447 if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest;2424 if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest;
2448 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;2425 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
24492426
...@@ -2465,7 +2442,6 @@ test "15-bit int to float" {...@@ -2465,7 +2442,6 @@ test "15-bit int to float" {
2465}2442}
24662443
2467test "@as does not corrupt values with incompatible representations" {2444test "@as does not corrupt values with incompatible representations" {
2468 if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest; // TODO
2469 if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO2445 if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO
2470 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO2446 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
2471 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO2447 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
...@@ -2483,7 +2459,6 @@ test "@as does not corrupt values with incompatible representations" {...@@ -2483,7 +2459,6 @@ test "@as does not corrupt values with incompatible representations" {
2483}2459}
24842460
2485test "result information is preserved through many nested structures" {2461test "result information is preserved through many nested structures" {
2486 if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest; // TODO
2487 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO2462 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
2488 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO2463 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
2489 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO2464 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
test/behavior/int_div.zig-1
...@@ -4,7 +4,6 @@ const expect = std.testing.expect;...@@ -4,7 +4,6 @@ const expect = std.testing.expect;
44
5test "integer division" {5test "integer division" {
6 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;6 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;
7 if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest;
8 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest;7 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest;
9 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO8 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
109
test/behavior/math.zig-1
...@@ -409,7 +409,6 @@ fn testBinaryNot128(comptime Type: type, x: Type) !void {...@@ -409,7 +409,6 @@ fn testBinaryNot128(comptime Type: type, x: Type) !void {
409}409}
410410
411test "division" {411test "division" {
412 if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest; // TODO
413 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO412 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
414 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO413 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
415 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO414 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
test/behavior/pointers.zig-2
...@@ -190,7 +190,6 @@ test "compare equality of optional and non-optional pointer" {...@@ -190,7 +190,6 @@ test "compare equality of optional and non-optional pointer" {
190190
191test "allowzero pointer and slice" {191test "allowzero pointer and slice" {
192 if (builtin.zig_backend == .stage2_c) return error.SkipZigTest; // TODO192 if (builtin.zig_backend == .stage2_c) return error.SkipZigTest; // TODO
193 if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest; // TODO
194 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest;193 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest;
195 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO194 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
196 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;195 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
...@@ -347,7 +346,6 @@ test "pointer sentinel with optional element" {...@@ -347,7 +346,6 @@ test "pointer sentinel with optional element" {
347test "pointer sentinel with +inf" {346test "pointer sentinel with +inf" {
348 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;347 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;
349 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO348 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
350 if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest; // TODO
351 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO349 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
352350
353 const S = struct {351 const S = struct {
test/behavior/struct.zig-3
...@@ -1091,7 +1091,6 @@ test "type coercion of pointer to anon struct literal to pointer to struct" {...@@ -1091,7 +1091,6 @@ test "type coercion of pointer to anon struct literal to pointer to struct" {
10911091
1092test "packed struct with undefined initializers" {1092test "packed struct with undefined initializers" {
1093 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;1093 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;
1094 if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest; // TODO
1095 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO1094 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
1096 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO1095 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
1097 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;1096 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
...@@ -1650,7 +1649,6 @@ test "instantiate struct with comptime field" {...@@ -1650,7 +1649,6 @@ test "instantiate struct with comptime field" {
16501649
1651test "struct field pointer has correct alignment" {1650test "struct field pointer has correct alignment" {
1652 if (builtin.zig_backend == .stage2_c) return error.SkipZigTest; // TODO1651 if (builtin.zig_backend == .stage2_c) return error.SkipZigTest; // TODO
1653 if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest; // TODO
1654 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO1652 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
1655 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO1653 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
1656 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO1654 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
...@@ -1682,7 +1680,6 @@ test "struct field pointer has correct alignment" {...@@ -1682,7 +1680,6 @@ test "struct field pointer has correct alignment" {
16821680
1683test "extern struct field pointer has correct alignment" {1681test "extern struct field pointer has correct alignment" {
1684 if (builtin.zig_backend == .stage2_c) return error.SkipZigTest; // TODO1682 if (builtin.zig_backend == .stage2_c) return error.SkipZigTest; // TODO
1685 if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest; // TODO
1686 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO1683 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
1687 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO1684 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
1688 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO1685 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
test/behavior/translate_c_macros.zig-7
...@@ -54,7 +54,6 @@ test "reference to a struct type" {...@@ -54,7 +54,6 @@ test "reference to a struct type" {
54}54}
5555
56test "cast negative integer to pointer" {56test "cast negative integer to pointer" {
57 if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest; // TODO
58 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO57 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
59 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO58 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
60 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO59 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
...@@ -64,7 +63,6 @@ test "cast negative integer to pointer" {...@@ -64,7 +63,6 @@ test "cast negative integer to pointer" {
64}63}
6564
66test "casting to union with a macro" {65test "casting to union with a macro" {
67 if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest; // TODO
68 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO66 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
69 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO67 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
70 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO68 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
...@@ -81,7 +79,6 @@ test "casting to union with a macro" {...@@ -81,7 +79,6 @@ test "casting to union with a macro" {
81}79}
8280
83test "casting or calling a value with a paren-surrounded macro" {81test "casting or calling a value with a paren-surrounded macro" {
84 if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest; // TODO
85 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO82 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
86 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO83 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
87 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO84 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
...@@ -101,7 +98,6 @@ test "casting or calling a value with a paren-surrounded macro" {...@@ -101,7 +98,6 @@ test "casting or calling a value with a paren-surrounded macro" {
101}98}
10299
103test "nested comma operator" {100test "nested comma operator" {
104 if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest; // TODO
105 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO101 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
106 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO102 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
107 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO103 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
...@@ -112,7 +108,6 @@ test "nested comma operator" {...@@ -112,7 +108,6 @@ test "nested comma operator" {
112}108}
113109
114test "cast functions" {110test "cast functions" {
115 if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest; // TODO
116 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO111 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
117 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO112 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
118 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO113 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
...@@ -136,7 +131,6 @@ test "large integer macro" {...@@ -136,7 +131,6 @@ test "large integer macro" {
136}131}
137132
138test "string literal macro with embedded tab character" {133test "string literal macro with embedded tab character" {
139 if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest; // TODO
140 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO134 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
141 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO135 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
142 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO136 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
...@@ -146,7 +140,6 @@ test "string literal macro with embedded tab character" {...@@ -146,7 +140,6 @@ test "string literal macro with embedded tab character" {
146}140}
147141
148test "string and char literals that are not UTF-8 encoded. Issue #12784" {142test "string and char literals that are not UTF-8 encoded. Issue #12784" {
149 if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest; // TODO
150 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO143 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
151 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO144 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
152 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO145 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
test/behavior/tuple.zig-2
...@@ -379,7 +379,6 @@ test "tuple of struct concatenation and coercion to array" {...@@ -379,7 +379,6 @@ test "tuple of struct concatenation and coercion to array" {
379 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;379 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;
380 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest;380 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest;
381 if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest;381 if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest;
382 if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest;
383 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO382 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
384 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;383 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
385384
...@@ -456,7 +455,6 @@ test "coerce anon tuple to tuple" {...@@ -456,7 +455,6 @@ test "coerce anon tuple to tuple" {
456 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO455 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
457 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO456 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
458 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest; // TODO457 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest; // TODO
459 if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest;
460458
461 var x: u8 = 1;459 var x: u8 = 1;
462 var y: u16 = 2;460 var y: u16 = 2;
test/behavior/type.zig-2
...@@ -199,7 +199,6 @@ test "Type.ErrorUnion" {...@@ -199,7 +199,6 @@ test "Type.ErrorUnion" {
199}199}
200200
201test "Type.Opaque" {201test "Type.Opaque" {
202 if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest; // TODO
203 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO202 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
204 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO203 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
205 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO204 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
...@@ -383,7 +382,6 @@ test "Type.Enum" {...@@ -383,7 +382,6 @@ test "Type.Enum" {
383}382}
384383
385test "Type.Union" {384test "Type.Union" {
386 if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest; // TODO
387 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO385 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
388 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO386 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
389 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;387 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
test/behavior/union.zig-3
...@@ -1534,7 +1534,6 @@ test "coerce enum literal to union in result loc" {...@@ -1534,7 +1534,6 @@ test "coerce enum literal to union in result loc" {
15341534
1535test "defined-layout union field pointer has correct alignment" {1535test "defined-layout union field pointer has correct alignment" {
1536 if (builtin.zig_backend == .stage2_c) return error.SkipZigTest; // TODO1536 if (builtin.zig_backend == .stage2_c) return error.SkipZigTest; // TODO
1537 if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest; // TODO
1538 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO1537 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
1539 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO1538 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
1540 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO1539 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
...@@ -1571,7 +1570,6 @@ test "defined-layout union field pointer has correct alignment" {...@@ -1571,7 +1570,6 @@ test "defined-layout union field pointer has correct alignment" {
15711570
1572test "undefined-layout union field pointer has correct alignment" {1571test "undefined-layout union field pointer has correct alignment" {
1573 if (builtin.zig_backend == .stage2_c) return error.SkipZigTest; // TODO1572 if (builtin.zig_backend == .stage2_c) return error.SkipZigTest; // TODO
1574 if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest; // TODO
1575 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO1573 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
1576 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO1574 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
1577 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO1575 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
...@@ -1608,7 +1606,6 @@ test "undefined-layout union field pointer has correct alignment" {...@@ -1608,7 +1606,6 @@ test "undefined-layout union field pointer has correct alignment" {
16081606
1609test "packed union field pointer has correct alignment" {1607test "packed union field pointer has correct alignment" {
1610 if (builtin.zig_backend == .stage2_c) return error.SkipZigTest; // TODO1608 if (builtin.zig_backend == .stage2_c) return error.SkipZigTest; // TODO
1611 if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest; // TODO
1612 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO1609 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
1613 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO1610 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
1614 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO1611 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO