authorgravatar for joachim.schmidt557@outlook.comJoachim Schmidt <joachim.schmidt557@outlook.com> 2022-02-27 13:14:57+01:00
committergravatar for joachim.schmidt557@outlook.comJoachim Schmidt <joachim.schmidt557@outlook.com> 2022-02-27 21:38:56+01:00
log91fbcf70935118c0667031ba7ae76fa0e75d80cc
tree35ea06ecf4d617336e7722cb7233362e2e550ffa
parent528008a981cb3c63baf1fa7ce7f888f68be725ee
signaturelock-open Commit is signed but in an unrecognized format.

stage2 ARM: enable more behavior tests


27 files changed, 1 insertions(+), 122 deletions(-)

src/arch/arm/CodeGen.zig+1
...@@ -1359,6 +1359,7 @@ fn airSliceElemVal(self: *Self, inst: Air.Inst.Index) !void {...@@ -1359,6 +1359,7 @@ fn airSliceElemVal(self: *Self, inst: Air.Inst.Index) !void {
13591359
1360 const base_mcv: MCValue = switch (slice_mcv) {1360 const base_mcv: MCValue = switch (slice_mcv) {
1361 .stack_offset => |off| .{ .register = try self.copyToTmpRegister(slice_ptr_field_type, .{ .stack_offset = off + 4 }) },1361 .stack_offset => |off| .{ .register = try self.copyToTmpRegister(slice_ptr_field_type, .{ .stack_offset = off + 4 }) },
1362 .stack_argument_offset => |off| .{ .register = try self.copyToTmpRegister(slice_ptr_field_type, .{ .stack_argument_offset = off + 4 }) },
1362 else => return self.fail("TODO slice_elem_val when slice is {}", .{slice_mcv}),1363 else => return self.fail("TODO slice_elem_val when slice is {}", .{slice_mcv}),
1363 };1364 };
1364 self.register_manager.freezeRegs(&.{base_mcv.register});1365 self.register_manager.freezeRegs(&.{base_mcv.register});
test/behavior/align.zig-2
...@@ -6,8 +6,6 @@ const native_arch = builtin.target.cpu.arch;...@@ -6,8 +6,6 @@ const native_arch = builtin.target.cpu.arch;
6var foo: u8 align(4) = 100;6var foo: u8 align(4) = 100;
77
8test "global variable alignment" {8test "global variable alignment" {
9 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest;
10
11 comptime try expect(@typeInfo(@TypeOf(&foo)).Pointer.alignment == 4);9 comptime try expect(@typeInfo(@TypeOf(&foo)).Pointer.alignment == 4);
12 comptime try expect(@TypeOf(&foo) == *align(4) u8);10 comptime try expect(@TypeOf(&foo) == *align(4) u8);
13 {11 {
test/behavior/array.zig-3
...@@ -70,8 +70,6 @@ test "array literal with explicit type" {...@@ -70,8 +70,6 @@ test "array literal with explicit type" {
70}70}
7171
72test "array literal with inferred length" {72test "array literal with inferred length" {
73 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest;
74
75 const hex_mult = [_]u16{ 4096, 256, 16, 1 };73 const hex_mult = [_]u16{ 4096, 256, 16, 1 };
7674
77 try expect(hex_mult.len == 4);75 try expect(hex_mult.len == 4);
...@@ -142,7 +140,6 @@ test "array with sentinels" {...@@ -142,7 +140,6 @@ test "array with sentinels" {
142140
143test "void arrays" {141test "void arrays" {
144 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;142 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;
145 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest;
146143
147 var array: [4]void = undefined;144 var array: [4]void = undefined;
148 array[0] = void{};145 array[0] = void{};
test/behavior/basic.zig-7
...@@ -120,14 +120,12 @@ test "return string from function" {...@@ -120,14 +120,12 @@ test "return string from function" {
120120
121test "hex escape" {121test "hex escape" {
122 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;122 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;
123 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest;
124123
125 try expect(mem.eql(u8, "\x68\x65\x6c\x6c\x6f", "hello"));124 try expect(mem.eql(u8, "\x68\x65\x6c\x6c\x6f", "hello"));
126}125}
127126
128test "multiline string" {127test "multiline string" {
129 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;128 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;
130 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest;
131129
132 const s1 =130 const s1 =
133 \\one131 \\one
...@@ -140,7 +138,6 @@ test "multiline string" {...@@ -140,7 +138,6 @@ test "multiline string" {
140138
141test "multiline string comments at start" {139test "multiline string comments at start" {
142 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;140 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;
143 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest;
144141
145 const s1 =142 const s1 =
146 //\\one143 //\\one
...@@ -153,7 +150,6 @@ test "multiline string comments at start" {...@@ -153,7 +150,6 @@ test "multiline string comments at start" {
153150
154test "multiline string comments at end" {151test "multiline string comments at end" {
155 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;152 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;
156 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest;
157153
158 const s1 =154 const s1 =
159 \\one155 \\one
...@@ -166,7 +162,6 @@ test "multiline string comments at end" {...@@ -166,7 +162,6 @@ test "multiline string comments at end" {
166162
167test "multiline string comments in middle" {163test "multiline string comments in middle" {
168 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;164 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;
169 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest;
170165
171 const s1 =166 const s1 =
172 \\one167 \\one
...@@ -179,7 +174,6 @@ test "multiline string comments in middle" {...@@ -179,7 +174,6 @@ test "multiline string comments in middle" {
179174
180test "multiline string comments at multiple places" {175test "multiline string comments at multiple places" {
181 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;176 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;
182 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest;
183177
184 const s1 =178 const s1 =
185 \\one179 \\one
...@@ -198,7 +192,6 @@ test "string concatenation" {...@@ -198,7 +192,6 @@ test "string concatenation" {
198192
199test "array mult operator" {193test "array mult operator" {
200 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;194 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;
201 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest;
202195
203 try expect(mem.eql(u8, "ab" ** 5, "ababababab"));196 try expect(mem.eql(u8, "ab" ** 5, "ababababab"));
204}197}
test/behavior/bitcast.zig-6
...@@ -76,7 +76,6 @@ fn conv_uN(comptime N: usize, x: std.meta.Int(.unsigned, N)) std.meta.Int(.signe...@@ -76,7 +76,6 @@ fn conv_uN(comptime N: usize, x: std.meta.Int(.unsigned, N)) std.meta.Int(.signe
7676
77test "nested bitcast" {77test "nested bitcast" {
78 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;78 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;
79 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest;
8079
81 const S = struct {80 const S = struct {
82 fn moo(x: isize) !void {81 fn moo(x: isize) !void {
...@@ -96,7 +95,6 @@ test "nested bitcast" {...@@ -96,7 +95,6 @@ test "nested bitcast" {
9695
97test "@bitCast enum to its integer type" {96test "@bitCast enum to its integer type" {
98 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;97 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;
99 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest;
10098
101 const SOCK = enum(c_int) {99 const SOCK = enum(c_int) {
102 A,100 A,
...@@ -116,7 +114,6 @@ test "@bitCast enum to its integer type" {...@@ -116,7 +114,6 @@ test "@bitCast enum to its integer type" {
116// issue #3010: compiler segfault114// issue #3010: compiler segfault
117test "bitcast literal [4]u8 param to u32" {115test "bitcast literal [4]u8 param to u32" {
118 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;116 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;
119 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest;
120117
121 const ip = @bitCast(u32, [_]u8{ 255, 255, 255, 255 });118 const ip = @bitCast(u32, [_]u8{ 255, 255, 255, 255 });
122 try expect(ip == maxInt(u32));119 try expect(ip == maxInt(u32));
...@@ -124,7 +121,6 @@ test "bitcast literal [4]u8 param to u32" {...@@ -124,7 +121,6 @@ test "bitcast literal [4]u8 param to u32" {
124121
125test "bitcast generates a temporary value" {122test "bitcast generates a temporary value" {
126 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;123 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;
127 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest;
128124
129 var y = @as(u16, 0x55AA);125 var y = @as(u16, 0x55AA);
130 const x = @bitCast(u16, @bitCast([2]u8, y));126 const x = @bitCast(u16, @bitCast([2]u8, y));
...@@ -247,7 +243,6 @@ test "bitcast packed struct literal to byte" {...@@ -247,7 +243,6 @@ test "bitcast packed struct literal to byte" {
247 if (builtin.zig_backend == .stage2_c) return error.SkipZigTest;243 if (builtin.zig_backend == .stage2_c) return error.SkipZigTest;
248 if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest;244 if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest;
249 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;245 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;
250 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest;
251246
252 const Foo = packed struct {247 const Foo = packed struct {
253 value: u8,248 value: u8,
...@@ -261,7 +256,6 @@ test "comptime bitcast used in expression has the correct type" {...@@ -261,7 +256,6 @@ test "comptime bitcast used in expression has the correct type" {
261 if (builtin.zig_backend == .stage2_c) return error.SkipZigTest;256 if (builtin.zig_backend == .stage2_c) return error.SkipZigTest;
262 if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest;257 if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest;
263 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;258 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;
264 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest;
265259
266 const Foo = packed struct {260 const Foo = packed struct {
267 value: u8,261 value: u8,
test/behavior/bitreverse.zig-1
...@@ -7,7 +7,6 @@ test "@bitReverse large exotic integer" {...@@ -7,7 +7,6 @@ test "@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;9 if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest;
10 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest;
11 // Currently failing on stage1 for big-endian targets10 // Currently failing on stage1 for big-endian targets
12 if (builtin.zig_backend == .stage1) return error.SkipZigTest;11 if (builtin.zig_backend == .stage1) return error.SkipZigTest;
1312
test/behavior/bugs/3367.zig-1
...@@ -12,7 +12,6 @@ const Mixin = struct {...@@ -12,7 +12,6 @@ const Mixin = struct {
12test "container member access usingnamespace decls" {12test "container member access usingnamespace decls" {
13 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;13 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;
14 if (builtin.zig_backend == .stage2_c) return error.SkipZigTest;14 if (builtin.zig_backend == .stage2_c) return error.SkipZigTest;
15 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest;
16 var foo = Foo{};15 var foo = Foo{};
17 foo.two();16 foo.two();
18}17}
test/behavior/bugs/3586.zig-1
...@@ -7,7 +7,6 @@ const Container = struct {...@@ -7,7 +7,6 @@ const Container = struct {
7};7};
88
9test "fixed" {9test "fixed" {
10 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest;
11 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;10 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;
1211
13 var ctr = Container{12 var ctr = Container{
test/behavior/bugs/4560.zig-1
...@@ -2,7 +2,6 @@ const std = @import("std");...@@ -2,7 +2,6 @@ const std = @import("std");
2const builtin = @import("builtin");2const builtin = @import("builtin");
33
4test "fixed" {4test "fixed" {
5 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest;
6 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;5 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;
76
8 var s: S = .{7 var s: S = .{
test/behavior/bugs/704.zig-1
...@@ -6,7 +6,6 @@ const xxx = struct {...@@ -6,7 +6,6 @@ const xxx = struct {
6 }6 }
7};7};
8test "bug 704" {8test "bug 704" {
9 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
12 var x: xxx = undefined;11 var x: xxx = undefined;
test/behavior/cast.zig-3
...@@ -1067,7 +1067,6 @@ test "implicit cast *[0]T to E![]const u8" {...@@ -1067,7 +1067,6 @@ test "implicit cast *[0]T to E![]const u8" {
10671067
1068var global_array: [4]u8 = undefined;1068var global_array: [4]u8 = undefined;
1069test "cast from array reference to fn: comptime fn ptr" {1069test "cast from array reference to fn: comptime fn ptr" {
1070 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
1071 if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO1070 if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO
10721071
1073 const f = @ptrCast(*const fn () callconv(.C) void, &global_array);1072 const f = @ptrCast(*const fn () callconv(.C) void, &global_array);
...@@ -1075,7 +1074,6 @@ test "cast from array reference to fn: comptime fn ptr" {...@@ -1075,7 +1074,6 @@ test "cast from array reference to fn: comptime fn ptr" {
1075}1074}
1076test "cast from array reference to fn: runtime fn ptr" {1075test "cast from array reference to fn: runtime fn ptr" {
1077 if (builtin.zig_backend == .stage2_c) return error.SkipZigTest; // TODO1076 if (builtin.zig_backend == .stage2_c) return error.SkipZigTest; // TODO
1078 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
1079 if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO1077 if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO
10801078
1081 var f = @ptrCast(*const fn () callconv(.C) void, &global_array);1079 var f = @ptrCast(*const fn () callconv(.C) void, &global_array);
...@@ -1100,7 +1098,6 @@ test "*const [N]null u8 to ?[]const u8" {...@@ -1100,7 +1098,6 @@ test "*const [N]null u8 to ?[]const u8" {
1100}1098}
11011099
1102test "cast between [*c]T and ?[*:0]T on fn parameter" {1100test "cast between [*c]T and ?[*:0]T on fn parameter" {
1103 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
1104 if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO1101 if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO
11051102
1106 const S = struct {1103 const S = struct {
test/behavior/defer.zig-2
...@@ -5,7 +5,6 @@ const expectEqual = std.testing.expectEqual;...@@ -5,7 +5,6 @@ const expectEqual = std.testing.expectEqual;
5const expectError = std.testing.expectError;5const expectError = std.testing.expectError;
66
7test "break and continue inside loop inside defer expression" {7test "break and continue inside loop inside defer expression" {
8 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest;
9 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;8 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;
109
11 testBreakContInDefer(10);10 testBreakContInDefer(10);
...@@ -24,7 +23,6 @@ fn testBreakContInDefer(x: usize) void {...@@ -24,7 +23,6 @@ fn testBreakContInDefer(x: usize) void {
24}23}
2524
26test "defer and labeled break" {25test "defer and labeled break" {
27 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest;
28 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;26 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;
2927
30 var i = @as(usize, 0);28 var i = @as(usize, 0);
test/behavior/enum.zig-21
...@@ -11,7 +11,6 @@ fn shouldEqual(n: Number, expected: u3) !void {...@@ -11,7 +11,6 @@ fn shouldEqual(n: Number, expected: u3) !void {
11}11}
1212
13test "enum to int" {13test "enum to int" {
14 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest;
15 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;14 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;
1615
17 try shouldEqual(Number.Zero, 0);16 try shouldEqual(Number.Zero, 0);
...@@ -559,7 +558,6 @@ const ValueCount257 = enum {...@@ -559,7 +558,6 @@ const ValueCount257 = enum {
559};558};
560559
561test "enum sizes" {560test "enum sizes" {
562 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest;
563 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;561 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;
564562
565 comptime {563 comptime {
...@@ -571,7 +569,6 @@ test "enum sizes" {...@@ -571,7 +569,6 @@ test "enum sizes" {
571}569}
572570
573test "enum literal equality" {571test "enum literal equality" {
574 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest;
575 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;572 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;
576573
577 const x = .hi;574 const x = .hi;
...@@ -583,7 +580,6 @@ test "enum literal equality" {...@@ -583,7 +580,6 @@ test "enum literal equality" {
583}580}
584581
585test "enum literal cast to enum" {582test "enum literal cast to enum" {
586 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest;
587 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;583 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;
588584
589 const Color = enum { Auto, Off, On };585 const Color = enum { Auto, Off, On };
...@@ -594,7 +590,6 @@ test "enum literal cast to enum" {...@@ -594,7 +590,6 @@ test "enum literal cast to enum" {
594}590}
595591
596test "peer type resolution with enum literal" {592test "peer type resolution with enum literal" {
597 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest;
598 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;593 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;
599594
600 const Items = enum { one, two };595 const Items = enum { one, two };
...@@ -675,7 +670,6 @@ test "non-exhaustive enum" {...@@ -675,7 +670,6 @@ test "non-exhaustive enum" {
675}670}
676671
677test "empty non-exhaustive enum" {672test "empty non-exhaustive enum" {
678 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest;
679 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;673 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;
680674
681 const S = struct {675 const S = struct {
...@@ -741,7 +735,6 @@ const EnumWithTagValues = enum(u4) {...@@ -741,7 +735,6 @@ const EnumWithTagValues = enum(u4) {
741 D = 1 << 3,735 D = 1 << 3,
742};736};
743test "enum with tag values don't require parens" {737test "enum with tag values don't require parens" {
744 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest;
745 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;738 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;
746739
747 try expect(@enumToInt(EnumWithTagValues.C) == 0b0100);740 try expect(@enumToInt(EnumWithTagValues.C) == 0b0100);
...@@ -760,7 +753,6 @@ const MultipleChoice2 = enum(u32) {...@@ -760,7 +753,6 @@ const MultipleChoice2 = enum(u32) {
760};753};
761754
762test "cast integer literal to enum" {755test "cast integer literal to enum" {
763 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest;
764 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;756 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;
765757
766 try expect(@intToEnum(MultipleChoice2, 0) == MultipleChoice2.Unspecified1);758 try expect(@intToEnum(MultipleChoice2, 0) == MultipleChoice2.Unspecified1);
...@@ -795,7 +787,6 @@ const Small2 = enum(u2) { One, Two };...@@ -795,7 +787,6 @@ const Small2 = enum(u2) { One, Two };
795const Small = enum(u2) { One, Two, Three, Four };787const Small = enum(u2) { One, Two, Three, Four };
796788
797test "set enum tag type" {789test "set enum tag type" {
798 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest;
799 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;790 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;
800791
801 {792 {
...@@ -811,7 +802,6 @@ test "set enum tag type" {...@@ -811,7 +802,6 @@ test "set enum tag type" {
811}802}
812803
813test "casting enum to its tag type" {804test "casting enum to its tag type" {
814 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest;
815 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;805 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;
816806
817 try testCastEnumTag(Small2.Two);807 try testCastEnumTag(Small2.Two);
...@@ -823,7 +813,6 @@ fn testCastEnumTag(value: Small2) !void {...@@ -823,7 +813,6 @@ fn testCastEnumTag(value: Small2) !void {
823}813}
824814
825test "enum with 1 field but explicit tag type should still have the tag type" {815test "enum with 1 field but explicit tag type should still have the tag type" {
826 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest;
827 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;816 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;
828817
829 const Enum = enum(u8) {818 const Enum = enum(u8) {
...@@ -833,7 +822,6 @@ test "enum with 1 field but explicit tag type should still have the tag type" {...@@ -833,7 +822,6 @@ test "enum with 1 field but explicit tag type should still have the tag type" {
833}822}
834823
835test "signed integer as enum tag" {824test "signed integer as enum tag" {
836 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest;
837 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;825 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;
838826
839 const SignedEnum = enum(i2) {827 const SignedEnum = enum(i2) {
...@@ -848,7 +836,6 @@ test "signed integer as enum tag" {...@@ -848,7 +836,6 @@ test "signed integer as enum tag" {
848}836}
849837
850test "enum with one member and custom tag type" {838test "enum with one member and custom tag type" {
851 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest;
852 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;839 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;
853840
854 const E = enum(u2) {841 const E = enum(u2) {
...@@ -862,7 +849,6 @@ test "enum with one member and custom tag type" {...@@ -862,7 +849,6 @@ test "enum with one member and custom tag type" {
862}849}
863850
864test "enum with one member and u1 tag type @enumToInt" {851test "enum with one member and u1 tag type @enumToInt" {
865 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest;
866 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;852 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;
867853
868 const Enum = enum(u1) {854 const Enum = enum(u1) {
...@@ -872,7 +858,6 @@ test "enum with one member and u1 tag type @enumToInt" {...@@ -872,7 +858,6 @@ test "enum with one member and u1 tag type @enumToInt" {
872}858}
873859
874test "enum with comptime_int tag type" {860test "enum with comptime_int tag type" {
875 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest;
876 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;861 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;
877862
878 const Enum = enum(comptime_int) {863 const Enum = enum(comptime_int) {
...@@ -884,7 +869,6 @@ test "enum with comptime_int tag type" {...@@ -884,7 +869,6 @@ test "enum with comptime_int tag type" {
884}869}
885870
886test "enum with one member default to u0 tag type" {871test "enum with one member default to u0 tag type" {
887 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest;
888 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;872 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;
889873
890 const E0 = enum { X };874 const E0 = enum { X };
...@@ -903,7 +887,6 @@ fn doALoopThing(id: EnumWithOneMember) void {...@@ -903,7 +887,6 @@ fn doALoopThing(id: EnumWithOneMember) void {
903}887}
904888
905test "comparison operator on enum with one member is comptime known" {889test "comparison operator on enum with one member is comptime known" {
906 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest;
907 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;890 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;
908891
909 doALoopThing(EnumWithOneMember.Eof);892 doALoopThing(EnumWithOneMember.Eof);
...@@ -911,7 +894,6 @@ test "comparison operator on enum with one member is comptime known" {...@@ -911,7 +894,6 @@ test "comparison operator on enum with one member is comptime known" {
911894
912const State = enum { Start };895const State = enum { Start };
913test "switch on enum with one member is comptime known" {896test "switch on enum with one member is comptime known" {
914 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest;
915 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;897 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;
916898
917 var state = State.Start;899 var state = State.Start;
...@@ -922,7 +904,6 @@ test "switch on enum with one member is comptime known" {...@@ -922,7 +904,6 @@ test "switch on enum with one member is comptime known" {
922}904}
923905
924test "method call on an enum" {906test "method call on an enum" {
925 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest;
926 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;907 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;
927908
928 const S = struct {909 const S = struct {
...@@ -1117,7 +1098,6 @@ test "tag name with assigned enum values" {...@@ -1117,7 +1098,6 @@ test "tag name with assigned enum values" {
1117}1098}
11181099
1119test "@tagName on enum literals" {1100test "@tagName on enum literals" {
1120 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest;
1121 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;1101 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;
11221102
1123 try expect(mem.eql(u8, @tagName(.FooBar), "FooBar"));1103 try expect(mem.eql(u8, @tagName(.FooBar), "FooBar"));
...@@ -1184,7 +1164,6 @@ fn getC(data: *const BitFieldOfEnums) C {...@@ -1184,7 +1164,6 @@ fn getC(data: *const BitFieldOfEnums) C {
1184}1164}
11851165
1186test "enum literal in array literal" {1166test "enum literal in array literal" {
1187 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest;
1188 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;1167 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;
11891168
1190 const Items = enum { one, two };1169 const Items = enum { one, two };
test/behavior/error.zig-7
...@@ -6,7 +6,6 @@ const expectEqual = std.testing.expectEqual;...@@ -6,7 +6,6 @@ const expectEqual = std.testing.expectEqual;
6const mem = std.mem;6const mem = std.mem;
77
8test "error values" {8test "error values" {
9 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
12 const a = @errorToInt(error.err1);11 const a = @errorToInt(error.err1);
...@@ -15,7 +14,6 @@ test "error values" {...@@ -15,7 +14,6 @@ test "error values" {
15}14}
1615
17test "redefinition of error values allowed" {16test "redefinition of error values allowed" {
18 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest;
19 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;17 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;
2018
21 shouldBeNotEqual(error.AnError, error.SecondError);19 shouldBeNotEqual(error.AnError, error.SecondError);
...@@ -39,7 +37,6 @@ fn errBinaryOperatorG(x: bool) anyerror!isize {...@@ -39,7 +37,6 @@ fn errBinaryOperatorG(x: bool) anyerror!isize {
39}37}
4038
41test "empty error union" {39test "empty error union" {
42 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest;
43 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;40 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;
4441
45 const x = error{} || error{};42 const x = error{} || error{};
...@@ -98,7 +95,6 @@ fn makeANonErr() anyerror!i32 {...@@ -98,7 +95,6 @@ fn makeANonErr() anyerror!i32 {
98}95}
9996
100test "syntax: optional operator in front of error union operator" {97test "syntax: optional operator in front of error union operator" {
101 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest;
102 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;98 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;
10399
104 comptime {100 comptime {
...@@ -157,7 +153,6 @@ test "implicit cast to optional to error union to return result loc" {...@@ -157,7 +153,6 @@ test "implicit cast to optional to error union to return result loc" {
157}153}
158154
159test "error: fn returning empty error set can be passed as fn returning any error" {155test "error: fn returning empty error set can be passed as fn returning any error" {
160 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest;
161 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;156 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;
162157
163 entry();158 entry();
...@@ -178,7 +173,6 @@ fn bar2() (error{}!void) {}...@@ -178,7 +173,6 @@ fn bar2() (error{}!void) {}
178test "error union type " {173test "error union type " {
179 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;174 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;
180 if (builtin.zig_backend == .stage2_c) return error.SkipZigTest; // TODO175 if (builtin.zig_backend == .stage2_c) return error.SkipZigTest; // TODO
181 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
182 if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO176 if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO
183 if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest; // TODO177 if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest; // TODO
184178
...@@ -197,7 +191,6 @@ fn testErrorUnionType() !void {...@@ -197,7 +191,6 @@ fn testErrorUnionType() !void {
197test "error set type" {191test "error set type" {
198 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;192 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;
199 if (builtin.zig_backend == .stage2_c) return error.SkipZigTest; // TODO193 if (builtin.zig_backend == .stage2_c) return error.SkipZigTest; // TODO
200 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
201 if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO194 if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO
202 if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest; // TODO195 if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest; // TODO
203196
test/behavior/fn.zig-15
...@@ -5,7 +5,6 @@ const expect = testing.expect;...@@ -5,7 +5,6 @@ const expect = testing.expect;
5const expectEqual = testing.expectEqual;5const expectEqual = testing.expectEqual;
66
7test "params" {7test "params" {
8 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest;
9 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;8 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;
109
11 try expect(testParamsAdd(22, 11) == 33);10 try expect(testParamsAdd(22, 11) == 33);
...@@ -15,7 +14,6 @@ fn testParamsAdd(a: i32, b: i32) i32 {...@@ -15,7 +14,6 @@ fn testParamsAdd(a: i32, b: i32) i32 {
15}14}
1615
17test "local variables" {16test "local variables" {
18 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest;
19 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;17 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;
2018
21 testLocVars(2);19 testLocVars(2);
...@@ -26,7 +24,6 @@ fn testLocVars(b: i32) void {...@@ -26,7 +24,6 @@ fn testLocVars(b: i32) void {
26}24}
2725
28test "mutable local variables" {26test "mutable local variables" {
29 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest;
30 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;27 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;
3128
32 var zero: i32 = 0;29 var zero: i32 = 0;
...@@ -40,7 +37,6 @@ test "mutable local variables" {...@@ -40,7 +37,6 @@ test "mutable local variables" {
40}37}
4138
42test "separate block scopes" {39test "separate block scopes" {
43 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest;
44 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;40 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;
4541
46 {42 {
...@@ -59,14 +55,12 @@ fn @"weird function name"() i32 {...@@ -59,14 +55,12 @@ fn @"weird function name"() i32 {
59 return 1234;55 return 1234;
60}56}
61test "weird function name" {57test "weird function name" {
62 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest;
63 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;58 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;
6459
65 try expect(@"weird function name"() == 1234);60 try expect(@"weird function name"() == 1234);
66}61}
6762
68test "assign inline fn to const variable" {63test "assign inline fn to const variable" {
69 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest;
70 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;64 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;
7165
72 const a = inlineFn;66 const a = inlineFn;
...@@ -86,7 +80,6 @@ fn outer(y: u32) *const fn (u32) u32 {...@@ -86,7 +80,6 @@ fn outer(y: u32) *const fn (u32) u32 {
86}80}
8781
88test "return inner function which references comptime variable of outer function" {82test "return inner function which references comptime variable of outer function" {
89 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest;
90 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;83 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;
9184
92 if (builtin.zig_backend == .stage1) return error.SkipZigTest;85 if (builtin.zig_backend == .stage1) return error.SkipZigTest;
...@@ -156,7 +149,6 @@ test "inline function call that calls optional function pointer, return pointer...@@ -156,7 +149,6 @@ test "inline function call that calls optional function pointer, return pointer
156}149}
157150
158test "implicit cast function unreachable return" {151test "implicit cast function unreachable return" {
159 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest;
160 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;152 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;
161153
162 wantsFnWithVoid(fnWithUnreachable);154 wantsFnWithVoid(fnWithUnreachable);
...@@ -209,7 +201,6 @@ test "function with complex callconv and return type expressions" {...@@ -209,7 +201,6 @@ test "function with complex callconv and return type expressions" {
209}201}
210202
211test "pass by non-copying value" {203test "pass by non-copying value" {
212 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest;
213 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;204 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;
214205
215 try expect(addPointCoords(Point{ .x = 1, .y = 2 }) == 3);206 try expect(addPointCoords(Point{ .x = 1, .y = 2 }) == 3);
...@@ -238,7 +229,6 @@ fn addPointCoordsVar(pt: anytype) !i32 {...@@ -238,7 +229,6 @@ fn addPointCoordsVar(pt: anytype) !i32 {
238}229}
239230
240test "pass by non-copying value as method" {231test "pass by non-copying value as method" {
241 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest;
242 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;232 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;
243233
244 var pt = Point2{ .x = 1, .y = 2 };234 var pt = Point2{ .x = 1, .y = 2 };
...@@ -255,7 +245,6 @@ const Point2 = struct {...@@ -255,7 +245,6 @@ const Point2 = struct {
255};245};
256246
257test "pass by non-copying value as method, which is generic" {247test "pass by non-copying value as method, which is generic" {
258 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest;
259 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;248 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;
260249
261 var pt = Point3{ .x = 1, .y = 2 };250 var pt = Point3{ .x = 1, .y = 2 };
...@@ -273,7 +262,6 @@ const Point3 = struct {...@@ -273,7 +262,6 @@ const Point3 = struct {
273};262};
274263
275test "pass by non-copying value as method, at comptime" {264test "pass by non-copying value as method, at comptime" {
276 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest;
277 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;265 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;
278266
279 comptime {267 comptime {
...@@ -325,7 +313,6 @@ fn voidFun(a: i32, b: void, c: i32, d: void) !void {...@@ -325,7 +313,6 @@ fn voidFun(a: i32, b: void, c: i32, d: void) !void {
325}313}
326314
327test "call function with empty string" {315test "call function with empty string" {
328 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest;
329 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;316 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;
330317
331 acceptsString("");318 acceptsString("");
...@@ -362,7 +349,6 @@ fn fn4() u32 {...@@ -362,7 +349,6 @@ fn fn4() u32 {
362}349}
363350
364test "number literal as an argument" {351test "number literal as an argument" {
365 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest;
366 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;352 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;
367353
368 try numberLiteralArg(3);354 try numberLiteralArg(3);
...@@ -395,7 +381,6 @@ test "function call with anon list literal" {...@@ -395,7 +381,6 @@ test "function call with anon list literal" {
395}381}
396382
397test "ability to give comptime types and non comptime types to same parameter" {383test "ability to give comptime types and non comptime types to same parameter" {
398 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest;
399 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;384 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;
400385
401 const S = struct {386 const S = struct {
test/behavior/for.zig-3
...@@ -21,7 +21,6 @@ test "continue in for loop" {...@@ -21,7 +21,6 @@ test "continue in for loop" {
21}21}
2222
23test "break from outer for loop" {23test "break from outer for loop" {
24 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest;
25 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;24 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;
2625
27 try testBreakOuter();26 try testBreakOuter();
...@@ -41,7 +40,6 @@ fn testBreakOuter() !void {...@@ -41,7 +40,6 @@ fn testBreakOuter() !void {
41}40}
4241
43test "continue outer for loop" {42test "continue outer for loop" {
44 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest;
45 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;43 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;
4644
47 try testContinueOuter();45 try testContinueOuter();
...@@ -61,7 +59,6 @@ fn testContinueOuter() !void {...@@ -61,7 +59,6 @@ fn testContinueOuter() !void {
61}59}
6260
63test "ignore lval with underscore (for loop)" {61test "ignore lval with underscore (for loop)" {
64 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest;
65 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;62 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;
6663
67 for ([_]void{}) |_, i| {64 for ([_]void{}) |_, i| {
test/behavior/generics.zig-6
...@@ -5,7 +5,6 @@ const expect = testing.expect;...@@ -5,7 +5,6 @@ const expect = testing.expect;
5const expectEqual = testing.expectEqual;5const expectEqual = testing.expectEqual;
66
7test "one param, explicit comptime" {7test "one param, explicit comptime" {
8 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest;
9 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;8 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;
109
11 var x: usize = 0;10 var x: usize = 0;
...@@ -43,7 +42,6 @@ fn add(comptime a: i32, b: i32) i32 {...@@ -43,7 +42,6 @@ fn add(comptime a: i32, b: i32) i32 {
4342
44const the_max = max(u32, 1234, 5678);43const the_max = max(u32, 1234, 5678);
45test "compile time generic eval" {44test "compile time generic eval" {
46 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest;
47 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;45 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;
4846
49 try expect(the_max == 5678);47 try expect(the_max == 5678);
...@@ -144,7 +142,6 @@ pub fn SmallList(comptime T: type, comptime STATIC_SIZE: usize) type {...@@ -144,7 +142,6 @@ pub fn SmallList(comptime T: type, comptime STATIC_SIZE: usize) type {
144}142}
145143
146test "const decls in struct" {144test "const decls in struct" {
147 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest;
148 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;145 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;
149146
150 try expect(GenericDataThing(3).count_plus_one == 4);147 try expect(GenericDataThing(3).count_plus_one == 4);
...@@ -156,7 +153,6 @@ fn GenericDataThing(comptime count: isize) type {...@@ -156,7 +153,6 @@ fn GenericDataThing(comptime count: isize) type {
156}153}
157154
158test "use generic param in generic param" {155test "use generic param in generic param" {
159 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest;
160 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;156 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;
161157
162 try expect(aGenericFn(i32, 3, 4) == 7);158 try expect(aGenericFn(i32, 3, 4) == 7);
...@@ -201,7 +197,6 @@ test "generic fn keeps non-generic parameter types" {...@@ -201,7 +197,6 @@ test "generic fn keeps non-generic parameter types" {
201}197}
202198
203test "array of generic fns" {199test "array of generic fns" {
204 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest;
205 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;200 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;
206 if (builtin.zig_backend == .stage2_c) return error.SkipZigTest;201 if (builtin.zig_backend == .stage2_c) return error.SkipZigTest;
207202
...@@ -223,7 +218,6 @@ fn foo2(arg: anytype) bool {...@@ -223,7 +218,6 @@ fn foo2(arg: anytype) bool {
223218
224test "generic struct" {219test "generic struct" {
225 if (builtin.zig_backend == .stage2_c) return error.SkipZigTest;220 if (builtin.zig_backend == .stage2_c) return error.SkipZigTest;
226 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest;
227 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;221 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;
228 var a1 = GenNode(i32){222 var a1 = GenNode(i32){
229 .value = 13,223 .value = 13,
test/behavior/if.zig-3
...@@ -30,7 +30,6 @@ fn firstEqlThird(a: i32, b: i32, c: i32) void {...@@ -30,7 +30,6 @@ fn firstEqlThird(a: i32, b: i32, c: i32) void {
30}30}
3131
32test "else if expression" {32test "else if expression" {
33 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest;
34 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;33 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;
3534
36 try expect(elseIfExpressionF(1) == 1);35 try expect(elseIfExpressionF(1) == 1);
...@@ -67,7 +66,6 @@ test "unwrap mutable global var" {...@@ -67,7 +66,6 @@ test "unwrap mutable global var" {
67}66}
6867
69test "labeled break inside comptime if inside runtime if" {68test "labeled break inside comptime if inside runtime if" {
70 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest;
71 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;69 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;
7270
73 var answer: i32 = 0;71 var answer: i32 = 0;
...@@ -81,7 +79,6 @@ test "labeled break inside comptime if inside runtime if" {...@@ -81,7 +79,6 @@ test "labeled break inside comptime if inside runtime if" {
81}79}
8280
83test "const result loc, runtime if cond, else unreachable" {81test "const result loc, runtime if cond, else unreachable" {
84 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest;
85 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;82 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;
8683
87 const Num = enum { One, Two };84 const Num = enum { One, Two };
test/behavior/slice.zig-2
...@@ -220,7 +220,6 @@ test "compile time slice of pointer to hard coded address" {...@@ -220,7 +220,6 @@ test "compile time slice of pointer to hard coded address" {
220220
221test "slice string literal has correct type" {221test "slice string literal has correct type" {
222 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;222 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;
223 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest;
224223
225 comptime {224 comptime {
226 try expect(@TypeOf("aoeu"[0..]) == *const [4:0]u8);225 try expect(@TypeOf("aoeu"[0..]) == *const [4:0]u8);
...@@ -565,7 +564,6 @@ test "array concat of slices gives slice" {...@@ -565,7 +564,6 @@ test "array concat of slices gives slice" {
565}564}
566565
567test "slice bounds in comptime concatenation" {566test "slice bounds in comptime concatenation" {
568 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
569 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO567 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
570568
571 const bs = comptime blk: {569 const bs = comptime blk: {
test/behavior/struct.zig-7
...@@ -215,7 +215,6 @@ fn makeBar2(x: i32, y: i32) Bar {...@@ -215,7 +215,6 @@ fn makeBar2(x: i32, y: i32) Bar {
215215
216test "call method with mutable reference to struct with no fields" {216test "call method with mutable reference to struct with no fields" {
217 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;217 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;
218 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest;
219218
220 const S = struct {219 const S = struct {
221 fn doC(s: *const @This()) bool {220 fn doC(s: *const @This()) bool {
...@@ -343,7 +342,6 @@ test "pass slice of empty struct to fn" {...@@ -343,7 +342,6 @@ test "pass slice of empty struct to fn" {
343 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;342 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;
344 if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest; // TODO343 if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest; // TODO
345 if (builtin.zig_backend == .stage2_c) return error.SkipZigTest; // TODO344 if (builtin.zig_backend == .stage2_c) return error.SkipZigTest; // TODO
346 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
347345
348 try expect(testPassSliceOfEmptyStructToFn(&[_]EmptyStruct2{EmptyStruct2{}}) == 1);346 try expect(testPassSliceOfEmptyStructToFn(&[_]EmptyStruct2{EmptyStruct2{}}) == 1);
349}347}
...@@ -369,7 +367,6 @@ test "self-referencing struct via array member" {...@@ -369,7 +367,6 @@ test "self-referencing struct via array member" {
369test "empty struct method call" {367test "empty struct method call" {
370 if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest; // TODO368 if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest; // TODO
371 if (builtin.zig_backend == .stage2_c) return error.SkipZigTest; // TODO369 if (builtin.zig_backend == .stage2_c) return error.SkipZigTest; // TODO
372 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
373370
374 const es = EmptyStruct{};371 const es = EmptyStruct{};
375 try expect(es.method() == 1234);372 try expect(es.method() == 1234);
...@@ -567,7 +564,6 @@ test "implicit cast packed struct field to const ptr" {...@@ -567,7 +564,6 @@ test "implicit cast packed struct field to const ptr" {
567test "zero-bit field in packed struct" {564test "zero-bit field in packed struct" {
568 if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest; // TODO565 if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest; // TODO
569 if (builtin.zig_backend == .stage2_c) return error.SkipZigTest; // TODO566 if (builtin.zig_backend == .stage2_c) return error.SkipZigTest; // TODO
570 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
571 if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO567 if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO
572568
573 const S = packed struct {569 const S = packed struct {
...@@ -645,7 +641,6 @@ test "default struct initialization fields" {...@@ -645,7 +641,6 @@ test "default struct initialization fields" {
645 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;641 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;
646 if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest; // TODO642 if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest; // TODO
647 if (builtin.zig_backend == .stage2_c) return error.SkipZigTest; // TODO643 if (builtin.zig_backend == .stage2_c) return error.SkipZigTest; // TODO
648 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
649644
650 const S = struct {645 const S = struct {
651 a: i32 = 1234,646 a: i32 = 1234,
...@@ -776,7 +771,6 @@ test "pointer to packed struct member in a stack variable" {...@@ -776,7 +771,6 @@ test "pointer to packed struct member in a stack variable" {
776test "packed struct with u0 field access" {771test "packed struct with u0 field access" {
777 if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest; // TODO772 if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest; // TODO
778 if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO773 if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO
779 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
780 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO774 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
781 if (builtin.zig_backend == .stage2_c) return error.SkipZigTest; // TODO775 if (builtin.zig_backend == .stage2_c) return error.SkipZigTest; // TODO
782776
...@@ -915,7 +909,6 @@ test "anonymous struct literal syntax" {...@@ -915,7 +909,6 @@ test "anonymous struct literal syntax" {
915 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;909 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;
916 if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest; // TODO910 if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest; // TODO
917 if (builtin.zig_backend == .stage2_c) return error.SkipZigTest; // TODO911 if (builtin.zig_backend == .stage2_c) return error.SkipZigTest; // TODO
918 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
919912
920 const S = struct {913 const S = struct {
921 const Point = struct {914 const Point = struct {
test/behavior/this.zig-1
...@@ -21,7 +21,6 @@ fn add(x: i32, y: i32) i32 {...@@ -21,7 +21,6 @@ fn add(x: i32, y: i32) i32 {
21}21}
2222
23test "this refer to module call private fn" {23test "this refer to module call private fn" {
24 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest;
25 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;24 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;
2625
27 try expect(module.add(1, 2) == 3);26 try expect(module.add(1, 2) == 3);
test/behavior/try.zig-2
...@@ -25,7 +25,6 @@ fn returnsTen() anyerror!i32 {...@@ -25,7 +25,6 @@ fn returnsTen() anyerror!i32 {
25}25}
2626
27test "try without vars" {27test "try without vars" {
28 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest;
29 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;28 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;
3029
31 const result1 = if (failIfTrue(true)) 1 else |_| @as(i32, 2);30 const result1 = if (failIfTrue(true)) 1 else |_| @as(i32, 2);
...@@ -44,7 +43,6 @@ fn failIfTrue(ok: bool) anyerror!void {...@@ -44,7 +43,6 @@ fn failIfTrue(ok: bool) anyerror!void {
44}43}
4544
46test "try then not executed with assignment" {45test "try then not executed with assignment" {
47 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest;
48 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;46 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;
4947
50 if (failIfTrue(true)) {48 if (failIfTrue(true)) {
test/behavior/type_info.zig-1
...@@ -289,7 +289,6 @@ fn testUnion() !void {...@@ -289,7 +289,6 @@ fn testUnion() !void {
289}289}
290290
291test "type info: struct info" {291test "type info: struct info" {
292 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest;
293 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;292 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;
294293
295 try testStruct();294 try testStruct();
test/behavior/undefined.zig-1
...@@ -77,7 +77,6 @@ test "assign undefined to struct with method" {...@@ -77,7 +77,6 @@ test "assign undefined to struct with method" {
77}77}
7878
79test "type name of undefined" {79test "type name of undefined" {
80 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest;
81 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;80 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;
8281
83 const x = undefined;82 const x = undefined;
test/behavior/union.zig-20
...@@ -43,8 +43,6 @@ fn setInt(foo: *Foo, x: i32) void {...@@ -43,8 +43,6 @@ fn setInt(foo: *Foo, x: i32) void {
43}43}
4444
45test "comptime union field access" {45test "comptime union field access" {
46 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest;
47
48 comptime {46 comptime {
49 var foo = Foo{ .int = 0 };47 var foo = Foo{ .int = 0 };
50 try expect(foo.int == 0);48 try expect(foo.int == 0);
...@@ -75,14 +73,10 @@ const ExternPtrOrInt = extern union {...@@ -75,14 +73,10 @@ const ExternPtrOrInt = extern union {
75 int: u64,73 int: u64,
76};74};
77test "extern union size" {75test "extern union size" {
78 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest;
79
80 comptime try expect(@sizeOf(ExternPtrOrInt) == 8);76 comptime try expect(@sizeOf(ExternPtrOrInt) == 8);
81}77}
8278
83test "0-sized extern union definition" {79test "0-sized extern union definition" {
84 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest;
85
86 const U = extern union {80 const U = extern union {
87 a: void,81 a: void,
88 const f = 1;82 const f = 1;
...@@ -112,8 +106,6 @@ const err = @as(anyerror!Agg, Agg{...@@ -112,8 +106,6 @@ const err = @as(anyerror!Agg, Agg{
112const array = [_]Value{ v1, v2, v1, v2 };106const array = [_]Value{ v1, v2, v1, v2 };
113107
114test "unions embedded in aggregate types" {108test "unions embedded in aggregate types" {
115 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest;
116
117 switch (array[1]) {109 switch (array[1]) {
118 Value.Array => |arr| try expect(arr[4] == 3),110 Value.Array => |arr| try expect(arr[4] == 3),
119 else => unreachable,111 else => unreachable,
...@@ -125,8 +117,6 @@ test "unions embedded in aggregate types" {...@@ -125,8 +117,6 @@ test "unions embedded in aggregate types" {
125}117}
126118
127test "access a member of tagged union with conflicting enum tag name" {119test "access a member of tagged union with conflicting enum tag name" {
128 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest;
129
130 const Bar = union(enum) {120 const Bar = union(enum) {
131 A: A,121 A: A,
132 B: B,122 B: B,
...@@ -169,8 +159,6 @@ const TaggedUnionWithPayload = union(enum) {...@@ -169,8 +159,6 @@ const TaggedUnionWithPayload = union(enum) {
169};159};
170160
171test "union alignment" {161test "union alignment" {
172 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest;
173
174 comptime {162 comptime {
175 try expect(@alignOf(AlignTestTaggedUnion) >= @alignOf([9]u8));163 try expect(@alignOf(AlignTestTaggedUnion) >= @alignOf([9]u8));
176 try expect(@alignOf(AlignTestTaggedUnion) >= @alignOf(u64));164 try expect(@alignOf(AlignTestTaggedUnion) >= @alignOf(u64));
...@@ -268,8 +256,6 @@ fn testCastUnionToTag() !void {...@@ -268,8 +256,6 @@ fn testCastUnionToTag() !void {
268}256}
269257
270test "union field access gives the enum values" {258test "union field access gives the enum values" {
271 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest;
272
273 try expect(TheUnion.A == TheTag.A);259 try expect(TheUnion.A == TheTag.A);
274 try expect(TheUnion.B == TheTag.B);260 try expect(TheUnion.B == TheTag.B);
275 try expect(TheUnion.C == TheTag.C);261 try expect(TheUnion.C == TheTag.C);
...@@ -343,8 +329,6 @@ const PackedPtrOrInt = packed union {...@@ -343,8 +329,6 @@ const PackedPtrOrInt = packed union {
343 int: u64,329 int: u64,
344};330};
345test "packed union size" {331test "packed union size" {
346 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest;
347
348 comptime try expect(@sizeOf(PackedPtrOrInt) == 8);332 comptime try expect(@sizeOf(PackedPtrOrInt) == 8);
349}333}
350334
...@@ -352,8 +336,6 @@ const ZeroBits = union {...@@ -352,8 +336,6 @@ const ZeroBits = union {
352 OnlyField: void,336 OnlyField: void,
353};337};
354test "union with only 1 field which is void should be zero bits" {338test "union with only 1 field which is void should be zero bits" {
355 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest;
356
357 comptime try expect(@sizeOf(ZeroBits) == 0);339 comptime try expect(@sizeOf(ZeroBits) == 0);
358}340}
359341
...@@ -411,8 +393,6 @@ test "union with only 1 field casted to its enum type" {...@@ -411,8 +393,6 @@ test "union with only 1 field casted to its enum type" {
411}393}
412394
413test "union with one member defaults to u0 tag type" {395test "union with one member defaults to u0 tag type" {
414 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest;
415
416 const U0 = union(enum) {396 const U0 = union(enum) {
417 X: u32,397 X: u32,
418 };398 };
test/behavior/usingnamespace.zig-4
...@@ -11,7 +11,6 @@ const C = struct {...@@ -11,7 +11,6 @@ const C = struct {
11};11};
1212
13test "basic usingnamespace" {13test "basic usingnamespace" {
14 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest;
15 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;14 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;
1615
17 try std.testing.expect(C.B == bool);16 try std.testing.expect(C.B == bool);
...@@ -24,7 +23,6 @@ fn Foo(comptime T: type) type {...@@ -24,7 +23,6 @@ fn Foo(comptime T: type) type {
24}23}
2524
26test "usingnamespace inside a generic struct" {25test "usingnamespace inside a generic struct" {
27 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest;
28 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;26 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;
2927
30 const std2 = Foo(std);28 const std2 = Foo(std);
...@@ -38,7 +36,6 @@ usingnamespace struct {...@@ -38,7 +36,6 @@ usingnamespace struct {
38};36};
3937
40test "usingnamespace does not redeclare an imported variable" {38test "usingnamespace does not redeclare an imported variable" {
41 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest;
42 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;39 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;
4340
44 comptime try std.testing.expect(@This().foo == 42);41 comptime try std.testing.expect(@This().foo == 42);
...@@ -57,7 +54,6 @@ fn privateFunction() bool {...@@ -57,7 +54,6 @@ fn privateFunction() bool {
57}54}
5855
59test {56test {
60 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest;
61 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;57 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;
6258
63 _ = @import("usingnamespace/import_segregation.zig");59 _ = @import("usingnamespace/import_segregation.zig");
test/behavior/void.zig-1
...@@ -43,7 +43,6 @@ test "void optional" {...@@ -43,7 +43,6 @@ test "void optional" {
43}43}
4444
45test "void array as a local variable initializer" {45test "void array as a local variable initializer" {
46 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest;
47 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;46 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;
4847
49 var x = [_]void{{}} ** 1004;48 var x = [_]void{{}} ** 1004;