| author | |
| committer | |
| log | ddd5b57045d38b7d1f7d5a4120302797433233cd |
| tree | 2bf2579f55dba9300eb5e62f52fee0166b3e2503 |
| parent | 4994ac18e4b540ceaac450db552749c7ac559396 |
30 files changed, 18 insertions(+), 81 deletions(-)
src/arch/aarch64/CodeGen.zig+18-18| ... | @@ -4572,6 +4572,7 @@ fn lowerUnnamedConst(self: *Self, tv: TypedValue) InnerError!MCValue { | ... | @@ -4572,6 +4572,7 @@ fn lowerUnnamedConst(self: *Self, tv: TypedValue) InnerError!MCValue { |
| 4572 | } | 4572 | } |
| 4573 | 4573 | ||
| 4574 | fn genTypedValue(self: *Self, typed_value: TypedValue) InnerError!MCValue { | 4574 | fn genTypedValue(self: *Self, typed_value: TypedValue) InnerError!MCValue { |
| 4575 | log.debug("genTypedValue: ty = {}, val = {}", .{ typed_value.ty.fmtDebug(), typed_value.val.fmtDebug() }); | ||
| 4575 | if (typed_value.val.isUndef()) | 4576 | if (typed_value.val.isUndef()) |
| 4576 | return MCValue{ .undef = {} }; | 4577 | return MCValue{ .undef = {} }; |
| 4577 | 4578 | ||
| ... | @@ -4585,20 +4586,13 @@ fn genTypedValue(self: *Self, typed_value: TypedValue) InnerError!MCValue { | ... | @@ -4585,20 +4586,13 @@ fn genTypedValue(self: *Self, typed_value: TypedValue) InnerError!MCValue { |
| 4585 | 4586 | ||
| 4586 | switch (typed_value.ty.zigTypeTag()) { | 4587 | switch (typed_value.ty.zigTypeTag()) { |
| 4587 | .Pointer => switch (typed_value.ty.ptrSize()) { | 4588 | .Pointer => switch (typed_value.ty.ptrSize()) { |
| 4588 | .Slice => { | 4589 | .Slice => {}, |
| 4589 | return self.lowerUnnamedConst(typed_value); | ||
| 4590 | }, | ||
| 4591 | else => { | 4590 | else => { |
| 4592 | switch (typed_value.val.tag()) { | 4591 | switch (typed_value.val.tag()) { |
| 4593 | .int_u64 => { | 4592 | .int_u64 => { |
| 4594 | return MCValue{ .immediate = typed_value.val.toUnsignedInt(target) }; | 4593 | return MCValue{ .immediate = typed_value.val.toUnsignedInt(target) }; |
| 4595 | }, | 4594 | }, |
| 4596 | .slice => { | 4595 | else => {}, |
| 4597 | return self.lowerUnnamedConst(typed_value); | ||
| 4598 | }, | ||
| 4599 | else => { | ||
| 4600 | return self.fail("TODO codegen more kinds of const pointers: {}", .{typed_value.val.tag()}); | ||
| 4601 | }, | ||
| 4602 | } | 4596 | } |
| 4603 | }, | 4597 | }, |
| 4604 | }, | 4598 | }, |
| ... | @@ -4614,15 +4608,11 @@ fn genTypedValue(self: *Self, typed_value: TypedValue) InnerError!MCValue { | ... | @@ -4614,15 +4608,11 @@ fn genTypedValue(self: *Self, typed_value: TypedValue) InnerError!MCValue { |
| 4614 | }; | 4608 | }; |
| 4615 | 4609 | ||
| 4616 | return MCValue{ .immediate = unsigned }; | 4610 | return MCValue{ .immediate = unsigned }; |
| 4617 | } else { | ||
| 4618 | return self.lowerUnnamedConst(typed_value); | ||
| 4619 | } | 4611 | } |
| 4620 | }, | 4612 | }, |
| 4621 | .Bool => { | 4613 | .Bool => { |
| 4622 | return MCValue{ .immediate = @boolToInt(typed_value.val.toBool()) }; | 4614 | return MCValue{ .immediate = @boolToInt(typed_value.val.toBool()) }; |
| 4623 | }, | 4615 | }, |
| 4624 | .ComptimeInt => unreachable, // semantic analysis prevents this | ||
| 4625 | .ComptimeFloat => unreachable, // semantic analysis prevents this | ||
| 4626 | .Optional => { | 4616 | .Optional => { |
| 4627 | if (typed_value.ty.isPtrLikeOptional()) { | 4617 | if (typed_value.ty.isPtrLikeOptional()) { |
| 4628 | if (typed_value.val.isNull()) | 4618 | if (typed_value.val.isNull()) |
| ... | @@ -4636,7 +4626,6 @@ fn genTypedValue(self: *Self, typed_value: TypedValue) InnerError!MCValue { | ... | @@ -4636,7 +4626,6 @@ fn genTypedValue(self: *Self, typed_value: TypedValue) InnerError!MCValue { |
| 4636 | } else if (typed_value.ty.abiSize(self.target.*) == 1) { | 4626 | } else if (typed_value.ty.abiSize(self.target.*) == 1) { |
| 4637 | return MCValue{ .immediate = @boolToInt(typed_value.val.isNull()) }; | 4627 | return MCValue{ .immediate = @boolToInt(typed_value.val.isNull()) }; |
| 4638 | } | 4628 | } |
| 4639 | return self.fail("TODO non pointer optionals", .{}); | ||
| 4640 | }, | 4629 | }, |
| 4641 | .Enum => { | 4630 | .Enum => { |
| 4642 | if (typed_value.val.castTag(.enum_field_index)) |field_index| { | 4631 | if (typed_value.val.castTag(.enum_field_index)) |field_index| { |
| ... | @@ -4695,11 +4684,22 @@ fn genTypedValue(self: *Self, typed_value: TypedValue) InnerError!MCValue { | ... | @@ -4695,11 +4684,22 @@ fn genTypedValue(self: *Self, typed_value: TypedValue) InnerError!MCValue { |
| 4695 | 4684 | ||
| 4696 | return self.lowerUnnamedConst(typed_value); | 4685 | return self.lowerUnnamedConst(typed_value); |
| 4697 | }, | 4686 | }, |
| 4698 | .Struct => { | 4687 | |
| 4699 | return self.lowerUnnamedConst(typed_value); | 4688 | .ComptimeInt => unreachable, // semantic analysis prevents this |
| 4700 | }, | 4689 | .ComptimeFloat => unreachable, // semantic analysis prevents this |
| 4701 | else => return self.fail("TODO implement const of type '{}'", .{typed_value.ty.fmtDebug()}), | 4690 | .Type => unreachable, |
| 4691 | .EnumLiteral => unreachable, | ||
| 4692 | .Void => unreachable, | ||
| 4693 | .NoReturn => unreachable, | ||
| 4694 | .Undefined => unreachable, | ||
| 4695 | .Null => unreachable, | ||
| 4696 | .BoundFn => unreachable, | ||
| 4697 | .Opaque => unreachable, | ||
| 4698 | |||
| 4699 | else => {}, | ||
| 4702 | } | 4700 | } |
| 4701 | |||
| 4702 | return self.lowerUnnamedConst(typed_value); | ||
| 4703 | } | 4703 | } |
| 4704 | 4704 | ||
| 4705 | const CallMCValues = struct { | 4705 | const CallMCValues = struct { |
test/behavior/align.zig-1| ... | @@ -7,7 +7,6 @@ var foo: u8 align(4) = 100; | ... | @@ -7,7 +7,6 @@ var foo: u8 align(4) = 100; |
| 7 | 7 | ||
| 8 | test "global variable alignment" { | 8 | test "global variable alignment" { |
| 9 | if (builtin.zig_backend == .stage2_c) return error.SkipZigTest; // TODO | 9 | if (builtin.zig_backend == .stage2_c) return error.SkipZigTest; // TODO |
| 10 | if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO | ||
| 11 | if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO | 10 | if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO |
| 12 | 11 | ||
| 13 | comptime try expect(@typeInfo(@TypeOf(&foo)).Pointer.alignment == 4); | 12 | comptime try expect(@typeInfo(@TypeOf(&foo)).Pointer.alignment == 4); |
test/behavior/array.zig-4| ... | @@ -95,8 +95,6 @@ test "array literal with specified size" { | ... | @@ -95,8 +95,6 @@ test "array literal with specified size" { |
| 95 | } | 95 | } |
| 96 | 96 | ||
| 97 | test "array len field" { | 97 | test "array len field" { |
| 98 | if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; | ||
| 99 | |||
| 100 | var arr = [4]u8{ 0, 0, 0, 0 }; | 98 | var arr = [4]u8{ 0, 0, 0, 0 }; |
| 101 | var ptr = &arr; | 99 | var ptr = &arr; |
| 102 | try expect(arr.len == 4); | 100 | try expect(arr.len == 4); |
| ... | @@ -217,8 +215,6 @@ fn doSomeMangling(array: *[4]u8) void { | ... | @@ -217,8 +215,6 @@ fn doSomeMangling(array: *[4]u8) void { |
| 217 | } | 215 | } |
| 218 | 216 | ||
| 219 | test "implicit cast zero sized array ptr to slice" { | 217 | test "implicit cast zero sized array ptr to slice" { |
| 220 | if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; | ||
| 221 | |||
| 222 | { | 218 | { |
| 223 | var b = "".*; | 219 | var b = "".*; |
| 224 | const c: []const u8 = &b; | 220 | const c: []const u8 = &b; |
test/behavior/basic.zig-3| ... | @@ -362,7 +362,6 @@ fn testMemcpyMemset() !void { | ... | @@ -362,7 +362,6 @@ fn testMemcpyMemset() !void { |
| 362 | } | 362 | } |
| 363 | 363 | ||
| 364 | test "variable is allowed to be a pointer to an opaque type" { | 364 | test "variable is allowed to be a pointer to an opaque type" { |
| 365 | if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; | ||
| 366 | if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; | 365 | if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; |
| 367 | if (builtin.zig_backend == .stage2_c) return error.SkipZigTest; // TODO | 366 | if (builtin.zig_backend == .stage2_c) return error.SkipZigTest; // TODO |
| 368 | 367 | ||
| ... | @@ -611,7 +610,6 @@ test "self reference through fn ptr field" { | ... | @@ -611,7 +610,6 @@ test "self reference through fn ptr field" { |
| 611 | } | 610 | } |
| 612 | 611 | ||
| 613 | test "global variable initialized to global variable array element" { | 612 | test "global variable initialized to global variable array element" { |
| 614 | if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; | ||
| 615 | if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; | 613 | if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; |
| 616 | 614 | ||
| 617 | try expect(global_ptr == &gdt[0]); | 615 | try expect(global_ptr == &gdt[0]); |
| ... | @@ -677,7 +675,6 @@ test "explicit cast optional pointers" { | ... | @@ -677,7 +675,6 @@ test "explicit cast optional pointers" { |
| 677 | } | 675 | } |
| 678 | 676 | ||
| 679 | test "pointer comparison" { | 677 | test "pointer comparison" { |
| 680 | if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; | ||
| 681 | if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; | 678 | if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; |
| 682 | if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; | 679 | if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; |
| 683 | 680 |
test/behavior/bitcast.zig-1| ... | @@ -7,7 +7,6 @@ const minInt = std.math.minInt; | ... | @@ -7,7 +7,6 @@ const minInt = std.math.minInt; |
| 7 | const native_endian = builtin.target.cpu.arch.endian(); | 7 | const native_endian = builtin.target.cpu.arch.endian(); |
| 8 | 8 | ||
| 9 | test "@bitCast iX -> uX (32, 64)" { | 9 | test "@bitCast iX -> uX (32, 64)" { |
| 10 | if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; | ||
| 11 | if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; | 10 | if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; |
| 12 | 11 | ||
| 13 | const bit_values = [_]usize{ 32, 64 }; | 12 | const bit_values = [_]usize{ 32, 64 }; |
test/behavior/bitreverse.zig-1| ... | @@ -158,7 +158,6 @@ test "bitReverse vectors u0" { | ... | @@ -158,7 +158,6 @@ test "bitReverse vectors u0" { |
| 158 | if (builtin.zig_backend == .stage2_c) return error.SkipZigTest; | 158 | if (builtin.zig_backend == .stage2_c) return error.SkipZigTest; |
| 159 | if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; | 159 | if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; |
| 160 | if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; | 160 | if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; |
| 161 | if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; | ||
| 162 | 161 | ||
| 163 | comptime try vector0(); | 162 | comptime try vector0(); |
| 164 | try vector0(); | 163 | try vector0(); |
test/behavior/bugs/11165.zig-2| ... | @@ -2,7 +2,6 @@ const builtin = @import("builtin"); | ... | @@ -2,7 +2,6 @@ const builtin = @import("builtin"); |
| 2 | 2 | ||
| 3 | test "bytes" { | 3 | test "bytes" { |
| 4 | if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO | 4 | if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO |
| 5 | if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO | ||
| 6 | 5 | ||
| 7 | const S = struct { | 6 | const S = struct { |
| 8 | a: u32, | 7 | a: u32, |
| ... | @@ -25,7 +24,6 @@ test "bytes" { | ... | @@ -25,7 +24,6 @@ test "bytes" { |
| 25 | 24 | ||
| 26 | test "aggregate" { | 25 | test "aggregate" { |
| 27 | if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO | 26 | if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO |
| 28 | if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO | ||
| 29 | 27 | ||
| 30 | const S = struct { | 28 | const S = struct { |
| 31 | a: u32, | 29 | a: u32, |
test/behavior/bugs/11181.zig-2| ... | @@ -2,7 +2,6 @@ const builtin = @import("builtin"); | ... | @@ -2,7 +2,6 @@ const builtin = @import("builtin"); |
| 2 | 2 | ||
| 3 | test "const inferred array of slices" { | 3 | test "const inferred array of slices" { |
| 4 | if (builtin.zig_backend == .stage2_c) return error.SkipZigTest; // TODO | 4 | if (builtin.zig_backend == .stage2_c) return error.SkipZigTest; // TODO |
| 5 | if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO | ||
| 6 | 5 | ||
| 7 | const T = struct { v: bool }; | 6 | const T = struct { v: bool }; |
| 8 | 7 | ||
| ... | @@ -16,7 +15,6 @@ test "const inferred array of slices" { | ... | @@ -16,7 +15,6 @@ test "const inferred array of slices" { |
| 16 | 15 | ||
| 17 | test "var inferred array of slices" { | 16 | test "var inferred array of slices" { |
| 18 | if (builtin.zig_backend == .stage2_c) return error.SkipZigTest; // TODO | 17 | if (builtin.zig_backend == .stage2_c) return error.SkipZigTest; // TODO |
| 19 | if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO | ||
| 20 | 18 | ||
| 21 | const T = struct { v: bool }; | 19 | const T = struct { v: bool }; |
| 22 | 20 |
test/behavior/bugs/11213.zig-1| ... | @@ -4,7 +4,6 @@ const testing = std.testing; | ... | @@ -4,7 +4,6 @@ const testing = std.testing; |
| 4 | 4 | ||
| 5 | test { | 5 | test { |
| 6 | if (builtin.zig_backend == .stage2_c) return error.SkipZigTest; // TODO | 6 | if (builtin.zig_backend == .stage2_c) return error.SkipZigTest; // TODO |
| 7 | if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO | ||
| 8 | if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO | 7 | if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO |
| 9 | 8 | ||
| 10 | const g: error{Test}!void = error.Test; | 9 | const g: error{Test}!void = error.Test; |
test/behavior/bugs/1421.zig-1| ... | @@ -9,7 +9,6 @@ const S = struct { | ... | @@ -9,7 +9,6 @@ const S = struct { |
| 9 | }; | 9 | }; |
| 10 | 10 | ||
| 11 | test "functions with return type required to be comptime are generic" { | 11 | test "functions with return type required to be comptime are generic" { |
| 12 | if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; | ||
| 13 | if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; | 12 | if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; |
| 14 | if (builtin.zig_backend == .stage2_c) return error.SkipZigTest; | 13 | if (builtin.zig_backend == .stage2_c) return error.SkipZigTest; |
| 15 | const ti = S.method(); | 14 | const ti = S.method(); |
test/behavior/bugs/394.zig-1| ... | @@ -11,7 +11,6 @@ const expect = @import("std").testing.expect; | ... | @@ -11,7 +11,6 @@ const expect = @import("std").testing.expect; |
| 11 | const builtin = @import("builtin"); | 11 | const builtin = @import("builtin"); |
| 12 | 12 | ||
| 13 | test "fixed" { | 13 | test "fixed" { |
| 14 | if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; | ||
| 15 | if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; | 14 | if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; |
| 16 | if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; | 15 | if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; |
| 17 | const x = S{ | 16 | const x = S{ |
test/behavior/bugs/4560.zig-2| ... | @@ -2,8 +2,6 @@ const std = @import("std"); | ... | @@ -2,8 +2,6 @@ const std = @import("std"); |
| 2 | const builtin = @import("builtin"); | 2 | const builtin = @import("builtin"); |
| 3 | 3 | ||
| 4 | test "fixed" { | 4 | test "fixed" { |
| 5 | if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; | ||
| 6 | |||
| 7 | var s: S = .{ | 5 | var s: S = .{ |
| 8 | .a = 1, | 6 | .a = 1, |
| 9 | .b = .{ | 7 | .b = .{ |
test/behavior/bugs/7187.zig-1| ... | @@ -3,7 +3,6 @@ const builtin = @import("builtin"); | ... | @@ -3,7 +3,6 @@ const builtin = @import("builtin"); |
| 3 | const expect = std.testing.expect; | 3 | const expect = std.testing.expect; |
| 4 | 4 | ||
| 5 | test "miscompilation with bool return type" { | 5 | test "miscompilation with bool return type" { |
| 6 | if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; | ||
| 7 | if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; | 6 | if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; |
| 8 | 7 | ||
| 9 | var x: usize = 1; | 8 | var x: usize = 1; |
test/behavior/byteswap.zig-1| ... | @@ -118,7 +118,6 @@ test "@byteSwap vectors u0" { | ... | @@ -118,7 +118,6 @@ test "@byteSwap vectors u0" { |
| 118 | if (builtin.zig_backend == .stage2_c) return error.SkipZigTest; | 118 | if (builtin.zig_backend == .stage2_c) return error.SkipZigTest; |
| 119 | if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; | 119 | if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; |
| 120 | if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; | 120 | if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; |
| 121 | if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; | ||
| 122 | 121 | ||
| 123 | comptime try vector0(); | 122 | comptime try vector0(); |
| 124 | try vector0(); | 123 | try vector0(); |
test/behavior/cast.zig-2| ... | @@ -843,7 +843,6 @@ test "peer cast *[0]T to []const T" { | ... | @@ -843,7 +843,6 @@ test "peer cast *[0]T to []const T" { |
| 843 | } | 843 | } |
| 844 | 844 | ||
| 845 | test "peer cast *[N]T to [*]T" { | 845 | test "peer cast *[N]T to [*]T" { |
| 846 | if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; | ||
| 847 | if (builtin.zig_backend == .stage2_c) return error.SkipZigTest; // TODO | 846 | if (builtin.zig_backend == .stage2_c) return error.SkipZigTest; // TODO |
| 848 | 847 | ||
| 849 | var array = [4:99]i32{ 1, 2, 3, 4 }; | 848 | var array = [4:99]i32{ 1, 2, 3, 4 }; |
| ... | @@ -1116,7 +1115,6 @@ fn incrementVoidPtrArray(array: ?*anyopaque, len: usize) void { | ... | @@ -1116,7 +1115,6 @@ fn incrementVoidPtrArray(array: ?*anyopaque, len: usize) void { |
| 1116 | test "compile time int to ptr of function" { | 1115 | test "compile time int to ptr of function" { |
| 1117 | if (builtin.zig_backend == .stage1) return error.SkipZigTest; | 1116 | if (builtin.zig_backend == .stage1) return error.SkipZigTest; |
| 1118 | 1117 | ||
| 1119 | if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO | ||
| 1120 | if (builtin.zig_backend == .stage2_c) return error.SkipZigTest; // TODO | 1118 | if (builtin.zig_backend == .stage2_c) return error.SkipZigTest; // TODO |
| 1121 | if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO | 1119 | if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO |
| 1122 | 1120 |
test/behavior/comptime_memory.zig-4| ... | @@ -5,7 +5,6 @@ const ptr_size = @sizeOf(usize); | ... | @@ -5,7 +5,6 @@ const ptr_size = @sizeOf(usize); |
| 5 | 5 | ||
| 6 | test "type pun signed and unsigned as single pointer" { | 6 | test "type pun signed and unsigned as single pointer" { |
| 7 | if (builtin.zig_backend == .stage1) return error.SkipZigTest; | 7 | if (builtin.zig_backend == .stage1) return error.SkipZigTest; |
| 8 | if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO | ||
| 9 | if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO | 8 | if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO |
| 10 | 9 | ||
| 11 | comptime { | 10 | comptime { |
| ... | @@ -18,7 +17,6 @@ test "type pun signed and unsigned as single pointer" { | ... | @@ -18,7 +17,6 @@ test "type pun signed and unsigned as single pointer" { |
| 18 | 17 | ||
| 19 | test "type pun signed and unsigned as many pointer" { | 18 | test "type pun signed and unsigned as many pointer" { |
| 20 | if (builtin.zig_backend == .stage1) return error.SkipZigTest; | 19 | if (builtin.zig_backend == .stage1) return error.SkipZigTest; |
| 21 | if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO | ||
| 22 | 20 | ||
| 23 | comptime { | 21 | comptime { |
| 24 | var x: u32 = 0; | 22 | var x: u32 = 0; |
| ... | @@ -30,7 +28,6 @@ test "type pun signed and unsigned as many pointer" { | ... | @@ -30,7 +28,6 @@ test "type pun signed and unsigned as many pointer" { |
| 30 | 28 | ||
| 31 | test "type pun signed and unsigned as array pointer" { | 29 | test "type pun signed and unsigned as array pointer" { |
| 32 | if (builtin.zig_backend == .stage1) return error.SkipZigTest; | 30 | if (builtin.zig_backend == .stage1) return error.SkipZigTest; |
| 33 | if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO | ||
| 34 | 31 | ||
| 35 | comptime { | 32 | comptime { |
| 36 | var x: u32 = 0; | 33 | var x: u32 = 0; |
| ... | @@ -74,7 +71,6 @@ test "type pun signed and unsigned as array pointer" { | ... | @@ -74,7 +71,6 @@ test "type pun signed and unsigned as array pointer" { |
| 74 | 71 | ||
| 75 | test "type pun value and struct" { | 72 | test "type pun value and struct" { |
| 76 | if (builtin.zig_backend == .stage1) return error.SkipZigTest; | 73 | if (builtin.zig_backend == .stage1) return error.SkipZigTest; |
| 77 | if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO | ||
| 78 | 74 | ||
| 79 | comptime { | 75 | comptime { |
| 80 | const StructOfU32 = extern struct { x: u32 }; | 76 | const StructOfU32 = extern struct { x: u32 }; |
test/behavior/error.zig-1| ... | @@ -119,7 +119,6 @@ test "widen cast integer payload of error union function call" { | ... | @@ -119,7 +119,6 @@ test "widen cast integer payload of error union function call" { |
| 119 | 119 | ||
| 120 | test "debug info for optional error set" { | 120 | test "debug info for optional error set" { |
| 121 | if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; | 121 | if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; |
| 122 | if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; | ||
| 123 | 122 | ||
| 124 | const SomeError = error{ Hello, Hello2 }; | 123 | const SomeError = error{ Hello, Hello2 }; |
| 125 | var a_local_variable: ?SomeError = null; | 124 | var a_local_variable: ?SomeError = null; |
test/behavior/eval.zig-7| ... | @@ -406,8 +406,6 @@ var st_init_str_foo = StInitStrFoo{ | ... | @@ -406,8 +406,6 @@ var st_init_str_foo = StInitStrFoo{ |
| 406 | }; | 406 | }; |
| 407 | 407 | ||
| 408 | test "inline for with same type but different values" { | 408 | test "inline for with same type but different values" { |
| 409 | if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO | ||
| 410 | |||
| 411 | var res: usize = 0; | 409 | var res: usize = 0; |
| 412 | inline for ([_]type{ [2]u8, [1]u8, [2]u8 }) |T| { | 410 | inline for ([_]type{ [2]u8, [1]u8, [2]u8 }) |T| { |
| 413 | var a: T = undefined; | 411 | var a: T = undefined; |
| ... | @@ -487,7 +485,6 @@ test "comptime bitwise operators" { | ... | @@ -487,7 +485,6 @@ test "comptime bitwise operators" { |
| 487 | 485 | ||
| 488 | test "comptime shlWithOverflow" { | 486 | test "comptime shlWithOverflow" { |
| 489 | if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO | 487 | if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO |
| 490 | if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO | ||
| 491 | 488 | ||
| 492 | const ct_shifted: u64 = comptime amt: { | 489 | const ct_shifted: u64 = comptime amt: { |
| 493 | var amt = @as(u64, 0); | 490 | var amt = @as(u64, 0); |
| ... | @@ -559,8 +556,6 @@ pub fn vec3(x: f32, y: f32, z: f32) Vec3 { | ... | @@ -559,8 +556,6 @@ pub fn vec3(x: f32, y: f32, z: f32) Vec3 { |
| 559 | } | 556 | } |
| 560 | 557 | ||
| 561 | test "inlined loop has array literal with elided runtime scope on first iteration but not second iteration" { | 558 | test "inlined loop has array literal with elided runtime scope on first iteration but not second iteration" { |
| 562 | if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO | ||
| 563 | |||
| 564 | var runtime = [1]i32{3}; | 559 | var runtime = [1]i32{3}; |
| 565 | comptime var i: usize = 0; | 560 | comptime var i: usize = 0; |
| 566 | inline while (i < 2) : (i += 1) { | 561 | inline while (i < 2) : (i += 1) { |
| ... | @@ -611,7 +606,6 @@ const hi1 = "hi"; | ... | @@ -611,7 +606,6 @@ const hi1 = "hi"; |
| 611 | const hi2 = hi1; | 606 | const hi2 = hi1; |
| 612 | test "const global shares pointer with other same one" { | 607 | test "const global shares pointer with other same one" { |
| 613 | if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO | 608 | if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO |
| 614 | if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO | ||
| 615 | 609 | ||
| 616 | try assertEqualPtrs(&hi1[0], &hi2[0]); | 610 | try assertEqualPtrs(&hi1[0], &hi2[0]); |
| 617 | comptime try expect(&hi1[0] == &hi2[0]); | 611 | comptime try expect(&hi1[0] == &hi2[0]); |
| ... | @@ -982,7 +976,6 @@ test "closure capture type of runtime-known parameter" { | ... | @@ -982,7 +976,6 @@ test "closure capture type of runtime-known parameter" { |
| 982 | 976 | ||
| 983 | test "comptime break passing through runtime condition converted to runtime break" { | 977 | test "comptime break passing through runtime condition converted to runtime break" { |
| 984 | if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO | 978 | if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO |
| 985 | if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO | ||
| 986 | if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO | 979 | if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO |
| 987 | 980 | ||
| 988 | const S = struct { | 981 | const S = struct { |
test/behavior/fn.zig-9| ... | @@ -184,8 +184,6 @@ test "function with complex callconv and return type expressions" { | ... | @@ -184,8 +184,6 @@ test "function with complex callconv and return type expressions" { |
| 184 | } | 184 | } |
| 185 | 185 | ||
| 186 | test "pass by non-copying value" { | 186 | test "pass by non-copying value" { |
| 187 | if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; | ||
| 188 | |||
| 189 | try expect(addPointCoords(Point{ .x = 1, .y = 2 }) == 3); | 187 | try expect(addPointCoords(Point{ .x = 1, .y = 2 }) == 3); |
| 190 | } | 188 | } |
| 191 | 189 | ||
| ... | @@ -211,8 +209,6 @@ fn addPointCoordsVar(pt: anytype) !i32 { | ... | @@ -211,8 +209,6 @@ fn addPointCoordsVar(pt: anytype) !i32 { |
| 211 | } | 209 | } |
| 212 | 210 | ||
| 213 | test "pass by non-copying value as method" { | 211 | test "pass by non-copying value as method" { |
| 214 | if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; | ||
| 215 | |||
| 216 | var pt = Point2{ .x = 1, .y = 2 }; | 212 | var pt = Point2{ .x = 1, .y = 2 }; |
| 217 | try expect(pt.addPointCoords() == 3); | 213 | try expect(pt.addPointCoords() == 3); |
| 218 | } | 214 | } |
| ... | @@ -227,8 +223,6 @@ const Point2 = struct { | ... | @@ -227,8 +223,6 @@ const Point2 = struct { |
| 227 | }; | 223 | }; |
| 228 | 224 | ||
| 229 | test "pass by non-copying value as method, which is generic" { | 225 | test "pass by non-copying value as method, which is generic" { |
| 230 | if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; | ||
| 231 | |||
| 232 | var pt = Point3{ .x = 1, .y = 2 }; | 226 | var pt = Point3{ .x = 1, .y = 2 }; |
| 233 | try expect(pt.addPointCoords(i32) == 3); | 227 | try expect(pt.addPointCoords(i32) == 3); |
| 234 | } | 228 | } |
| ... | @@ -244,8 +238,6 @@ const Point3 = struct { | ... | @@ -244,8 +238,6 @@ const Point3 = struct { |
| 244 | }; | 238 | }; |
| 245 | 239 | ||
| 246 | test "pass by non-copying value as method, at comptime" { | 240 | test "pass by non-copying value as method, at comptime" { |
| 247 | if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; | ||
| 248 | |||
| 249 | comptime { | 241 | comptime { |
| 250 | var pt = Point2{ .x = 1, .y = 2 }; | 242 | var pt = Point2{ .x = 1, .y = 2 }; |
| 251 | try expect(pt.addPointCoords() == 3); | 243 | try expect(pt.addPointCoords() == 3); |
| ... | @@ -409,7 +401,6 @@ test "ability to give comptime types and non comptime types to same parameter" { | ... | @@ -409,7 +401,6 @@ test "ability to give comptime types and non comptime types to same parameter" { |
| 409 | 401 | ||
| 410 | test "function with inferred error set but returning no error" { | 402 | test "function with inferred error set but returning no error" { |
| 411 | if (builtin.zig_backend == .stage2_c) return error.SkipZigTest; // TODO | 403 | if (builtin.zig_backend == .stage2_c) return error.SkipZigTest; // TODO |
| 412 | if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO | ||
| 413 | 404 | ||
| 414 | const S = struct { | 405 | const S = struct { |
| 415 | fn foo() !void {} | 406 | fn foo() !void {} |
test/behavior/fn_delegation.zig-1| ... | @@ -32,7 +32,6 @@ fn custom(comptime T: type, comptime num: u64) fn (T) u64 { | ... | @@ -32,7 +32,6 @@ fn custom(comptime T: type, comptime num: u64) fn (T) u64 { |
| 32 | } | 32 | } |
| 33 | 33 | ||
| 34 | test "fn delegation" { | 34 | test "fn delegation" { |
| 35 | if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; | ||
| 36 | if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO | 35 | if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO |
| 37 | 36 | ||
| 38 | const foo = Foo{}; | 37 | const foo = Foo{}; |
test/behavior/generics.zig-1| ... | @@ -206,7 +206,6 @@ fn foo2(arg: anytype) bool { | ... | @@ -206,7 +206,6 @@ fn foo2(arg: anytype) bool { |
| 206 | 206 | ||
| 207 | test "generic struct" { | 207 | test "generic struct" { |
| 208 | if (builtin.zig_backend == .stage2_c) return error.SkipZigTest; | 208 | if (builtin.zig_backend == .stage2_c) return error.SkipZigTest; |
| 209 | if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; | ||
| 210 | var a1 = GenNode(i32){ | 209 | var a1 = GenNode(i32){ |
| 211 | .value = 13, | 210 | .value = 13, |
| 212 | .next = null, | 211 | .next = null, |
test/behavior/optional.zig-2| ... | @@ -33,8 +33,6 @@ test "optional pointer to size zero struct" { | ... | @@ -33,8 +33,6 @@ test "optional pointer to size zero struct" { |
| 33 | } | 33 | } |
| 34 | 34 | ||
| 35 | test "equality compare optional pointers" { | 35 | test "equality compare optional pointers" { |
| 36 | if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO | ||
| 37 | |||
| 38 | try testNullPtrsEql(); | 36 | try testNullPtrsEql(); |
| 39 | comptime try testNullPtrsEql(); | 37 | comptime try testNullPtrsEql(); |
| 40 | } | 38 | } |
test/behavior/pointers.zig-2| ... | @@ -85,7 +85,6 @@ test "assigning integer to C pointer" { | ... | @@ -85,7 +85,6 @@ test "assigning integer to C pointer" { |
| 85 | test "C pointer comparison and arithmetic" { | 85 | test "C pointer comparison and arithmetic" { |
| 86 | if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; | 86 | if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; |
| 87 | if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; | 87 | if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; |
| 88 | if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; | ||
| 89 | 88 | ||
| 90 | const S = struct { | 89 | const S = struct { |
| 91 | fn doTheTest() !void { | 90 | fn doTheTest() !void { |
| ... | @@ -477,7 +476,6 @@ test "element pointer arithmetic to slice" { | ... | @@ -477,7 +476,6 @@ test "element pointer arithmetic to slice" { |
| 477 | } | 476 | } |
| 478 | 477 | ||
| 479 | test "array slicing to slice" { | 478 | test "array slicing to slice" { |
| 480 | if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO | ||
| 481 | if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO | 479 | if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO |
| 482 | 480 | ||
| 483 | const S = struct { | 481 | const S = struct { |
test/behavior/sizeof_and_typeof.zig-1| ... | @@ -19,7 +19,6 @@ test "@sizeOf on compile-time types" { | ... | @@ -19,7 +19,6 @@ test "@sizeOf on compile-time types" { |
| 19 | 19 | ||
| 20 | test "@TypeOf() with multiple arguments" { | 20 | test "@TypeOf() with multiple arguments" { |
| 21 | if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; | 21 | if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; |
| 22 | if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; | ||
| 23 | if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; | 22 | if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; |
| 24 | if (builtin.zig_backend == .stage2_c) return error.SkipZigTest; | 23 | if (builtin.zig_backend == .stage2_c) return error.SkipZigTest; |
| 25 | { | 24 | { |
test/behavior/slice.zig-2| ... | @@ -207,7 +207,6 @@ test "slice string literal has correct type" { | ... | @@ -207,7 +207,6 @@ test "slice string literal has correct type" { |
| 207 | } | 207 | } |
| 208 | 208 | ||
| 209 | test "result location zero sized array inside struct field implicit cast to slice" { | 209 | test "result location zero sized array inside struct field implicit cast to slice" { |
| 210 | if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; | ||
| 211 | if (builtin.zig_backend == .stage2_c) return error.SkipZigTest; // TODO | 210 | if (builtin.zig_backend == .stage2_c) return error.SkipZigTest; // TODO |
| 212 | 211 | ||
| 213 | const E = struct { | 212 | const E = struct { |
| ... | @@ -509,7 +508,6 @@ test "slice pointer-to-array null terminated" { | ... | @@ -509,7 +508,6 @@ test "slice pointer-to-array null terminated" { |
| 509 | test "slice pointer-to-array zero length" { | 508 | test "slice pointer-to-array zero length" { |
| 510 | if (builtin.zig_backend == .stage2_c) return error.SkipZigTest; // TODO | 509 | if (builtin.zig_backend == .stage2_c) return error.SkipZigTest; // TODO |
| 511 | if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO | 510 | if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO |
| 512 | if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO | ||
| 513 | if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO | 511 | if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO |
| 514 | 512 | ||
| 515 | comptime { | 513 | comptime { |
test/behavior/struct.zig-4| ... | @@ -168,14 +168,12 @@ const MemberFnTestFoo = struct { | ... | @@ -168,14 +168,12 @@ const MemberFnTestFoo = struct { |
| 168 | }; | 168 | }; |
| 169 | 169 | ||
| 170 | test "call member function directly" { | 170 | test "call member function directly" { |
| 171 | if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; | ||
| 172 | const instance = MemberFnTestFoo{ .x = 1234 }; | 171 | const instance = MemberFnTestFoo{ .x = 1234 }; |
| 173 | const result = MemberFnTestFoo.member(instance); | 172 | const result = MemberFnTestFoo.member(instance); |
| 174 | try expect(result == 1234); | 173 | try expect(result == 1234); |
| 175 | } | 174 | } |
| 176 | 175 | ||
| 177 | test "store member function in variable" { | 176 | test "store member function in variable" { |
| 178 | if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; | ||
| 179 | const instance = MemberFnTestFoo{ .x = 1234 }; | 177 | const instance = MemberFnTestFoo{ .x = 1234 }; |
| 180 | const memberFn = MemberFnTestFoo.member; | 178 | const memberFn = MemberFnTestFoo.member; |
| 181 | const result = memberFn(instance); | 179 | const result = memberFn(instance); |
| ... | @@ -1000,8 +998,6 @@ test "tuple element initialized with fn call" { | ... | @@ -1000,8 +998,6 @@ test "tuple element initialized with fn call" { |
| 1000 | } | 998 | } |
| 1001 | 999 | ||
| 1002 | test "struct with union field" { | 1000 | test "struct with union field" { |
| 1003 | if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO | ||
| 1004 | |||
| 1005 | const Value = struct { | 1001 | const Value = struct { |
| 1006 | ref: u32 = 2, | 1002 | ref: u32 = 2, |
| 1007 | kind: union(enum) { | 1003 | kind: union(enum) { |
test/behavior/type.zig-2| ... | @@ -473,7 +473,6 @@ test "Type.Union" { | ... | @@ -473,7 +473,6 @@ test "Type.Union" { |
| 473 | test "Type.Union from Type.Enum" { | 473 | test "Type.Union from Type.Enum" { |
| 474 | if (builtin.zig_backend == .stage2_c) return error.SkipZigTest; // TODO | 474 | if (builtin.zig_backend == .stage2_c) return error.SkipZigTest; // TODO |
| 475 | if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO | 475 | if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO |
| 476 | if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO | ||
| 477 | 476 | ||
| 478 | const Tag = @Type(.{ | 477 | const Tag = @Type(.{ |
| 479 | .Enum = .{ | 478 | .Enum = .{ |
| ... | @@ -503,7 +502,6 @@ test "Type.Union from Type.Enum" { | ... | @@ -503,7 +502,6 @@ test "Type.Union from Type.Enum" { |
| 503 | test "Type.Union from regular enum" { | 502 | test "Type.Union from regular enum" { |
| 504 | if (builtin.zig_backend == .stage2_c) return error.SkipZigTest; // TODO | 503 | if (builtin.zig_backend == .stage2_c) return error.SkipZigTest; // TODO |
| 505 | if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO | 504 | if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO |
| 506 | if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO | ||
| 507 | 505 | ||
| 508 | const E = enum { working_as_expected }; | 506 | const E = enum { working_as_expected }; |
| 509 | const T = @Type(.{ | 507 | const T = @Type(.{ |
test/behavior/type_info.zig-1| ... | @@ -381,7 +381,6 @@ extern fn foo(a: usize, b: bool, ...) callconv(.C) usize; | ... | @@ -381,7 +381,6 @@ extern fn foo(a: usize, b: bool, ...) callconv(.C) usize; |
| 381 | extern fn fooAligned(a: usize, b: bool, ...) align(4) callconv(.C) usize; | 381 | extern fn fooAligned(a: usize, b: bool, ...) align(4) callconv(.C) usize; |
| 382 | 382 | ||
| 383 | test "type info: generic function types" { | 383 | test "type info: generic function types" { |
| 384 | if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; | ||
| 385 | if (builtin.zig_backend == .stage2_c) return error.SkipZigTest; | 384 | if (builtin.zig_backend == .stage2_c) return error.SkipZigTest; |
| 386 | 385 | ||
| 387 | if (builtin.zig_backend != .stage1) { | 386 | if (builtin.zig_backend != .stage1) { |
test/behavior/union.zig-1| ... | @@ -1111,7 +1111,6 @@ test "union enum type gets a separate scope" { | ... | @@ -1111,7 +1111,6 @@ test "union enum type gets a separate scope" { |
| 1111 | test "global variable struct contains union initialized to non-most-aligned field" { | 1111 | test "global variable struct contains union initialized to non-most-aligned field" { |
| 1112 | if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO | 1112 | if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO |
| 1113 | if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO | 1113 | if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO |
| 1114 | if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO | ||
| 1115 | 1114 | ||
| 1116 | const T = struct { | 1115 | const T = struct { |
| 1117 | const U = union(enum) { | 1116 | const U = union(enum) { |
test/behavior/void.zig-2| ... | @@ -42,8 +42,6 @@ test "void optional" { | ... | @@ -42,8 +42,6 @@ test "void optional" { |
| 42 | } | 42 | } |
| 43 | 43 | ||
| 44 | test "void array as a local variable initializer" { | 44 | test "void array as a local variable initializer" { |
| 45 | if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; | ||
| 46 | |||
| 47 | var x = [_]void{{}} ** 1004; | 45 | var x = [_]void{{}} ** 1004; |
| 48 | _ = x[0]; | 46 | _ = x[0]; |
| 49 | } | 47 | } |