| author | |
| committer | |
| log | aea3460cf5a7f0bf03f09181bd6352ea5818d00e |
| tree | 8cdef5054989654ef2253d14793bc594a74d5128 |
| parent | a70cbe779adb11faeb88ceffad0cfa729d2eec6e |
| parent | 485082064aa3dee6cffec8db9f8146f1cf2aefbc |
| signature |
stage2 AArch64: small improvements27 files changed, 28 insertions(+), 105 deletions(-)
src/arch/aarch64/CodeGen.zig+18-3| ... | @@ -4043,9 +4043,24 @@ fn airStructFieldVal(self: *Self, inst: Air.Inst.Index) !void { | ... | @@ -4043,9 +4043,24 @@ fn airStructFieldVal(self: *Self, inst: Air.Inst.Index) !void { |
| 4043 | 4043 | ||
| 4044 | fn airFieldParentPtr(self: *Self, inst: Air.Inst.Index) !void { | 4044 | fn airFieldParentPtr(self: *Self, inst: Air.Inst.Index) !void { |
| 4045 | const ty_pl = self.air.instructions.items(.data)[inst].ty_pl; | 4045 | const ty_pl = self.air.instructions.items(.data)[inst].ty_pl; |
| 4046 | const extra = self.air.extraData(Air.StructField, ty_pl.payload).data; | 4046 | const extra = self.air.extraData(Air.FieldParentPtr, ty_pl.payload).data; |
| 4047 | _ = extra; | 4047 | const result: MCValue = if (self.liveness.isUnused(inst)) .dead else result: { |
| 4048 | return self.fail("TODO implement codegen airFieldParentPtr", .{}); | 4048 | const field_ptr = try self.resolveInst(extra.field_ptr); |
| 4049 | const struct_ty = self.air.getRefType(ty_pl.ty).childType(); | ||
| 4050 | const struct_field_offset = @intCast(u32, struct_ty.structFieldOffset(extra.field_index, self.target.*)); | ||
| 4051 | switch (field_ptr) { | ||
| 4052 | .ptr_stack_offset => |off| { | ||
| 4053 | break :result MCValue{ .ptr_stack_offset = off + struct_field_offset }; | ||
| 4054 | }, | ||
| 4055 | else => { | ||
| 4056 | const lhs_bind: ReadArg.Bind = .{ .mcv = field_ptr }; | ||
| 4057 | const rhs_bind: ReadArg.Bind = .{ .mcv = .{ .immediate = struct_field_offset } }; | ||
| 4058 | |||
| 4059 | break :result try self.addSub(.sub, lhs_bind, rhs_bind, Type.usize, Type.usize, null); | ||
| 4060 | }, | ||
| 4061 | } | ||
| 4062 | }; | ||
| 4063 | return self.finishAir(inst, result, .{ extra.field_ptr, .none, .none }); | ||
| 4049 | } | 4064 | } |
| 4050 | 4065 | ||
| 4051 | fn airArg(self: *Self, inst: Air.Inst.Index) !void { | 4066 | fn airArg(self: *Self, inst: Air.Inst.Index) !void { |
src/arch/aarch64/abi.zig+7-16| ... | @@ -136,19 +136,10 @@ pub fn getFloatArrayType(ty: Type) ?Type { | ... | @@ -136,19 +136,10 @@ pub fn getFloatArrayType(ty: Type) ?Type { |
| 136 | } | 136 | } |
| 137 | } | 137 | } |
| 138 | 138 | ||
| 139 | const callee_preserved_regs_impl = if (builtin.os.tag.isDarwin()) struct { | 139 | pub const callee_preserved_regs = [_]Register{ |
| 140 | pub const callee_preserved_regs = [_]Register{ | 140 | .x19, .x20, .x21, .x22, .x23, |
| 141 | .x20, .x21, .x22, .x23, | 141 | .x24, .x25, .x26, .x27, .x28, |
| 142 | .x24, .x25, .x26, .x27, | ||
| 143 | .x28, | ||
| 144 | }; | ||
| 145 | } else struct { | ||
| 146 | pub const callee_preserved_regs = [_]Register{ | ||
| 147 | .x19, .x20, .x21, .x22, .x23, | ||
| 148 | .x24, .x25, .x26, .x27, .x28, | ||
| 149 | }; | ||
| 150 | }; | 142 | }; |
| 151 | pub const callee_preserved_regs = callee_preserved_regs_impl.callee_preserved_regs; | ||
| 152 | 143 | ||
| 153 | pub const c_abi_int_param_regs = [_]Register{ .x0, .x1, .x2, .x3, .x4, .x5, .x6, .x7 }; | 144 | pub const c_abi_int_param_regs = [_]Register{ .x0, .x1, .x2, .x3, .x4, .x5, .x6, .x7 }; |
| 154 | pub const c_abi_int_return_regs = [_]Register{ .x0, .x1, .x2, .x3, .x4, .x5, .x6, .x7 }; | 145 | pub const c_abi_int_return_regs = [_]Register{ .x0, .x1, .x2, .x3, .x4, .x5, .x6, .x7 }; |
| ... | @@ -161,10 +152,10 @@ const RegisterBitSet = RegisterManager.RegisterBitSet; | ... | @@ -161,10 +152,10 @@ const RegisterBitSet = RegisterManager.RegisterBitSet; |
| 161 | pub const RegisterClass = struct { | 152 | pub const RegisterClass = struct { |
| 162 | pub const gp: RegisterBitSet = blk: { | 153 | pub const gp: RegisterBitSet = blk: { |
| 163 | var set = RegisterBitSet.initEmpty(); | 154 | var set = RegisterBitSet.initEmpty(); |
| 164 | set.setRangeValue(.{ | 155 | for (callee_preserved_regs) |reg| { |
| 165 | .start = 0, | 156 | const index = RegisterManager.indexOfRegIntoTracked(reg).?; |
| 166 | .end = callee_preserved_regs.len, | 157 | set.set(index); |
| 167 | }, true); | 158 | } |
| 168 | break :blk set; | 159 | break :blk set; |
| 169 | }; | 160 | }; |
| 170 | }; | 161 | }; |
src/arch/aarch64/bits.zig+3-1| ... | @@ -4,13 +4,15 @@ const DW = std.dwarf; | ... | @@ -4,13 +4,15 @@ const DW = std.dwarf; |
| 4 | const assert = std.debug.assert; | 4 | const assert = std.debug.assert; |
| 5 | const testing = std.testing; | 5 | const testing = std.testing; |
| 6 | 6 | ||
| 7 | /// Disjoint sets of registers. Every register must belong to | ||
| 8 | /// exactly one register class. | ||
| 7 | pub const RegisterClass = enum { | 9 | pub const RegisterClass = enum { |
| 8 | general_purpose, | 10 | general_purpose, |
| 9 | stack_pointer, | 11 | stack_pointer, |
| 10 | floating_point, | 12 | floating_point, |
| 11 | }; | 13 | }; |
| 12 | 14 | ||
| 13 | /// General purpose registers in the AArch64 instruction set | 15 | /// Registers in the AArch64 instruction set |
| 14 | pub const Register = enum(u8) { | 16 | pub const Register = enum(u8) { |
| 15 | // zig fmt: off | 17 | // zig fmt: off |
| 16 | // 64-bit general-purpose registers | 18 | // 64-bit general-purpose registers |
test/behavior/alignof.zig-1| ... | @@ -11,7 +11,6 @@ const Foo = struct { | ... | @@ -11,7 +11,6 @@ const Foo = struct { |
| 11 | }; | 11 | }; |
| 12 | 12 | ||
| 13 | test "@alignOf(T) before referencing T" { | 13 | test "@alignOf(T) before referencing T" { |
| 14 | if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; | ||
| 15 | comptime try expect(@alignOf(Foo) != maxInt(usize)); | 14 | comptime try expect(@alignOf(Foo) != maxInt(usize)); |
| 16 | if (native_arch == .x86_64) { | 15 | if (native_arch == .x86_64) { |
| 17 | comptime try expect(@alignOf(Foo) == 4); | 16 | comptime try expect(@alignOf(Foo) == 4); |
test/behavior/basic.zig-16| ... | @@ -113,21 +113,18 @@ fn first4KeysOfHomeRow() []const u8 { | ... | @@ -113,21 +113,18 @@ fn first4KeysOfHomeRow() []const u8 { |
| 113 | } | 113 | } |
| 114 | 114 | ||
| 115 | test "return string from function" { | 115 | test "return string from function" { |
| 116 | if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; | ||
| 117 | if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO | 116 | if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO |
| 118 | 117 | ||
| 119 | try expect(mem.eql(u8, first4KeysOfHomeRow(), "aoeu")); | 118 | try expect(mem.eql(u8, first4KeysOfHomeRow(), "aoeu")); |
| 120 | } | 119 | } |
| 121 | 120 | ||
| 122 | test "hex escape" { | 121 | test "hex escape" { |
| 123 | if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; | ||
| 124 | if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO | 122 | if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO |
| 125 | 123 | ||
| 126 | try expect(mem.eql(u8, "\x68\x65\x6c\x6c\x6f", "hello")); | 124 | try expect(mem.eql(u8, "\x68\x65\x6c\x6c\x6f", "hello")); |
| 127 | } | 125 | } |
| 128 | 126 | ||
| 129 | test "multiline string" { | 127 | test "multiline string" { |
| 130 | if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; | ||
| 131 | if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO | 128 | if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO |
| 132 | 129 | ||
| 133 | const s1 = | 130 | const s1 = |
| ... | @@ -140,7 +137,6 @@ test "multiline string" { | ... | @@ -140,7 +137,6 @@ test "multiline string" { |
| 140 | } | 137 | } |
| 141 | 138 | ||
| 142 | test "multiline string comments at start" { | 139 | test "multiline string comments at start" { |
| 143 | if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; | ||
| 144 | if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO | 140 | if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO |
| 145 | 141 | ||
| 146 | const s1 = | 142 | const s1 = |
| ... | @@ -153,7 +149,6 @@ test "multiline string comments at start" { | ... | @@ -153,7 +149,6 @@ test "multiline string comments at start" { |
| 153 | } | 149 | } |
| 154 | 150 | ||
| 155 | test "multiline string comments at end" { | 151 | test "multiline string comments at end" { |
| 156 | if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; | ||
| 157 | if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO | 152 | if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO |
| 158 | 153 | ||
| 159 | const s1 = | 154 | const s1 = |
| ... | @@ -166,7 +161,6 @@ test "multiline string comments at end" { | ... | @@ -166,7 +161,6 @@ test "multiline string comments at end" { |
| 166 | } | 161 | } |
| 167 | 162 | ||
| 168 | test "multiline string comments in middle" { | 163 | test "multiline string comments in middle" { |
| 169 | if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; | ||
| 170 | if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO | 164 | if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO |
| 171 | 165 | ||
| 172 | const s1 = | 166 | const s1 = |
| ... | @@ -179,7 +173,6 @@ test "multiline string comments in middle" { | ... | @@ -179,7 +173,6 @@ test "multiline string comments in middle" { |
| 179 | } | 173 | } |
| 180 | 174 | ||
| 181 | test "multiline string comments at multiple places" { | 175 | test "multiline string comments at multiple places" { |
| 182 | if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; | ||
| 183 | if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO | 176 | if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO |
| 184 | 177 | ||
| 185 | const s1 = | 178 | const s1 = |
| ... | @@ -198,7 +191,6 @@ test "string concatenation" { | ... | @@ -198,7 +191,6 @@ test "string concatenation" { |
| 198 | } | 191 | } |
| 199 | 192 | ||
| 200 | test "array mult operator" { | 193 | test "array mult operator" { |
| 201 | if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; | ||
| 202 | if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO | 194 | if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO |
| 203 | 195 | ||
| 204 | try expect(mem.eql(u8, "ab" ** 5, "ababababab")); | 196 | try expect(mem.eql(u8, "ab" ** 5, "ababababab")); |
| ... | @@ -208,7 +200,6 @@ const OpaqueA = opaque {}; | ... | @@ -208,7 +200,6 @@ const OpaqueA = opaque {}; |
| 208 | const OpaqueB = opaque {}; | 200 | const OpaqueB = opaque {}; |
| 209 | 201 | ||
| 210 | test "opaque types" { | 202 | test "opaque types" { |
| 211 | if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO | ||
| 212 | if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO | 203 | if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO |
| 213 | 204 | ||
| 214 | try expect(*OpaqueA != *OpaqueB); | 205 | try expect(*OpaqueA != *OpaqueB); |
| ... | @@ -226,7 +217,6 @@ test "compile time global reinterpret" { | ... | @@ -226,7 +217,6 @@ test "compile time global reinterpret" { |
| 226 | } | 217 | } |
| 227 | 218 | ||
| 228 | test "cast undefined" { | 219 | test "cast undefined" { |
| 229 | if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; | ||
| 230 | if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO | 220 | if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO |
| 231 | 221 | ||
| 232 | const array: [100]u8 = undefined; | 222 | const array: [100]u8 = undefined; |
| ... | @@ -238,7 +228,6 @@ fn testCastUndefined(x: []const u8) void { | ... | @@ -238,7 +228,6 @@ fn testCastUndefined(x: []const u8) void { |
| 238 | } | 228 | } |
| 239 | 229 | ||
| 240 | test "implicit cast after unreachable" { | 230 | test "implicit cast after unreachable" { |
| 241 | if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; | ||
| 242 | if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; | 231 | if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; |
| 243 | if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO | 232 | if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO |
| 244 | 233 | ||
| ... | @@ -297,7 +286,6 @@ fn fB() []const u8 { | ... | @@ -297,7 +286,6 @@ fn fB() []const u8 { |
| 297 | } | 286 | } |
| 298 | 287 | ||
| 299 | test "call function pointer in struct" { | 288 | test "call function pointer in struct" { |
| 300 | if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; | ||
| 301 | if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO | 289 | if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO |
| 302 | 290 | ||
| 303 | try expect(mem.eql(u8, f3(true), "a")); | 291 | try expect(mem.eql(u8, f3(true), "a")); |
| ... | @@ -459,7 +447,6 @@ fn testArray2DConstDoublePtr(ptr: *const f32) !void { | ... | @@ -459,7 +447,6 @@ fn testArray2DConstDoublePtr(ptr: *const f32) !void { |
| 459 | } | 447 | } |
| 460 | 448 | ||
| 461 | test "double implicit cast in same expression" { | 449 | test "double implicit cast in same expression" { |
| 462 | if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; | ||
| 463 | if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO | 450 | if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO |
| 464 | 451 | ||
| 465 | var x = @as(i32, @as(u16, nine())); | 452 | var x = @as(i32, @as(u16, nine())); |
| ... | @@ -492,7 +479,6 @@ fn testStructInFn() !void { | ... | @@ -492,7 +479,6 @@ fn testStructInFn() !void { |
| 492 | } | 479 | } |
| 493 | 480 | ||
| 494 | test "fn call returning scalar optional in equality expression" { | 481 | test "fn call returning scalar optional in equality expression" { |
| 495 | if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; | ||
| 496 | if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO | 482 | if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO |
| 497 | try expect(getNull() == null); | 483 | try expect(getNull() == null); |
| 498 | } | 484 | } |
| ... | @@ -502,7 +488,6 @@ fn getNull() ?*i32 { | ... | @@ -502,7 +488,6 @@ fn getNull() ?*i32 { |
| 502 | } | 488 | } |
| 503 | 489 | ||
| 504 | test "global variable assignment with optional unwrapping with var initialized to undefined" { | 490 | test "global variable assignment with optional unwrapping with var initialized to undefined" { |
| 505 | if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; | ||
| 506 | if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; | 491 | if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; |
| 507 | if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO | 492 | if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO |
| 508 | 493 | ||
| ... | @@ -628,7 +613,6 @@ var gdt = [_]GDTEntry{ | ... | @@ -628,7 +613,6 @@ var gdt = [_]GDTEntry{ |
| 628 | var global_ptr = &gdt[0]; | 613 | var global_ptr = &gdt[0]; |
| 629 | 614 | ||
| 630 | test "global constant is loaded with a runtime-known index" { | 615 | test "global constant is loaded with a runtime-known index" { |
| 631 | if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; | ||
| 632 | if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO | 616 | if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO |
| 633 | 617 | ||
| 634 | const S = struct { | 618 | const S = struct { |
test/behavior/bitcast.zig-1| ... | @@ -239,7 +239,6 @@ test "bitcast packed struct to integer and back" { | ... | @@ -239,7 +239,6 @@ test "bitcast packed struct to integer and back" { |
| 239 | } | 239 | } |
| 240 | 240 | ||
| 241 | test "implicit cast to error union by returning" { | 241 | test "implicit cast to error union by returning" { |
| 242 | if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; | ||
| 243 | if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; | 242 | if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; |
| 244 | if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO | 243 | if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO |
| 245 | 244 |
test/behavior/byval_arg_var.zig-1| ... | @@ -5,7 +5,6 @@ var result: []const u8 = "wrong"; | ... | @@ -5,7 +5,6 @@ var result: []const u8 = "wrong"; |
| 5 | 5 | ||
| 6 | test "pass string literal byvalue to a generic var param" { | 6 | test "pass string literal byvalue to a generic var param" { |
| 7 | if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; | 7 | if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; |
| 8 | if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; | ||
| 9 | if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO | 8 | if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO |
| 10 | 9 | ||
| 11 | start(); | 10 | start(); |
test/behavior/call.zig-1| ... | @@ -107,7 +107,6 @@ test "result location of function call argument through runtime condition and st | ... | @@ -107,7 +107,6 @@ test "result location of function call argument through runtime condition and st |
| 107 | } | 107 | } |
| 108 | 108 | ||
| 109 | test "function call with 40 arguments" { | 109 | test "function call with 40 arguments" { |
| 110 | if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO | ||
| 111 | if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO | 110 | if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO |
| 112 | 111 | ||
| 113 | const S = struct { | 112 | const S = struct { |
test/behavior/error.zig-13| ... | @@ -29,7 +29,6 @@ fn shouldBeNotEqual(a: anyerror, b: anyerror) void { | ... | @@ -29,7 +29,6 @@ fn shouldBeNotEqual(a: anyerror, b: anyerror) void { |
| 29 | } | 29 | } |
| 30 | 30 | ||
| 31 | test "error binary operator" { | 31 | test "error binary operator" { |
| 32 | if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; | ||
| 33 | if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO | 32 | if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO |
| 34 | 33 | ||
| 35 | const a = errBinaryOperatorG(true) catch 3; | 34 | const a = errBinaryOperatorG(true) catch 3; |
| ... | @@ -68,7 +67,6 @@ test "error wrapping" { | ... | @@ -68,7 +67,6 @@ test "error wrapping" { |
| 68 | } | 67 | } |
| 69 | 68 | ||
| 70 | test "unwrap simple value from error" { | 69 | test "unwrap simple value from error" { |
| 71 | if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; | ||
| 72 | if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO | 70 | if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO |
| 73 | 71 | ||
| 74 | const i = unwrapSimpleValueFromErrorDo() catch unreachable; | 72 | const i = unwrapSimpleValueFromErrorDo() catch unreachable; |
| ... | @@ -128,7 +126,6 @@ test "debug info for optional error set" { | ... | @@ -128,7 +126,6 @@ test "debug info for optional error set" { |
| 128 | } | 126 | } |
| 129 | 127 | ||
| 130 | test "implicit cast to optional to error union to return result loc" { | 128 | test "implicit cast to optional to error union to return result loc" { |
| 131 | if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; | ||
| 132 | if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO | 129 | if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO |
| 133 | 130 | ||
| 134 | const S = struct { | 131 | const S = struct { |
| ... | @@ -151,7 +148,6 @@ test "implicit cast to optional to error union to return result loc" { | ... | @@ -151,7 +148,6 @@ test "implicit cast to optional to error union to return result loc" { |
| 151 | 148 | ||
| 152 | test "fn returning empty error set can be passed as fn returning any error" { | 149 | test "fn returning empty error set can be passed as fn returning any error" { |
| 153 | if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO | 150 | if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO |
| 154 | if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO | ||
| 155 | 151 | ||
| 156 | entry(); | 152 | entry(); |
| 157 | comptime entry(); | 153 | comptime entry(); |
| ... | @@ -159,7 +155,6 @@ test "fn returning empty error set can be passed as fn returning any error" { | ... | @@ -159,7 +155,6 @@ test "fn returning empty error set can be passed as fn returning any error" { |
| 159 | 155 | ||
| 160 | test "fn returning empty error set can be passed as fn returning any error - pointer" { | 156 | test "fn returning empty error set can be passed as fn returning any error - pointer" { |
| 161 | if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO | 157 | if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO |
| 162 | if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO | ||
| 163 | 158 | ||
| 164 | entryPtr(); | 159 | entryPtr(); |
| 165 | comptime entryPtr(); | 160 | comptime entryPtr(); |
| ... | @@ -228,7 +223,6 @@ fn testErrorSetType() !void { | ... | @@ -228,7 +223,6 @@ fn testErrorSetType() !void { |
| 228 | 223 | ||
| 229 | test "explicit error set cast" { | 224 | test "explicit error set cast" { |
| 230 | if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO | 225 | if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO |
| 231 | if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO | ||
| 232 | if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO | 226 | if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO |
| 233 | 227 | ||
| 234 | try testExplicitErrorSetCast(Set1.A); | 228 | try testExplicitErrorSetCast(Set1.A); |
| ... | @@ -248,7 +242,6 @@ fn testExplicitErrorSetCast(set1: Set1) !void { | ... | @@ -248,7 +242,6 @@ fn testExplicitErrorSetCast(set1: Set1) !void { |
| 248 | 242 | ||
| 249 | test "comptime test error for empty error set" { | 243 | test "comptime test error for empty error set" { |
| 250 | if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO | 244 | if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO |
| 251 | if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO | ||
| 252 | if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO | 245 | if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO |
| 253 | 246 | ||
| 254 | try testComptimeTestErrorEmptySet(1234); | 247 | try testComptimeTestErrorEmptySet(1234); |
| ... | @@ -266,7 +259,6 @@ fn testComptimeTestErrorEmptySet(x: EmptyErrorSet!i32) !void { | ... | @@ -266,7 +259,6 @@ fn testComptimeTestErrorEmptySet(x: EmptyErrorSet!i32) !void { |
| 266 | 259 | ||
| 267 | test "comptime err to int of error set with only 1 possible value" { | 260 | test "comptime err to int of error set with only 1 possible value" { |
| 268 | if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO | 261 | if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO |
| 269 | if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO | ||
| 270 | 262 | ||
| 271 | testErrToIntWithOnePossibleValue(error.A, @errorToInt(error.A)); | 263 | testErrToIntWithOnePossibleValue(error.A, @errorToInt(error.A)); |
| 272 | comptime testErrToIntWithOnePossibleValue(error.A, @errorToInt(error.A)); | 264 | comptime testErrToIntWithOnePossibleValue(error.A, @errorToInt(error.A)); |
| ... | @@ -309,7 +301,6 @@ test "error inference with an empty set" { | ... | @@ -309,7 +301,6 @@ test "error inference with an empty set" { |
| 309 | } | 301 | } |
| 310 | 302 | ||
| 311 | test "error union peer type resolution" { | 303 | test "error union peer type resolution" { |
| 312 | if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO | ||
| 313 | if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO | 304 | if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO |
| 314 | 305 | ||
| 315 | try testErrorUnionPeerTypeResolution(1); | 306 | try testErrorUnionPeerTypeResolution(1); |
| ... | @@ -341,7 +332,6 @@ fn quux_1() !i32 { | ... | @@ -341,7 +332,6 @@ fn quux_1() !i32 { |
| 341 | } | 332 | } |
| 342 | 333 | ||
| 343 | test "error: Zero sized error set returned with value payload crash" { | 334 | test "error: Zero sized error set returned with value payload crash" { |
| 344 | if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; | ||
| 345 | if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO | 335 | if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO |
| 346 | 336 | ||
| 347 | _ = try foo3(0); | 337 | _ = try foo3(0); |
| ... | @@ -354,7 +344,6 @@ fn foo3(b: usize) Error!usize { | ... | @@ -354,7 +344,6 @@ fn foo3(b: usize) Error!usize { |
| 354 | } | 344 | } |
| 355 | 345 | ||
| 356 | test "error: Infer error set from literals" { | 346 | test "error: Infer error set from literals" { |
| 357 | if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; | ||
| 358 | if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO | 347 | if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO |
| 359 | 348 | ||
| 360 | _ = nullLiteral("n") catch |err| handleErrors(err); | 349 | _ = nullLiteral("n") catch |err| handleErrors(err); |
| ... | @@ -501,7 +490,6 @@ test "nested catch" { | ... | @@ -501,7 +490,6 @@ test "nested catch" { |
| 501 | 490 | ||
| 502 | test "function pointer with return type that is error union with payload which is pointer of parent struct" { | 491 | test "function pointer with return type that is error union with payload which is pointer of parent struct" { |
| 503 | if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO | 492 | if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO |
| 504 | if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO | ||
| 505 | if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO | 493 | if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO |
| 506 | 494 | ||
| 507 | const S = struct { | 495 | const S = struct { |
| ... | @@ -632,7 +620,6 @@ test "error set equality" { | ... | @@ -632,7 +620,6 @@ test "error set equality" { |
| 632 | } | 620 | } |
| 633 | 621 | ||
| 634 | test "inferred error set equality" { | 622 | test "inferred error set equality" { |
| 635 | if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO | ||
| 636 | if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO | 623 | if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO |
| 637 | 624 | ||
| 638 | const S = struct { | 625 | const S = struct { |
test/behavior/field_parent_ptr.zig-2| ... | @@ -2,7 +2,6 @@ const expect = @import("std").testing.expect; | ... | @@ -2,7 +2,6 @@ const expect = @import("std").testing.expect; |
| 2 | const builtin = @import("builtin"); | 2 | const builtin = @import("builtin"); |
| 3 | 3 | ||
| 4 | test "@fieldParentPtr non-first field" { | 4 | test "@fieldParentPtr non-first field" { |
| 5 | if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; | ||
| 6 | if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; | 5 | if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; |
| 7 | if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO | 6 | if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO |
| 8 | try testParentFieldPtr(&foo.c); | 7 | try testParentFieldPtr(&foo.c); |
| ... | @@ -10,7 +9,6 @@ test "@fieldParentPtr non-first field" { | ... | @@ -10,7 +9,6 @@ test "@fieldParentPtr non-first field" { |
| 10 | } | 9 | } |
| 11 | 10 | ||
| 12 | test "@fieldParentPtr first field" { | 11 | test "@fieldParentPtr first field" { |
| 13 | if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; | ||
| 14 | if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; | 12 | if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; |
| 15 | if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO | 13 | if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO |
| 16 | try testParentFieldPtrFirst(&foo.a); | 14 | try testParentFieldPtrFirst(&foo.a); |
test/behavior/fn.zig-5| ... | @@ -145,7 +145,6 @@ fn fnWithUnreachable() noreturn { | ... | @@ -145,7 +145,6 @@ fn fnWithUnreachable() noreturn { |
| 145 | 145 | ||
| 146 | test "extern struct with stdcallcc fn pointer" { | 146 | test "extern struct with stdcallcc fn pointer" { |
| 147 | if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; | 147 | if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; |
| 148 | if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; | ||
| 149 | 148 | ||
| 150 | const S = extern struct { | 149 | const S = extern struct { |
| 151 | ptr: *const fn () callconv(if (builtin.target.cpu.arch == .x86) .Stdcall else .C) i32, | 150 | ptr: *const fn () callconv(if (builtin.target.cpu.arch == .x86) .Stdcall else .C) i32, |
| ... | @@ -196,7 +195,6 @@ fn addPointCoords(pt: Point) i32 { | ... | @@ -196,7 +195,6 @@ fn addPointCoords(pt: Point) i32 { |
| 196 | } | 195 | } |
| 197 | 196 | ||
| 198 | test "pass by non-copying value through var arg" { | 197 | test "pass by non-copying value through var arg" { |
| 199 | if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; | ||
| 200 | if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO | 198 | if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO |
| 201 | 199 | ||
| 202 | try expect((try addPointCoordsVar(Point{ .x = 1, .y = 2 })) == 3); | 200 | try expect((try addPointCoordsVar(Point{ .x = 1, .y = 2 })) == 3); |
| ... | @@ -292,7 +290,6 @@ fn voidFun(a: i32, b: void, c: i32, d: void) !void { | ... | @@ -292,7 +290,6 @@ fn voidFun(a: i32, b: void, c: i32, d: void) !void { |
| 292 | } | 290 | } |
| 293 | 291 | ||
| 294 | test "call function with empty string" { | 292 | test "call function with empty string" { |
| 295 | if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; | ||
| 296 | if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO | 293 | if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO |
| 297 | 294 | ||
| 298 | acceptsString(""); | 295 | acceptsString(""); |
| ... | @@ -410,7 +407,6 @@ test "function with inferred error set but returning no error" { | ... | @@ -410,7 +407,6 @@ test "function with inferred error set but returning no error" { |
| 410 | } | 407 | } |
| 411 | 408 | ||
| 412 | test "import passed byref to function in return type" { | 409 | test "import passed byref to function in return type" { |
| 413 | if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO | ||
| 414 | if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO | 410 | if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO |
| 415 | 411 | ||
| 416 | const S = struct { | 412 | const S = struct { |
| ... | @@ -445,7 +441,6 @@ test "implicit cast function to function ptr" { | ... | @@ -445,7 +441,6 @@ test "implicit cast function to function ptr" { |
| 445 | 441 | ||
| 446 | test "method call with optional and error union first param" { | 442 | test "method call with optional and error union first param" { |
| 447 | if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO | 443 | if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO |
| 448 | if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO | ||
| 449 | if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO | 444 | if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO |
| 450 | 445 | ||
| 451 | const S = struct { | 446 | const S = struct { |
test/behavior/if.zig-1| ... | @@ -81,7 +81,6 @@ test "const result loc, runtime if cond, else unreachable" { | ... | @@ -81,7 +81,6 @@ test "const result loc, runtime if cond, else unreachable" { |
| 81 | test "if copies its payload" { | 81 | test "if copies its payload" { |
| 82 | if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; | 82 | if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; |
| 83 | if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; | 83 | if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; |
| 84 | if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; | ||
| 85 | if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO | 84 | if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO |
| 86 | 85 | ||
| 87 | const S = struct { | 86 | const S = struct { |
test/behavior/math.zig-2| ... | @@ -9,7 +9,6 @@ const mem = std.mem; | ... | @@ -9,7 +9,6 @@ const mem = std.mem; |
| 9 | const math = std.math; | 9 | const math = std.math; |
| 10 | 10 | ||
| 11 | test "assignment operators" { | 11 | test "assignment operators" { |
| 12 | if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO | ||
| 13 | if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO | 12 | if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO |
| 14 | if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO | 13 | if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO |
| 15 | 14 | ||
| ... | @@ -546,7 +545,6 @@ fn negateWrap(comptime T: type, x: T) T { | ... | @@ -546,7 +545,6 @@ fn negateWrap(comptime T: type, x: T) T { |
| 546 | } | 545 | } |
| 547 | 546 | ||
| 548 | test "unsigned 64-bit division" { | 547 | test "unsigned 64-bit division" { |
| 549 | if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO | ||
| 550 | if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO | 548 | if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO |
| 551 | if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO | 549 | if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO |
| 552 | 550 |
test/behavior/merge_error_sets.zig-1| ... | @@ -12,7 +12,6 @@ fn foo() C!void { | ... | @@ -12,7 +12,6 @@ fn foo() C!void { |
| 12 | } | 12 | } |
| 13 | 13 | ||
| 14 | test "merge error sets" { | 14 | test "merge error sets" { |
| 15 | if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; | ||
| 16 | if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; | 15 | if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; |
| 17 | if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO | 16 | if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO |
| 18 | 17 |
test/behavior/null.zig-4| ... | @@ -73,7 +73,6 @@ fn foo(x: ?i32) ?bool { | ... | @@ -73,7 +73,6 @@ fn foo(x: ?i32) ?bool { |
| 73 | test "test null runtime" { | 73 | test "test null runtime" { |
| 74 | if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; | 74 | if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; |
| 75 | if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; | 75 | if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; |
| 76 | if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; | ||
| 77 | if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO | 76 | if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO |
| 78 | 77 | ||
| 79 | try testTestNullRuntime(null); | 78 | try testTestNullRuntime(null); |
| ... | @@ -85,7 +84,6 @@ fn testTestNullRuntime(x: ?i32) !void { | ... | @@ -85,7 +84,6 @@ fn testTestNullRuntime(x: ?i32) !void { |
| 85 | 84 | ||
| 86 | test "optional void" { | 85 | test "optional void" { |
| 87 | if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; | 86 | if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; |
| 88 | if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; | ||
| 89 | if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO | 87 | if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO |
| 90 | 88 | ||
| 91 | try optionalVoidImpl(); | 89 | try optionalVoidImpl(); |
| ... | @@ -109,7 +107,6 @@ const Empty = struct {}; | ... | @@ -109,7 +107,6 @@ const Empty = struct {}; |
| 109 | 107 | ||
| 110 | test "optional struct{}" { | 108 | test "optional struct{}" { |
| 111 | if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; | 109 | if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; |
| 112 | if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; | ||
| 113 | if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO | 110 | if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO |
| 114 | 111 | ||
| 115 | _ = try optionalEmptyStructImpl(); | 112 | _ = try optionalEmptyStructImpl(); |
| ... | @@ -135,7 +132,6 @@ test "null with default unwrap" { | ... | @@ -135,7 +132,6 @@ test "null with default unwrap" { |
| 135 | } | 132 | } |
| 136 | 133 | ||
| 137 | test "optional pointer to 0 bit type null value at runtime" { | 134 | test "optional pointer to 0 bit type null value at runtime" { |
| 138 | if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; | ||
| 139 | if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO | 135 | if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO |
| 140 | 136 | ||
| 141 | const EmptyStruct = struct {}; | 137 | const EmptyStruct = struct {}; |
test/behavior/pointers.zig-2| ... | @@ -66,7 +66,6 @@ test "initialize const optional C pointer to null" { | ... | @@ -66,7 +66,6 @@ test "initialize const optional C pointer to null" { |
| 66 | } | 66 | } |
| 67 | 67 | ||
| 68 | test "assigning integer to C pointer" { | 68 | test "assigning integer to C pointer" { |
| 69 | if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; | ||
| 70 | if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO | 69 | if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO |
| 71 | 70 | ||
| 72 | var x: i32 = 0; | 71 | var x: i32 = 0; |
| ... | @@ -193,7 +192,6 @@ test "allowzero pointer and slice" { | ... | @@ -193,7 +192,6 @@ test "allowzero pointer and slice" { |
| 193 | if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest; // TODO | 192 | if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest; // TODO |
| 194 | if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; | 193 | if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; |
| 195 | if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; | 194 | if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; |
| 196 | if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; | ||
| 197 | if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO | 195 | if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO |
| 198 | 196 | ||
| 199 | var ptr = @intToPtr([*]allowzero i32, 0); | 197 | var ptr = @intToPtr([*]allowzero i32, 0); |
test/behavior/ptrcast.zig-5| ... | @@ -4,8 +4,6 @@ const expect = std.testing.expect; | ... | @@ -4,8 +4,6 @@ const expect = std.testing.expect; |
| 4 | const native_endian = builtin.target.cpu.arch.endian(); | 4 | const native_endian = builtin.target.cpu.arch.endian(); |
| 5 | 5 | ||
| 6 | test "reinterpret bytes as integer with nonzero offset" { | 6 | test "reinterpret bytes as integer with nonzero offset" { |
| 7 | if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO | ||
| 8 | |||
| 9 | try testReinterpretBytesAsInteger(); | 7 | try testReinterpretBytesAsInteger(); |
| 10 | comptime try testReinterpretBytesAsInteger(); | 8 | comptime try testReinterpretBytesAsInteger(); |
| 11 | } | 9 | } |
| ... | @@ -38,7 +36,6 @@ fn testReinterpretWithOffsetAndNoWellDefinedLayout() !void { | ... | @@ -38,7 +36,6 @@ fn testReinterpretWithOffsetAndNoWellDefinedLayout() !void { |
| 38 | } | 36 | } |
| 39 | 37 | ||
| 40 | test "reinterpret bytes inside auto-layout struct as integer with nonzero offset" { | 38 | test "reinterpret bytes inside auto-layout struct as integer with nonzero offset" { |
| 41 | if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO | ||
| 42 | if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO | 39 | if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO |
| 43 | 40 | ||
| 44 | try testReinterpretStructWrappedBytesAsInteger(); | 41 | try testReinterpretStructWrappedBytesAsInteger(); |
| ... | @@ -173,7 +170,6 @@ test "lower reinterpreted comptime field ptr" { | ... | @@ -173,7 +170,6 @@ test "lower reinterpreted comptime field ptr" { |
| 173 | } | 170 | } |
| 174 | 171 | ||
| 175 | test "reinterpret struct field at comptime" { | 172 | test "reinterpret struct field at comptime" { |
| 176 | if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO | ||
| 177 | if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO | 173 | if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO |
| 178 | 174 | ||
| 179 | const numNative = comptime Bytes.init(0x12345678); | 175 | const numNative = comptime Bytes.init(0x12345678); |
| ... | @@ -236,7 +232,6 @@ test "ptrcast of const integer has the correct object size" { | ... | @@ -236,7 +232,6 @@ test "ptrcast of const integer has the correct object size" { |
| 236 | 232 | ||
| 237 | test "implicit optional pointer to optional anyopaque pointer" { | 233 | test "implicit optional pointer to optional anyopaque pointer" { |
| 238 | if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO | 234 | if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO |
| 239 | if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO | ||
| 240 | if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO | 235 | if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO |
| 241 | 236 | ||
| 242 | var buf: [4]u8 = "aoeu".*; | 237 | var buf: [4]u8 = "aoeu".*; |
test/behavior/sizeof_and_typeof.zig-1| ... | @@ -75,7 +75,6 @@ const P = packed struct { | ... | @@ -75,7 +75,6 @@ const P = packed struct { |
| 75 | }; | 75 | }; |
| 76 | 76 | ||
| 77 | test "@offsetOf" { | 77 | test "@offsetOf" { |
| 78 | if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; | ||
| 79 | if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO | 78 | if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO |
| 80 | 79 | ||
| 81 | // Packed structs have fixed memory layout | 80 | // Packed structs have fixed memory layout |
test/behavior/slice.zig-6| ... | @@ -28,7 +28,6 @@ comptime { | ... | @@ -28,7 +28,6 @@ comptime { |
| 28 | } | 28 | } |
| 29 | 29 | ||
| 30 | test "slicing" { | 30 | test "slicing" { |
| 31 | if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; | ||
| 32 | if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO | 31 | if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO |
| 33 | 32 | ||
| 34 | var array: [20]i32 = undefined; | 33 | var array: [20]i32 = undefined; |
| ... | @@ -64,7 +63,6 @@ test "comptime slice of undefined pointer of length 0" { | ... | @@ -64,7 +63,6 @@ test "comptime slice of undefined pointer of length 0" { |
| 64 | } | 63 | } |
| 65 | 64 | ||
| 66 | test "implicitly cast array of size 0 to slice" { | 65 | test "implicitly cast array of size 0 to slice" { |
| 67 | if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; | ||
| 68 | if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO | 66 | if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO |
| 69 | 67 | ||
| 70 | var msg = [_]u8{}; | 68 | var msg = [_]u8{}; |
| ... | @@ -121,7 +119,6 @@ test "slice of type" { | ... | @@ -121,7 +119,6 @@ test "slice of type" { |
| 121 | } | 119 | } |
| 122 | 120 | ||
| 123 | test "generic malloc free" { | 121 | test "generic malloc free" { |
| 124 | if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; | ||
| 125 | if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; | 122 | if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; |
| 126 | if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO | 123 | if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO |
| 127 | 124 | ||
| ... | @@ -233,7 +230,6 @@ fn sliceFromLenToLen(a_slice: []u8, start: usize, end: usize) []u8 { | ... | @@ -233,7 +230,6 @@ fn sliceFromLenToLen(a_slice: []u8, start: usize, end: usize) []u8 { |
| 233 | } | 230 | } |
| 234 | 231 | ||
| 235 | test "C pointer" { | 232 | test "C pointer" { |
| 236 | if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; | ||
| 237 | if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO | 233 | if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO |
| 238 | 234 | ||
| 239 | var buf: [*c]const u8 = "kjdhfkjdhfdkjhfkfjhdfkjdhfkdjhfdkjhf"; | 235 | var buf: [*c]const u8 = "kjdhfkjdhfdkjhfkfjhdfkjdhfkdjhfdkjhf"; |
| ... | @@ -288,7 +284,6 @@ test "slice type with custom alignment" { | ... | @@ -288,7 +284,6 @@ test "slice type with custom alignment" { |
| 288 | } | 284 | } |
| 289 | 285 | ||
| 290 | test "obtaining a null terminated slice" { | 286 | test "obtaining a null terminated slice" { |
| 291 | if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; | ||
| 292 | if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO | 287 | if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO |
| 293 | 288 | ||
| 294 | // here we have a normal array | 289 | // here we have a normal array |
| ... | @@ -590,7 +585,6 @@ test "array mult of slice gives ptr to array" { | ... | @@ -590,7 +585,6 @@ test "array mult of slice gives ptr to array" { |
| 590 | } | 585 | } |
| 591 | 586 | ||
| 592 | test "slice bounds in comptime concatenation" { | 587 | test "slice bounds in comptime concatenation" { |
| 593 | if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO | ||
| 594 | if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO | 588 | if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO |
| 595 | 589 | ||
| 596 | const bs = comptime blk: { | 590 | const bs = comptime blk: { |
test/behavior/struct.zig-7| ... | @@ -106,7 +106,6 @@ fn testMutation(foo: *StructFoo) void { | ... | @@ -106,7 +106,6 @@ fn testMutation(foo: *StructFoo) void { |
| 106 | } | 106 | } |
| 107 | 107 | ||
| 108 | test "struct byval assign" { | 108 | test "struct byval assign" { |
| 109 | if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; | ||
| 110 | if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO | 109 | if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO |
| 111 | 110 | ||
| 112 | var foo1: StructFoo = undefined; | 111 | var foo1: StructFoo = undefined; |
| ... | @@ -140,7 +139,6 @@ fn returnEmptyStructInstance() StructWithNoFields { | ... | @@ -140,7 +139,6 @@ fn returnEmptyStructInstance() StructWithNoFields { |
| 140 | } | 139 | } |
| 141 | 140 | ||
| 142 | test "fn call of struct field" { | 141 | test "fn call of struct field" { |
| 143 | if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; | ||
| 144 | if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO | 142 | if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO |
| 145 | 143 | ||
| 146 | const Foo = struct { | 144 | const Foo = struct { |
| ... | @@ -323,7 +321,6 @@ const VoidStructFieldsFoo = struct { | ... | @@ -323,7 +321,6 @@ const VoidStructFieldsFoo = struct { |
| 323 | }; | 321 | }; |
| 324 | 322 | ||
| 325 | test "return empty struct from fn" { | 323 | test "return empty struct from fn" { |
| 326 | if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; | ||
| 327 | if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO | 324 | if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO |
| 328 | 325 | ||
| 329 | _ = testReturnEmptyStructFromFn(); | 326 | _ = testReturnEmptyStructFromFn(); |
| ... | @@ -334,7 +331,6 @@ fn testReturnEmptyStructFromFn() EmptyStruct2 { | ... | @@ -334,7 +331,6 @@ fn testReturnEmptyStructFromFn() EmptyStruct2 { |
| 334 | } | 331 | } |
| 335 | 332 | ||
| 336 | test "pass slice of empty struct to fn" { | 333 | test "pass slice of empty struct to fn" { |
| 337 | if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; | ||
| 338 | if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO | 334 | if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO |
| 339 | 335 | ||
| 340 | try expect(testPassSliceOfEmptyStructToFn(&[_]EmptyStruct2{EmptyStruct2{}}) == 1); | 336 | try expect(testPassSliceOfEmptyStructToFn(&[_]EmptyStruct2{EmptyStruct2{}}) == 1); |
| ... | @@ -369,7 +365,6 @@ const EmptyStruct = struct { | ... | @@ -369,7 +365,6 @@ const EmptyStruct = struct { |
| 369 | }; | 365 | }; |
| 370 | 366 | ||
| 371 | test "align 1 field before self referential align 8 field as slice return type" { | 367 | test "align 1 field before self referential align 8 field as slice return type" { |
| 372 | if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; | ||
| 373 | if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO | 368 | if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO |
| 374 | 369 | ||
| 375 | const result = alloc(Expr); | 370 | const result = alloc(Expr); |
| ... | @@ -1094,7 +1089,6 @@ test "packed struct with undefined initializers" { | ... | @@ -1094,7 +1089,6 @@ test "packed struct with undefined initializers" { |
| 1094 | 1089 | ||
| 1095 | test "for loop over pointers to struct, getting field from struct pointer" { | 1090 | test "for loop over pointers to struct, getting field from struct pointer" { |
| 1096 | if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO | 1091 | if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO |
| 1097 | if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO | ||
| 1098 | if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO | 1092 | if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO |
| 1099 | if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO | 1093 | if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO |
| 1100 | 1094 | ||
| ... | @@ -1236,7 +1230,6 @@ test "initialize struct with empty literal" { | ... | @@ -1236,7 +1230,6 @@ test "initialize struct with empty literal" { |
| 1236 | } | 1230 | } |
| 1237 | 1231 | ||
| 1238 | test "loading a struct pointer perfoms a copy" { | 1232 | test "loading a struct pointer perfoms a copy" { |
| 1239 | if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO | ||
| 1240 | if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO | 1233 | if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO |
| 1241 | 1234 | ||
| 1242 | const S = struct { | 1235 | const S = struct { |
test/behavior/struct_contains_slice_of_itself.zig-1| ... | @@ -12,7 +12,6 @@ const NodeAligned = struct { | ... | @@ -12,7 +12,6 @@ const NodeAligned = struct { |
| 12 | }; | 12 | }; |
| 13 | 13 | ||
| 14 | test "struct contains slice of itself" { | 14 | test "struct contains slice of itself" { |
| 15 | if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO | ||
| 16 | if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO | 15 | if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO |
| 17 | 16 | ||
| 18 | var other_nodes = [_]Node{ | 17 | var other_nodes = [_]Node{ |
test/behavior/type_info.zig-3| ... | @@ -284,7 +284,6 @@ fn testUnion() !void { | ... | @@ -284,7 +284,6 @@ fn testUnion() !void { |
| 284 | } | 284 | } |
| 285 | 285 | ||
| 286 | test "type info: struct info" { | 286 | test "type info: struct info" { |
| 287 | if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; | ||
| 288 | if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO | 287 | if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO |
| 289 | 288 | ||
| 290 | try testStruct(); | 289 | try testStruct(); |
| ... | @@ -511,7 +510,6 @@ test "type info for async frames" { | ... | @@ -511,7 +510,6 @@ test "type info for async frames" { |
| 511 | 510 | ||
| 512 | test "Declarations are returned in declaration order" { | 511 | test "Declarations are returned in declaration order" { |
| 513 | if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; | 512 | if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; |
| 514 | if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; | ||
| 515 | if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO | 513 | if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO |
| 516 | 514 | ||
| 517 | const S = struct { | 515 | const S = struct { |
| ... | @@ -535,7 +533,6 @@ test "Struct.is_tuple for anon list literal" { | ... | @@ -535,7 +533,6 @@ test "Struct.is_tuple for anon list literal" { |
| 535 | 533 | ||
| 536 | test "Struct.is_tuple for anon struct literal" { | 534 | test "Struct.is_tuple for anon struct literal" { |
| 537 | if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO | 535 | if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO |
| 538 | if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO | ||
| 539 | if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO | 536 | if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO |
| 540 | 537 | ||
| 541 | const info = @typeInfo(@TypeOf(.{ .a = 0 })); | 538 | const info = @typeInfo(@TypeOf(.{ .a = 0 })); |
test/behavior/undefined.zig-2| ... | @@ -16,7 +16,6 @@ test "init static array to undefined" { | ... | @@ -16,7 +16,6 @@ test "init static array to undefined" { |
| 16 | // This test causes `initStaticArray()` to be codegen'd, and the | 16 | // This test causes `initStaticArray()` to be codegen'd, and the |
| 17 | // C backend does not yet support returning arrays, so it fails | 17 | // C backend does not yet support returning arrays, so it fails |
| 18 | if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; | 18 | if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; |
| 19 | if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; | ||
| 20 | if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO | 19 | if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO |
| 21 | 20 | ||
| 22 | try expect(static_array[0] == 1); | 21 | try expect(static_array[0] == 1); |
| ... | @@ -79,7 +78,6 @@ test "assign undefined to struct with method" { | ... | @@ -79,7 +78,6 @@ test "assign undefined to struct with method" { |
| 79 | } | 78 | } |
| 80 | 79 | ||
| 81 | test "type name of undefined" { | 80 | test "type name of undefined" { |
| 82 | if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; | ||
| 83 | if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO | 81 | if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO |
| 84 | 82 | ||
| 85 | const x = undefined; | 83 | const x = undefined; |
test/behavior/underscore.zig-1| ... | @@ -7,7 +7,6 @@ test "ignore lval with underscore" { | ... | @@ -7,7 +7,6 @@ test "ignore lval with underscore" { |
| 7 | } | 7 | } |
| 8 | 8 | ||
| 9 | test "ignore lval with underscore (while loop)" { | 9 | test "ignore lval with underscore (while loop)" { |
| 10 | if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; | ||
| 11 | if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO | 10 | if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO |
| 12 | 11 | ||
| 13 | while (optionalReturnError()) |_| { | 12 | while (optionalReturnError()) |_| { |
test/behavior/union.zig-3| ... | @@ -413,7 +413,6 @@ test "tagged union with no payloads" { | ... | @@ -413,7 +413,6 @@ test "tagged union with no payloads" { |
| 413 | } | 413 | } |
| 414 | 414 | ||
| 415 | test "union with only 1 field casted to its enum type" { | 415 | test "union with only 1 field casted to its enum type" { |
| 416 | if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; | ||
| 417 | if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO | 416 | if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO |
| 418 | 417 | ||
| 419 | const Literal = union(enum) { | 418 | const Literal = union(enum) { |
| ... | @@ -563,7 +562,6 @@ const Baz = enum { A, B, C, D }; | ... | @@ -563,7 +562,6 @@ const Baz = enum { A, B, C, D }; |
| 563 | 562 | ||
| 564 | test "tagged union type" { | 563 | test "tagged union type" { |
| 565 | if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; | 564 | if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; |
| 566 | if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; | ||
| 567 | if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO | 565 | if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO |
| 568 | 566 | ||
| 569 | const foo1 = TaggedFoo{ .One = 13 }; | 567 | const foo1 = TaggedFoo{ .One = 13 }; |
| ... | @@ -697,7 +695,6 @@ const PartialInstWithPayload = union(enum) { | ... | @@ -697,7 +695,6 @@ const PartialInstWithPayload = union(enum) { |
| 697 | }; | 695 | }; |
| 698 | 696 | ||
| 699 | test "union with only 1 field casted to its enum type which has enum value specified" { | 697 | test "union with only 1 field casted to its enum type which has enum value specified" { |
| 700 | if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; | ||
| 701 | if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO | 698 | if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO |
| 702 | 699 | ||
| 703 | const Literal = union(enum) { | 700 | const Literal = union(enum) { |
test/behavior/void.zig-1| ... | @@ -19,7 +19,6 @@ test "compare void with void compile time known" { | ... | @@ -19,7 +19,6 @@ test "compare void with void compile time known" { |
| 19 | } | 19 | } |
| 20 | 20 | ||
| 21 | test "iterate over a void slice" { | 21 | test "iterate over a void slice" { |
| 22 | if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; | ||
| 23 | if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO | 22 | if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO |
| 24 | 23 | ||
| 25 | var j: usize = 0; | 24 | var j: usize = 0; |
test/behavior/while.zig-5| ... | @@ -4,7 +4,6 @@ const expect = std.testing.expect; | ... | @@ -4,7 +4,6 @@ const expect = std.testing.expect; |
| 4 | const assert = std.debug.assert; | 4 | const assert = std.debug.assert; |
| 5 | 5 | ||
| 6 | test "while loop" { | 6 | test "while loop" { |
| 7 | if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; | ||
| 8 | if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO | 7 | if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO |
| 9 | 8 | ||
| 10 | var i: i32 = 0; | 9 | var i: i32 = 0; |
| ... | @@ -24,7 +23,6 @@ fn whileLoop2() i32 { | ... | @@ -24,7 +23,6 @@ fn whileLoop2() i32 { |
| 24 | } | 23 | } |
| 25 | 24 | ||
| 26 | test "static eval while" { | 25 | test "static eval while" { |
| 27 | if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; | ||
| 28 | if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO | 26 | if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO |
| 29 | 27 | ||
| 30 | try expect(static_eval_while_number == 1); | 28 | try expect(static_eval_while_number == 1); |
| ... | @@ -108,7 +106,6 @@ fn testBreakOuter() void { | ... | @@ -108,7 +106,6 @@ fn testBreakOuter() void { |
| 108 | test "while copies its payload" { | 106 | test "while copies its payload" { |
| 109 | if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; | 107 | if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; |
| 110 | if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; | 108 | if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; |
| 111 | if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; | ||
| 112 | if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO | 109 | if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO |
| 113 | 110 | ||
| 114 | const S = struct { | 111 | const S = struct { |
| ... | @@ -148,7 +145,6 @@ fn runContinueAndBreakTest() !void { | ... | @@ -148,7 +145,6 @@ fn runContinueAndBreakTest() !void { |
| 148 | test "while with optional as condition" { | 145 | test "while with optional as condition" { |
| 149 | if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; | 146 | if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; |
| 150 | if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; | 147 | if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; |
| 151 | if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; | ||
| 152 | if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO | 148 | if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO |
| 153 | 149 | ||
| 154 | numbers_left = 10; | 150 | numbers_left = 10; |
| ... | @@ -162,7 +158,6 @@ test "while with optional as condition" { | ... | @@ -162,7 +158,6 @@ test "while with optional as condition" { |
| 162 | test "while with optional as condition with else" { | 158 | test "while with optional as condition with else" { |
| 163 | if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; | 159 | if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; |
| 164 | if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; | 160 | if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; |
| 165 | if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; | ||
| 166 | if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO | 161 | if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO |
| 167 | 162 | ||
| 168 | numbers_left = 10; | 163 | numbers_left = 10; |