authorgravatar for kubkon@jakubkonka.comJakub Konka <kubkon@jakubkonka.com> 2022-02-28 19:54:13+01:00
committergravatar for kubkon@jakubkonka.comJakub Konka <kubkon@jakubkonka.com> 2022-02-28 23:20:05+01:00
logcfbc3537ef0b3a73d5b8fdd358cf3bb831935861
tree96c6e1654af9790a679722b4af7cbdcc93eff10c
parent66d28d0f20bda4c8653816e9f9179b6cc047506e

x64: pass more behavior tests


22 files changed, 4 insertions(+), 59 deletions(-)

src/arch/x86_64/CodeGen.zig-4
...@@ -4839,10 +4839,6 @@ fn genInlineMemset(...@@ -4839,10 +4839,6 @@ fn genInlineMemset(
4839 try self.register_manager.getReg(.rax, null);4839 try self.register_manager.getReg(.rax, null);
48404840
4841 const abi_size = ty.abiSize(self.target.*);4841 const abi_size = ty.abiSize(self.target.*);
4842 if (stack_offset > 128) {
4843 return self.fail("TODO inline memset with large stack offset", .{});
4844 }
4845
4846 const negative_offset = @bitCast(u32, -stack_offset);4842 const negative_offset = @bitCast(u32, -stack_offset);
48474843
4848 // We are actually counting `abi_size` bytes; however, we reuse the index register4844 // We are actually counting `abi_size` bytes; however, we reuse the index register
test/behavior/align.zig+3-2
...@@ -124,7 +124,7 @@ fn testBytesAlign(b: u8) !void {...@@ -124,7 +124,7 @@ fn testBytesAlign(b: u8) !void {
124124
125test "@alignCast slices" {125test "@alignCast slices" {
126 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;126 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;
127 if (builtin.zig_backend == .stage2_x86_64 or builtin.zig_backend == .stage2_arm) return error.SkipZigTest;127 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest;
128128
129 var array align(4) = [_]u32{ 1, 1 };129 var array align(4) = [_]u32{ 1, 1 };
130 const slice = array[0..];130 const slice = array[0..];
...@@ -140,7 +140,8 @@ fn sliceExpects4(slice: []align(4) u32) void {...@@ -140,7 +140,8 @@ fn sliceExpects4(slice: []align(4) u32) void {
140140
141test "return error union with 128-bit integer" {141test "return error union with 128-bit integer" {
142 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;142 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;
143 if (builtin.zig_backend == .stage2_x86_64 or builtin.zig_backend == .stage2_arm) return error.SkipZigTest;143 if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest;
144 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest;
144145
145 try expect(3 == try give());146 try expect(3 == try give());
146}147}
test/behavior/alignof.zig-2
...@@ -14,7 +14,6 @@ test "@alignOf(T) before referencing T" {...@@ -14,7 +14,6 @@ test "@alignOf(T) before referencing T" {
14 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;14 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;
15 if (builtin.zig_backend == .stage2_c) return error.SkipZigTest;15 if (builtin.zig_backend == .stage2_c) return error.SkipZigTest;
16 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest;16 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest;
17 if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest;
18 comptime try expect(@alignOf(Foo) != maxInt(usize));17 comptime try expect(@alignOf(Foo) != maxInt(usize));
19 if (native_arch == .x86_64) {18 if (native_arch == .x86_64) {
20 comptime try expect(@alignOf(Foo) == 4);19 comptime try expect(@alignOf(Foo) == 4);
...@@ -23,7 +22,6 @@ test "@alignOf(T) before referencing T" {...@@ -23,7 +22,6 @@ test "@alignOf(T) before referencing T" {
2322
24test "comparison of @alignOf(T) against zero" {23test "comparison of @alignOf(T) against zero" {
25 if (builtin.zig_backend == .stage2_c) return error.SkipZigTest;24 if (builtin.zig_backend == .stage2_c) return error.SkipZigTest;
26 if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest;
27 {25 {
28 const T = struct { x: u32 };26 const T = struct { x: u32 };
29 try expect(!(@alignOf(T) == 0));27 try expect(!(@alignOf(T) == 0));
test/behavior/array.zig-1
...@@ -348,7 +348,6 @@ test "array literal as argument to function" {...@@ -348,7 +348,6 @@ test "array literal as argument to function" {
348test "double nested array to const slice cast in array literal" {348test "double nested array to const slice cast in array literal" {
349 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;349 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;
350 if (builtin.zig_backend == .stage2_c) return error.SkipZigTest; // TODO350 if (builtin.zig_backend == .stage2_c) return error.SkipZigTest; // TODO
351 if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO
352 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO351 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
353352
354 const S = struct {353 const S = struct {
test/behavior/basic.zig-2
...@@ -287,7 +287,6 @@ fn fB() []const u8 {...@@ -287,7 +287,6 @@ fn fB() []const u8 {
287test "call function pointer in struct" {287test "call function pointer in struct" {
288 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;288 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;
289 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest;289 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest;
290 if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest;
291 if (builtin.zig_backend == .stage1) return error.SkipZigTest;290 if (builtin.zig_backend == .stage1) return error.SkipZigTest;
292291
293 try expect(mem.eql(u8, f3(true), "a"));292 try expect(mem.eql(u8, f3(true), "a"));
...@@ -814,7 +813,6 @@ test "if expression type coercion" {...@@ -814,7 +813,6 @@ test "if expression type coercion" {
814}813}
815814
816test "discarding the result of various expressions" {815test "discarding the result of various expressions" {
817 if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO
818 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO816 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
819 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO817 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
820818
test/behavior/bitcast.zig-3
...@@ -167,7 +167,6 @@ test "@bitCast packed structs at runtime and comptime" {...@@ -167,7 +167,6 @@ test "@bitCast packed structs at runtime and comptime" {
167test "@bitCast extern structs at runtime and comptime" {167test "@bitCast extern structs at runtime and comptime" {
168 if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest;168 if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest;
169 if (builtin.zig_backend == .stage2_c) return error.SkipZigTest;169 if (builtin.zig_backend == .stage2_c) return error.SkipZigTest;
170 if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest;
171 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;170 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;
172 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest;171 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest;
173172
...@@ -241,7 +240,6 @@ test "implicit cast to error union by returning" {...@@ -241,7 +240,6 @@ test "implicit cast to error union by returning" {
241test "bitcast packed struct literal to byte" {240test "bitcast packed struct literal to byte" {
242 if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest;241 if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest;
243 if (builtin.zig_backend == .stage2_c) return error.SkipZigTest;242 if (builtin.zig_backend == .stage2_c) return error.SkipZigTest;
244 if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest;
245 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;243 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;
246244
247 const Foo = packed struct {245 const Foo = packed struct {
...@@ -254,7 +252,6 @@ test "bitcast packed struct literal to byte" {...@@ -254,7 +252,6 @@ test "bitcast packed struct literal to byte" {
254test "comptime bitcast used in expression has the correct type" {252test "comptime bitcast used in expression has the correct type" {
255 if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest;253 if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest;
256 if (builtin.zig_backend == .stage2_c) return error.SkipZigTest;254 if (builtin.zig_backend == .stage2_c) return error.SkipZigTest;
257 if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest;
258 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;255 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;
259256
260 const Foo = packed struct {257 const Foo = packed struct {
test/behavior/bitreverse.zig-1
...@@ -6,7 +6,6 @@ const minInt = std.math.minInt;...@@ -6,7 +6,6 @@ const minInt = std.math.minInt;
6test "@bitReverse large exotic integer" {6test "@bitReverse large exotic integer" {
7 if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest;7 if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest;
8 if (builtin.zig_backend == .stage2_c) return error.SkipZigTest;8 if (builtin.zig_backend == .stage2_c) return error.SkipZigTest;
9 if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest;
10 // Currently failing on stage1 for big-endian targets9 // Currently failing on stage1 for big-endian targets
11 if (builtin.zig_backend == .stage1) return error.SkipZigTest;10 if (builtin.zig_backend == .stage1) return error.SkipZigTest;
1211
test/behavior/bugs/1381.zig-1
...@@ -14,7 +14,6 @@ const A = union(enum) {...@@ -14,7 +14,6 @@ const A = union(enum) {
14test "union that needs padding bytes inside an array" {14test "union that needs padding bytes inside an array" {
15 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;15 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;
16 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest;16 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest;
17 if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest;
18 var as = [_]A{17 var as = [_]A{
19 A{ .B = B{ .D = 1 } },18 A{ .B = B{ .D = 1 } },
20 A{ .B = B{ .D = 1 } },19 A{ .B = B{ .D = 1 } },
test/behavior/bugs/1735.zig-1
...@@ -45,7 +45,6 @@ test "initialization" {...@@ -45,7 +45,6 @@ test "initialization" {
45 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;45 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;
46 if (builtin.zig_backend == .stage2_c) return error.SkipZigTest;46 if (builtin.zig_backend == .stage2_c) return error.SkipZigTest;
47 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest;47 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest;
48 if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest;
49 var t = a.init();48 var t = a.init();
50 try std.testing.expect(t.foo.len == 0);49 try std.testing.expect(t.foo.len == 0);
51}50}
test/behavior/bugs/4954.zig-1
...@@ -5,7 +5,6 @@ fn f(buf: []u8) void {...@@ -5,7 +5,6 @@ fn f(buf: []u8) void {
5}5}
66
7test "crash" {7test "crash" {
8 if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest;
9 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest;8 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest;
10 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;9 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;
1110
test/behavior/cast.zig+1-20
...@@ -223,7 +223,7 @@ test "@intToEnum passed a comptime_int to an enum with one item" {...@@ -223,7 +223,7 @@ test "@intToEnum passed a comptime_int to an enum with one item" {
223}223}
224224
225test "@intCast to u0 and use the result" {225test "@intCast to u0 and use the result" {
226 if (builtin.zig_backend == .stage2_x86_64 or builtin.zig_backend == .stage2_arm) return error.SkipZigTest;226 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest;
227227
228 const S = struct {228 const S = struct {
229 fn doTheTest(zero: u1, one: u1, bigzero: i32) !void {229 fn doTheTest(zero: u1, one: u1, bigzero: i32) !void {
...@@ -324,7 +324,6 @@ test "cast from ?[*]T to ??[*]T" {...@@ -324,7 +324,6 @@ test "cast from ?[*]T to ??[*]T" {
324test "peer type unsigned int to signed" {324test "peer type unsigned int to signed" {
325 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;325 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;
326 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest;326 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest;
327 if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest;
328327
329 var w: u31 = 5;328 var w: u31 = 5;
330 var x: u8 = 7;329 var x: u8 = 7;
...@@ -401,7 +400,6 @@ test "implicitly cast from [0]T to anyerror![]T" {...@@ -401,7 +400,6 @@ test "implicitly cast from [0]T to anyerror![]T" {
401 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;400 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;
402 if (builtin.zig_backend == .stage2_c) return error.SkipZigTest; // TODO401 if (builtin.zig_backend == .stage2_c) return error.SkipZigTest; // TODO
403 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO402 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
404 if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO
405403
406 try testCastZeroArrayToErrSliceMut();404 try testCastZeroArrayToErrSliceMut();
407 comptime try testCastZeroArrayToErrSliceMut();405 comptime try testCastZeroArrayToErrSliceMut();
...@@ -419,7 +417,6 @@ test "peer type resolution: [0]u8, []const u8, and anyerror![]u8" {...@@ -419,7 +417,6 @@ test "peer type resolution: [0]u8, []const u8, and anyerror![]u8" {
419 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;417 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;
420 if (builtin.zig_backend == .stage2_c) return error.SkipZigTest; // TODO418 if (builtin.zig_backend == .stage2_c) return error.SkipZigTest; // TODO
421 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO419 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
422 if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO
423420
424 const S = struct {421 const S = struct {
425 fn doTheTest() anyerror!void {422 fn doTheTest() anyerror!void {
...@@ -475,7 +472,6 @@ fn testCastConstArrayRefToConstSlice() !void {...@@ -475,7 +472,6 @@ fn testCastConstArrayRefToConstSlice() !void {
475test "peer type resolution: error and [N]T" {472test "peer type resolution: error and [N]T" {
476 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;473 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;
477 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO474 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
478 if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO
479475
480 try expect(mem.eql(u8, try testPeerErrorAndArray(0), "OK"));476 try expect(mem.eql(u8, try testPeerErrorAndArray(0), "OK"));
481 comptime try expect(mem.eql(u8, try testPeerErrorAndArray(0), "OK"));477 comptime try expect(mem.eql(u8, try testPeerErrorAndArray(0), "OK"));
...@@ -646,7 +642,6 @@ test "peer cast *[0]T to []const T" {...@@ -646,7 +642,6 @@ test "peer cast *[0]T to []const T" {
646test "peer cast *[N]T to [*]T" {642test "peer cast *[N]T to [*]T" {
647 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;643 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;
648 if (builtin.zig_backend == .stage2_c) return error.SkipZigTest; // TODO644 if (builtin.zig_backend == .stage2_c) return error.SkipZigTest; // TODO
649 if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO
650645
651 var array = [4:99]i32{ 1, 2, 3, 4 };646 var array = [4:99]i32{ 1, 2, 3, 4 };
652 var dest: [*]i32 = undefined;647 var dest: [*]i32 = undefined;
...@@ -700,7 +695,6 @@ test "peer cast [N:x]T to [N]T" {...@@ -700,7 +695,6 @@ test "peer cast [N:x]T to [N]T" {
700 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;695 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;
701 if (builtin.zig_backend == .stage2_c) return error.SkipZigTest; // TODO696 if (builtin.zig_backend == .stage2_c) return error.SkipZigTest; // TODO
702 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO697 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
703 if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO
704698
705 const S = struct {699 const S = struct {
706 fn doTheTest() !void {700 fn doTheTest() !void {
...@@ -717,7 +711,6 @@ test "peer cast *[N:x]T to *[N]T" {...@@ -717,7 +711,6 @@ test "peer cast *[N:x]T to *[N]T" {
717 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;711 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;
718 if (builtin.zig_backend == .stage2_c) return error.SkipZigTest; // TODO712 if (builtin.zig_backend == .stage2_c) return error.SkipZigTest; // TODO
719 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO713 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
720 if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO
721714
722 const S = struct {715 const S = struct {
723 fn doTheTest() !void {716 fn doTheTest() !void {
...@@ -771,7 +764,6 @@ test "peer type resolution implicit cast to return type" {...@@ -771,7 +764,6 @@ test "peer type resolution implicit cast to return type" {
771 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;764 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;
772 if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest; // TODO765 if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest; // TODO
773 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO766 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
774 if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO
775767
776 const S = struct {768 const S = struct {
777 fn doTheTest() !void {769 fn doTheTest() !void {
...@@ -886,7 +878,6 @@ test "pointer reinterpret const float to int" {...@@ -886,7 +878,6 @@ test "pointer reinterpret const float to int" {
886 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;878 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;
887 if (builtin.zig_backend == .stage2_c) return error.SkipZigTest; // TODO879 if (builtin.zig_backend == .stage2_c) return error.SkipZigTest; // TODO
888 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO880 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
889 if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO
890881
891 // The hex representation is 0x3fe3333333333303.882 // The hex representation is 0x3fe3333333333303.
892 const float: f64 = 5.99999999999994648725e-01;883 const float: f64 = 5.99999999999994648725e-01;
...@@ -972,7 +963,6 @@ test "peer type resolution: [0]u8 and []const u8" {...@@ -972,7 +963,6 @@ test "peer type resolution: [0]u8 and []const u8" {
972 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;963 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;
973 if (builtin.zig_backend == .stage2_c) return error.SkipZigTest; // TODO964 if (builtin.zig_backend == .stage2_c) return error.SkipZigTest; // TODO
974 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO965 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
975 if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO
976966
977 try expect(peerTypeEmptyArrayAndSlice(true, "hi").len == 0);967 try expect(peerTypeEmptyArrayAndSlice(true, "hi").len == 0);
978 try expect(peerTypeEmptyArrayAndSlice(false, "hi").len == 1);968 try expect(peerTypeEmptyArrayAndSlice(false, "hi").len == 1);
...@@ -1060,7 +1050,6 @@ test "implicit cast *[0]T to E![]const u8" {...@@ -1060,7 +1050,6 @@ test "implicit cast *[0]T to E![]const u8" {
1060 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;1050 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;
1061 if (builtin.zig_backend == .stage2_c) return error.SkipZigTest; // TODO1051 if (builtin.zig_backend == .stage2_c) return error.SkipZigTest; // TODO
1062 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO1052 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
1063 if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO
10641053
1065 var x = @as(anyerror![]const u8, &[0]u8{});1054 var x = @as(anyerror![]const u8, &[0]u8{});
1066 try expect((x catch unreachable).len == 0);1055 try expect((x catch unreachable).len == 0);
...@@ -1068,14 +1057,11 @@ test "implicit cast *[0]T to E![]const u8" {...@@ -1068,14 +1057,11 @@ test "implicit cast *[0]T to E![]const u8" {
10681057
1069var global_array: [4]u8 = undefined;1058var global_array: [4]u8 = undefined;
1070test "cast from array reference to fn: comptime fn ptr" {1059test "cast from array reference to fn: comptime fn ptr" {
1071 if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO
1072
1073 const f = @ptrCast(*const fn () callconv(.C) void, &global_array);1060 const f = @ptrCast(*const fn () callconv(.C) void, &global_array);
1074 try expect(@ptrToInt(f) == @ptrToInt(&global_array));1061 try expect(@ptrToInt(f) == @ptrToInt(&global_array));
1075}1062}
1076test "cast from array reference to fn: runtime fn ptr" {1063test "cast from array reference to fn: runtime fn ptr" {
1077 if (builtin.zig_backend == .stage2_c) return error.SkipZigTest; // TODO1064 if (builtin.zig_backend == .stage2_c) return error.SkipZigTest; // TODO
1078 if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO
10791065
1080 var f = @ptrCast(*const fn () callconv(.C) void, &global_array);1066 var f = @ptrCast(*const fn () callconv(.C) void, &global_array);
1081 try expect(@ptrToInt(f) == @ptrToInt(&global_array));1067 try expect(@ptrToInt(f) == @ptrToInt(&global_array));
...@@ -1099,8 +1085,6 @@ test "*const [N]null u8 to ?[]const u8" {...@@ -1099,8 +1085,6 @@ test "*const [N]null u8 to ?[]const u8" {
1099}1085}
11001086
1101test "cast between [*c]T and ?[*:0]T on fn parameter" {1087test "cast between [*c]T and ?[*:0]T on fn parameter" {
1102 if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO
1103
1104 const S = struct {1088 const S = struct {
1105 const Handler = ?fn ([*c]const u8) callconv(.C) void;1089 const Handler = ?fn ([*c]const u8) callconv(.C) void;
1106 fn addCallback(handler: Handler) void {1090 fn addCallback(handler: Handler) void {
...@@ -1132,7 +1116,6 @@ test "assignment to optional pointer result loc" {...@@ -1132,7 +1116,6 @@ test "assignment to optional pointer result loc" {
1132test "cast between *[N]void and []void" {1116test "cast between *[N]void and []void" {
1133 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;1117 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;
1134 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO1118 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
1135 if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO
11361119
1137 var a: [4]void = undefined;1120 var a: [4]void = undefined;
1138 var b: []void = &a;1121 var b: []void = &a;
...@@ -1142,7 +1125,6 @@ test "cast between *[N]void and []void" {...@@ -1142,7 +1125,6 @@ test "cast between *[N]void and []void" {
1142test "peer resolve arrays of different size to const slice" {1125test "peer resolve arrays of different size to const slice" {
1143 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;1126 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;
1144 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO1127 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
1145 if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO
11461128
1147 try expect(mem.eql(u8, boolToStr(true), "true"));1129 try expect(mem.eql(u8, boolToStr(true), "true"));
1148 try expect(mem.eql(u8, boolToStr(false), "false"));1130 try expect(mem.eql(u8, boolToStr(false), "false"));
...@@ -1213,7 +1195,6 @@ test "peer type resolution: unreachable, null, slice" {...@@ -1213,7 +1195,6 @@ test "peer type resolution: unreachable, null, slice" {
1213test "cast i8 fn call peers to i32 result" {1195test "cast i8 fn call peers to i32 result" {
1214 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;1196 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;
1215 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO1197 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
1216 if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO
12171198
1218 const S = struct {1199 const S = struct {
1219 fn doTheTest() !void {1200 fn doTheTest() !void {
test/behavior/defer.zig-1
...@@ -95,7 +95,6 @@ fn runSomeErrorDefers(x: bool) !bool {...@@ -95,7 +95,6 @@ fn runSomeErrorDefers(x: bool) !bool {
95}95}
9696
97test "mixing normal and error defers" {97test "mixing normal and error defers" {
98 if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO
99 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO98 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
100 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO99 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
101100
test/behavior/enum.zig-6
...@@ -616,7 +616,6 @@ fn testEnumWithSpecifiedTagValues(x: MultipleChoice) !void {...@@ -616,7 +616,6 @@ fn testEnumWithSpecifiedTagValues(x: MultipleChoice) !void {
616}616}
617617
618test "enum with specified tag values" {618test "enum with specified tag values" {
619 if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest;
620 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest;619 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest;
621 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;620 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;
622621
...@@ -625,7 +624,6 @@ test "enum with specified tag values" {...@@ -625,7 +624,6 @@ test "enum with specified tag values" {
625}624}
626625
627test "non-exhaustive enum" {626test "non-exhaustive enum" {
628 if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest;
629 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest;627 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest;
630 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;628 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;
631629
...@@ -691,7 +689,6 @@ test "empty non-exhaustive enum" {...@@ -691,7 +689,6 @@ test "empty non-exhaustive enum" {
691}689}
692690
693test "single field non-exhaustive enum" {691test "single field non-exhaustive enum" {
694 if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest;
695 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest;692 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest;
696 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;693 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;
697694
...@@ -760,7 +757,6 @@ test "cast integer literal to enum" {...@@ -760,7 +757,6 @@ test "cast integer literal to enum" {
760}757}
761758
762test "enum with specified and unspecified tag values" {759test "enum with specified and unspecified tag values" {
763 if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest;
764 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest;760 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest;
765 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;761 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;
766762
...@@ -942,7 +938,6 @@ test "enum value allocation" {...@@ -942,7 +938,6 @@ test "enum value allocation" {
942}938}
943939
944test "enum literal casting to tagged union" {940test "enum literal casting to tagged union" {
945 if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest;
946 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest;941 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest;
947 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;942 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;
948943
...@@ -968,7 +963,6 @@ test "enum literal casting to tagged union" {...@@ -968,7 +963,6 @@ test "enum literal casting to tagged union" {
968const Bar = enum { A, B, C, D };963const Bar = enum { A, B, C, D };
969964
970test "enum literal casting to error union with payload enum" {965test "enum literal casting to error union with payload enum" {
971 if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest;
972 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest;966 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest;
973 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;967 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;
974968
test/behavior/fn.zig-1
...@@ -216,7 +216,6 @@ fn addPointCoords(pt: Point) i32 {...@@ -216,7 +216,6 @@ fn addPointCoords(pt: Point) i32 {
216}216}
217217
218test "pass by non-copying value through var arg" {218test "pass by non-copying value through var arg" {
219 if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest;
220 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest;219 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest;
221 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;220 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;
222221
test/behavior/if.zig-1
...@@ -48,7 +48,6 @@ var global_with_val: anyerror!u32 = 0;...@@ -48,7 +48,6 @@ var global_with_val: anyerror!u32 = 0;
48var global_with_err: anyerror!u32 = error.SomeError;48var global_with_err: anyerror!u32 = error.SomeError;
4949
50test "unwrap mutable global var" {50test "unwrap mutable global var" {
51 if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest;
52 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest;51 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest;
53 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;52 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;
5453
test/behavior/ir_block_deps.zig-1
...@@ -20,7 +20,6 @@ fn getErrInt() anyerror!i32 {...@@ -20,7 +20,6 @@ fn getErrInt() anyerror!i32 {
20test "ir block deps" {20test "ir block deps" {
21 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;21 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;
22 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO22 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
23 if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO
2423
25 try expect((foo(1) catch unreachable) == 0);24 try expect((foo(1) catch unreachable) == 0);
26 try expect((foo(2) catch unreachable) == 0);25 try expect((foo(2) catch unreachable) == 0);
test/behavior/namespace_depends_on_compile_var.zig-1
...@@ -4,7 +4,6 @@ const expect = std.testing.expect;...@@ -4,7 +4,6 @@ const expect = std.testing.expect;
44
5test "namespace depends on compile var" {5test "namespace depends on compile var" {
6 if (builtin.zig_backend == .stage2_c) return error.SkipZigTest;6 if (builtin.zig_backend == .stage2_c) return error.SkipZigTest;
7 if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest;
8 if (some_namespace.a_bool) {7 if (some_namespace.a_bool) {
9 try expect(some_namespace.a_bool);8 try expect(some_namespace.a_bool);
10 } else {9 } else {
test/behavior/optional.zig-3
...@@ -28,7 +28,6 @@ pub const EmptyStruct = struct {};...@@ -28,7 +28,6 @@ pub const EmptyStruct = struct {};
28test "optional pointer to size zero struct" {28test "optional pointer to size zero struct" {
29 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;29 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;
30 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO30 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
31 if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO
3231
33 var e = EmptyStruct{};32 var e = EmptyStruct{};
34 var o: ?*EmptyStruct = &e;33 var o: ?*EmptyStruct = &e;
...@@ -37,7 +36,6 @@ test "optional pointer to size zero struct" {...@@ -37,7 +36,6 @@ test "optional pointer to size zero struct" {
3736
38test "equality compare optional pointers" {37test "equality compare optional pointers" {
39 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO38 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
40 if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO
4139
42 try testNullPtrsEql();40 try testNullPtrsEql();
43 comptime try testNullPtrsEql();41 comptime try testNullPtrsEql();
...@@ -152,7 +150,6 @@ fn test_cmp_optional_non_optional() !void {...@@ -152,7 +150,6 @@ fn test_cmp_optional_non_optional() !void {
152test "unwrap function call with optional pointer return value" {150test "unwrap function call with optional pointer return value" {
153 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;151 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;
154 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO152 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
155 if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO
156153
157 const S = struct {154 const S = struct {
158 fn entry() !void {155 fn entry() !void {
test/behavior/struct.zig-1
...@@ -247,7 +247,6 @@ test "usingnamespace within struct scope" {...@@ -247,7 +247,6 @@ test "usingnamespace within struct scope" {
247247
248test "struct field init with catch" {248test "struct field init with catch" {
249 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;249 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;
250 if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest;
251 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest;250 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest;
252251
253 const S = struct {252 const S = struct {
test/behavior/try.zig-1
...@@ -3,7 +3,6 @@ const builtin = @import("builtin");...@@ -3,7 +3,6 @@ const builtin = @import("builtin");
3const expect = std.testing.expect;3const expect = std.testing.expect;
44
5test "try on error union" {5test "try on error union" {
6 if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest;
7 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest;6 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest;
8 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;7 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;
98
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}
88
9test "ignore lval with underscore (while loop)" {9test "ignore lval with underscore (while loop)" {
10 if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest;
11 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest;10 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest;
12 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;11 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;
1312
test/behavior/while.zig-4
...@@ -175,7 +175,6 @@ test "while with optional as condition with else" {...@@ -175,7 +175,6 @@ test "while with optional as condition with else" {
175}175}
176176
177test "while with error union condition" {177test "while with error union condition" {
178 if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest;
179 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest;178 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest;
180 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;179 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;
181180
...@@ -248,7 +247,6 @@ fn returnTrue() bool {...@@ -248,7 +247,6 @@ fn returnTrue() bool {
248}247}
249248
250test "return with implicit cast from while loop" {249test "return with implicit cast from while loop" {
251 if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest;
252 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;250 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;
253251
254 returnWithImplicitCastFromWhileLoopTest() catch unreachable;252 returnWithImplicitCastFromWhileLoopTest() catch unreachable;
...@@ -260,7 +258,6 @@ fn returnWithImplicitCastFromWhileLoopTest() anyerror!void {...@@ -260,7 +258,6 @@ fn returnWithImplicitCastFromWhileLoopTest() anyerror!void {
260}258}
261259
262test "while on error union with else result follow else prong" {260test "while on error union with else result follow else prong" {
263 if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest;
264 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest;261 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest;
265 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;262 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;
266263
...@@ -271,7 +268,6 @@ test "while on error union with else result follow else prong" {...@@ -271,7 +268,6 @@ test "while on error union with else result follow else prong" {
271}268}
272269
273test "while on error union with else result follow break prong" {270test "while on error union with else result follow break prong" {
274 if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest;
275 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest;271 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest;
276 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;272 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;
277273