| author | |
| committer | |
| log | b67995689df424a0cab9186fcaf7b09bb04ffc1a |
| tree | f5a860913a7133af62a18339a3f437c4c5dbb67b |
| parent | b2cb090c3790dd10a784f9e291230cf6052b514c |
| signature |
13 files changed, 23 insertions(+), 31 deletions(-)
src/arch/riscv64/CodeGen.zig+23-4| ... | @@ -3207,10 +3207,6 @@ fn airPtrElemPtr(self: *Self, inst: Air.Inst.Index) !void { | ... | @@ -3207,10 +3207,6 @@ fn airPtrElemPtr(self: *Self, inst: Air.Inst.Index) !void { |
| 3207 | const offset_reg_lock = self.register_manager.lockRegAssumeUnused(offset_reg); | 3207 | const offset_reg_lock = self.register_manager.lockRegAssumeUnused(offset_reg); |
| 3208 | defer self.register_manager.unlockReg(offset_reg_lock); | 3208 | defer self.register_manager.unlockReg(offset_reg_lock); |
| 3209 | 3209 | ||
| 3210 | if (true) return self.fail("TODO: airPtrElemPtr", .{}); | ||
| 3211 | |||
| 3212 | // TODO: something is breaking here dunno | ||
| 3213 | |||
| 3214 | break :result try self.binOp(.ptr_add, base_ptr_mcv, base_ptr_ty, .{ .register = offset_reg }, base_ptr_ty); | 3210 | break :result try self.binOp(.ptr_add, base_ptr_mcv, base_ptr_ty, .{ .register = offset_reg }, base_ptr_ty); |
| 3215 | }; | 3211 | }; |
| 3216 | return self.finishAir(inst, result, .{ extra.lhs, extra.rhs, .none }); | 3212 | return self.finishAir(inst, result, .{ extra.lhs, extra.rhs, .none }); |
| ... | @@ -5864,6 +5860,29 @@ fn airAggregateInit(self: *Self, inst: Air.Inst.Index) !void { | ... | @@ -5864,6 +5860,29 @@ fn airAggregateInit(self: *Self, inst: Air.Inst.Index) !void { |
| 5864 | } | 5860 | } |
| 5865 | break :result .{ .load_frame = .{ .index = frame_index } }; | 5861 | break :result .{ .load_frame = .{ .index = frame_index } }; |
| 5866 | }, | 5862 | }, |
| 5863 | .Array => { | ||
| 5864 | const elem_ty = result_ty.childType(zcu); | ||
| 5865 | const frame_index = try self.allocFrameIndex(FrameAlloc.initSpill(result_ty, zcu)); | ||
| 5866 | const elem_size: u32 = @intCast(elem_ty.abiSize(zcu)); | ||
| 5867 | |||
| 5868 | for (elements, 0..) |elem, elem_i| { | ||
| 5869 | const elem_mcv = try self.resolveInst(elem); | ||
| 5870 | const elem_off: i32 = @intCast(elem_size * elem_i); | ||
| 5871 | try self.genSetMem( | ||
| 5872 | .{ .frame = frame_index }, | ||
| 5873 | elem_off, | ||
| 5874 | elem_ty, | ||
| 5875 | elem_mcv, | ||
| 5876 | ); | ||
| 5877 | } | ||
| 5878 | if (result_ty.sentinel(zcu)) |sentinel| try self.genSetMem( | ||
| 5879 | .{ .frame = frame_index }, | ||
| 5880 | @intCast(elem_size * elements.len), | ||
| 5881 | elem_ty, | ||
| 5882 | try self.genTypedValue(sentinel), | ||
| 5883 | ); | ||
| 5884 | break :result .{ .load_frame = .{ .index = frame_index } }; | ||
| 5885 | }, | ||
| 5867 | else => return self.fail("TODO: airAggregate {}", .{result_ty.fmt(zcu)}), | 5886 | else => return self.fail("TODO: airAggregate {}", .{result_ty.fmt(zcu)}), |
| 5868 | } | 5887 | } |
| 5869 | }; | 5888 | }; |
test/behavior/align.zig-1| ... | @@ -237,7 +237,6 @@ fn addUnalignedSlice(a: []align(1) const u32, b: []align(1) const u32) u32 { | ... | @@ -237,7 +237,6 @@ fn addUnalignedSlice(a: []align(1) const u32, b: []align(1) const u32) u32 { |
| 237 | } | 237 | } |
| 238 | 238 | ||
| 239 | test "specifying alignment allows pointer cast" { | 239 | test "specifying alignment allows pointer cast" { |
| 240 | if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest; // TODO | ||
| 241 | if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; | 240 | if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; |
| 242 | if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO | 241 | if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO |
| 243 | 242 |
test/behavior/array.zig-3| ... | @@ -346,7 +346,6 @@ test "read/write through global variable array of struct fields initialized via | ... | @@ -346,7 +346,6 @@ test "read/write through global variable array of struct fields initialized via |
| 346 | test "implicit cast single-item pointer" { | 346 | test "implicit cast single-item pointer" { |
| 347 | if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; | 347 | if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; |
| 348 | if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO | 348 | if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO |
| 349 | if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest; | ||
| 350 | 349 | ||
| 351 | try testImplicitCastSingleItemPtr(); | 350 | try testImplicitCastSingleItemPtr(); |
| 352 | try comptime testImplicitCastSingleItemPtr(); | 351 | try comptime testImplicitCastSingleItemPtr(); |
| ... | @@ -714,7 +713,6 @@ test "array of array agregate init" { | ... | @@ -714,7 +713,6 @@ test "array of array agregate init" { |
| 714 | if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO | 713 | if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO |
| 715 | if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO | 714 | if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO |
| 716 | if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO | 715 | if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO |
| 717 | if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest; | ||
| 718 | 716 | ||
| 719 | var a = [1]u32{11} ** 10; | 717 | var a = [1]u32{11} ** 10; |
| 720 | var b = [1][10]u32{a} ** 2; | 718 | var b = [1][10]u32{a} ** 2; |
| ... | @@ -765,7 +763,6 @@ test "slicing array of zero-sized values" { | ... | @@ -765,7 +763,6 @@ test "slicing array of zero-sized values" { |
| 765 | if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; | 763 | if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; |
| 766 | if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; | 764 | if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; |
| 767 | if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; | 765 | if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; |
| 768 | if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest; | ||
| 769 | if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest; | 766 | if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest; |
| 770 | 767 | ||
| 771 | var arr: [32]u0 = undefined; | 768 | var arr: [32]u0 = undefined; |
test/behavior/basic.zig-6| ... | @@ -688,7 +688,6 @@ test "string concatenation" { | ... | @@ -688,7 +688,6 @@ test "string concatenation" { |
| 688 | if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; | 688 | if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; |
| 689 | if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; | 689 | if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; |
| 690 | if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO | 690 | if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO |
| 691 | if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest; | ||
| 692 | 691 | ||
| 693 | const a = "OK" ++ " IT " ++ "WORKED"; | 692 | const a = "OK" ++ " IT " ++ "WORKED"; |
| 694 | const b = "OK IT WORKED"; | 693 | const b = "OK IT WORKED"; |
| ... | @@ -728,7 +727,6 @@ fn maybe(x: bool) anyerror!?u32 { | ... | @@ -728,7 +727,6 @@ fn maybe(x: bool) anyerror!?u32 { |
| 728 | test "auto created variables have correct alignment" { | 727 | test "auto created variables have correct alignment" { |
| 729 | if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO | 728 | if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO |
| 730 | if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO | 729 | if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO |
| 731 | if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest; | ||
| 732 | 730 | ||
| 733 | const S = struct { | 731 | const S = struct { |
| 734 | fn foo(str: [*]const u8) u32 { | 732 | fn foo(str: [*]const u8) u32 { |
| ... | @@ -893,7 +891,6 @@ test "weird array and tuple initializations" { | ... | @@ -893,7 +891,6 @@ test "weird array and tuple initializations" { |
| 893 | if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO | 891 | if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO |
| 894 | if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO | 892 | if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO |
| 895 | if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO | 893 | if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO |
| 896 | if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest; | ||
| 897 | 894 | ||
| 898 | const E = enum { a, b }; | 895 | const E = enum { a, b }; |
| 899 | const S = struct { e: E }; | 896 | const S = struct { e: E }; |
| ... | @@ -1012,7 +1009,6 @@ comptime { | ... | @@ -1012,7 +1009,6 @@ comptime { |
| 1012 | 1009 | ||
| 1013 | test "switch inside @as gets correct type" { | 1010 | test "switch inside @as gets correct type" { |
| 1014 | if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO | 1011 | if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO |
| 1015 | if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest; | ||
| 1016 | 1012 | ||
| 1017 | var a: u32 = 0; | 1013 | var a: u32 = 0; |
| 1018 | _ = &a; | 1014 | _ = &a; |
| ... | @@ -1379,8 +1375,6 @@ test "allocation and looping over 3-byte integer" { | ... | @@ -1379,8 +1375,6 @@ test "allocation and looping over 3-byte integer" { |
| 1379 | } | 1375 | } |
| 1380 | 1376 | ||
| 1381 | test "loading array from struct is not optimized away" { | 1377 | test "loading array from struct is not optimized away" { |
| 1382 | if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest; | ||
| 1383 | |||
| 1384 | const S = struct { | 1378 | const S = struct { |
| 1385 | arr: [1]u32 = .{0}, | 1379 | arr: [1]u32 = .{0}, |
| 1386 | fn doTheTest(self: *@This()) !void { | 1380 | fn doTheTest(self: *@This()) !void { |
test/behavior/eval.zig-1| ... | @@ -547,7 +547,6 @@ test "static eval list init" { | ... | @@ -547,7 +547,6 @@ test "static eval list init" { |
| 547 | if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO | 547 | if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO |
| 548 | if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO | 548 | if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO |
| 549 | if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO | 549 | if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO |
| 550 | if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest; | ||
| 551 | 550 | ||
| 552 | try expect(static_vec3.data[2] == 1.0); | 551 | try expect(static_vec3.data[2] == 1.0); |
| 553 | try expect(vec3(0.0, 0.0, 3.0).data[2] == 3.0); | 552 | try expect(vec3(0.0, 0.0, 3.0).data[2] == 3.0); |
test/behavior/fn.zig-1| ... | @@ -493,7 +493,6 @@ test "using @ptrCast on function pointers" { | ... | @@ -493,7 +493,6 @@ test "using @ptrCast on function pointers" { |
| 493 | if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO | 493 | if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO |
| 494 | if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO | 494 | if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO |
| 495 | if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest; | 495 | if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest; |
| 496 | if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest; | ||
| 497 | 496 | ||
| 498 | const S = struct { | 497 | const S = struct { |
| 499 | const A = struct { data: [4]u8 }; | 498 | const A = struct { data: [4]u8 }; |
test/behavior/for.zig-6| ... | @@ -69,7 +69,6 @@ test "basic for loop" { | ... | @@ -69,7 +69,6 @@ test "basic for loop" { |
| 69 | if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; | 69 | if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; |
| 70 | if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; | 70 | if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; |
| 71 | if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO | 71 | if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO |
| 72 | if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest; | ||
| 73 | 72 | ||
| 74 | const expected_result = [_]u8{ 9, 8, 7, 6, 0, 1, 2, 3 } ** 3; | 73 | const expected_result = [_]u8{ 9, 8, 7, 6, 0, 1, 2, 3 } ** 3; |
| 75 | 74 | ||
| ... | @@ -134,7 +133,6 @@ test "for with null and T peer types and inferred result location type" { | ... | @@ -134,7 +133,6 @@ test "for with null and T peer types and inferred result location type" { |
| 134 | test "2 break statements and an else" { | 133 | test "2 break statements and an else" { |
| 135 | if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; | 134 | if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; |
| 136 | if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO | 135 | if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO |
| 137 | if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest; | ||
| 138 | 136 | ||
| 139 | const S = struct { | 137 | const S = struct { |
| 140 | fn entry(t: bool, f: bool) !void { | 138 | fn entry(t: bool, f: bool) !void { |
| ... | @@ -183,7 +181,6 @@ fn mangleString(s: []u8) void { | ... | @@ -183,7 +181,6 @@ fn mangleString(s: []u8) void { |
| 183 | test "for copies its payload" { | 181 | test "for copies its payload" { |
| 184 | if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO | 182 | if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO |
| 185 | if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO | 183 | if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO |
| 186 | if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest; | ||
| 187 | 184 | ||
| 188 | const S = struct { | 185 | const S = struct { |
| 189 | fn doTheTest() !void { | 186 | fn doTheTest() !void { |
| ... | @@ -283,7 +280,6 @@ test "two counters" { | ... | @@ -283,7 +280,6 @@ test "two counters" { |
| 283 | test "1-based counter and ptr to array" { | 280 | test "1-based counter and ptr to array" { |
| 284 | if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO | 281 | if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO |
| 285 | if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO | 282 | if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO |
| 286 | if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest; | ||
| 287 | 283 | ||
| 288 | var ok: usize = 0; | 284 | var ok: usize = 0; |
| 289 | 285 | ||
| ... | @@ -367,7 +363,6 @@ test "raw pointer and slice" { | ... | @@ -367,7 +363,6 @@ test "raw pointer and slice" { |
| 367 | if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO | 363 | if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO |
| 368 | if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO | 364 | if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO |
| 369 | if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO | 365 | if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO |
| 370 | if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest; | ||
| 371 | 366 | ||
| 372 | var buf: [10]u8 = undefined; | 367 | var buf: [10]u8 = undefined; |
| 373 | const slice: []const u8 = "blah"; | 368 | const slice: []const u8 = "blah"; |
| ... | @@ -387,7 +382,6 @@ test "raw pointer and counter" { | ... | @@ -387,7 +382,6 @@ test "raw pointer and counter" { |
| 387 | if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO | 382 | if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO |
| 388 | if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO | 383 | if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO |
| 389 | if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO | 384 | if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO |
| 390 | if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest; | ||
| 391 | 385 | ||
| 392 | var buf: [10]u8 = undefined; | 386 | var buf: [10]u8 = undefined; |
| 393 | const ptr: [*]u8 = &buf; | 387 | const ptr: [*]u8 = &buf; |
test/behavior/lower_strlit_to_vector.zig-1| ... | @@ -6,7 +6,6 @@ test "strlit to vector" { | ... | @@ -6,7 +6,6 @@ test "strlit to vector" { |
| 6 | if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO | 6 | if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO |
| 7 | if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO | 7 | if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO |
| 8 | if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest; // TODO | 8 | if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest; // TODO |
| 9 | if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest; | ||
| 10 | 9 | ||
| 11 | const strlit = "0123456789abcdef0123456789ABCDEF"; | 10 | const strlit = "0123456789abcdef0123456789ABCDEF"; |
| 12 | const vec_from_strlit: @Vector(32, u8) = strlit.*; | 11 | const vec_from_strlit: @Vector(32, u8) = strlit.*; |
test/behavior/pointers.zig-1| ... | @@ -541,7 +541,6 @@ test "pointer alignment and element type include call expression" { | ... | @@ -541,7 +541,6 @@ test "pointer alignment and element type include call expression" { |
| 541 | 541 | ||
| 542 | test "pointer to array has explicit alignment" { | 542 | test "pointer to array has explicit alignment" { |
| 543 | if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO | 543 | if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO |
| 544 | if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest; | ||
| 545 | 544 | ||
| 546 | const S = struct { | 545 | const S = struct { |
| 547 | const Base = extern struct { a: u8 }; | 546 | const Base = extern struct { a: u8 }; |
test/behavior/prefetch.zig-1| ... | @@ -3,7 +3,6 @@ const std = @import("std"); | ... | @@ -3,7 +3,6 @@ const std = @import("std"); |
| 3 | 3 | ||
| 4 | test "@prefetch()" { | 4 | test "@prefetch()" { |
| 5 | if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest; | 5 | if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest; |
| 6 | if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest; | ||
| 7 | 6 | ||
| 8 | var a: [2]u32 = .{ 42, 42 }; | 7 | var a: [2]u32 = .{ 42, 42 }; |
| 9 | var a_len = a.len; | 8 | var a_len = a.len; |
test/behavior/sizeof_and_typeof.zig-1| ... | @@ -272,7 +272,6 @@ test "runtime instructions inside typeof in comptime only scope" { | ... | @@ -272,7 +272,6 @@ test "runtime instructions inside typeof in comptime only scope" { |
| 272 | if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; | 272 | if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; |
| 273 | if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; | 273 | if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; |
| 274 | if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO | 274 | if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO |
| 275 | if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest; | ||
| 276 | 275 | ||
| 277 | { | 276 | { |
| 278 | var y: i8 = 2; | 277 | var y: i8 = 2; |
test/behavior/slice.zig-4| ... | @@ -185,8 +185,6 @@ test "slicing zero length array" { | ... | @@ -185,8 +185,6 @@ test "slicing zero length array" { |
| 185 | } | 185 | } |
| 186 | 186 | ||
| 187 | test "slicing pointer by length" { | 187 | test "slicing pointer by length" { |
| 188 | if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest; | ||
| 189 | |||
| 190 | const array = [_]u8{ 1, 2, 3, 4, 5, 6, 7, 8 }; | 188 | const array = [_]u8{ 1, 2, 3, 4, 5, 6, 7, 8 }; |
| 191 | const ptr: [*]const u8 = @as([*]const u8, @ptrCast(&array)); | 189 | const ptr: [*]const u8 = @as([*]const u8, @ptrCast(&array)); |
| 192 | const slice = ptr[1..][0..5]; | 190 | const slice = ptr[1..][0..5]; |
| ... | @@ -306,7 +304,6 @@ test "slice type with custom alignment" { | ... | @@ -306,7 +304,6 @@ test "slice type with custom alignment" { |
| 306 | 304 | ||
| 307 | test "obtaining a null terminated slice" { | 305 | test "obtaining a null terminated slice" { |
| 308 | if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO | 306 | if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO |
| 309 | if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest; | ||
| 310 | 307 | ||
| 311 | // here we have a normal array | 308 | // here we have a normal array |
| 312 | var buf: [50]u8 = undefined; | 309 | var buf: [50]u8 = undefined; |
| ... | @@ -772,7 +769,6 @@ test "slice sentinel access at comptime" { | ... | @@ -772,7 +769,6 @@ test "slice sentinel access at comptime" { |
| 772 | test "slicing array with sentinel as end index" { | 769 | test "slicing array with sentinel as end index" { |
| 773 | if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; | 770 | if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; |
| 774 | if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO | 771 | if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO |
| 775 | if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest; | ||
| 776 | 772 | ||
| 777 | const S = struct { | 773 | const S = struct { |
| 778 | fn do() !void { | 774 | fn do() !void { |
test/behavior/struct.zig-1| ... | @@ -348,7 +348,6 @@ test "self-referencing struct via array member" { | ... | @@ -348,7 +348,6 @@ test "self-referencing struct via array member" { |
| 348 | if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; | 348 | if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; |
| 349 | if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO | 349 | if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO |
| 350 | if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO | 350 | if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO |
| 351 | if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest; | ||
| 352 | 351 | ||
| 353 | const T = struct { | 352 | const T = struct { |
| 354 | children: [1]*@This(), | 353 | children: [1]*@This(), |