authorgravatar for david@vortan.devDavid Rubin <david@vortan.dev> 2024-07-26 04:00:25-07:00
committergravatar for david@vortan.devDavid Rubin <david@vortan.dev> 2024-07-26 04:19:58-07:00
log8da212c11bc54bb78950988f5980c78161af8573
treeb2ea3f0019291f90a73da739a389ce30dd25eb5b
parent046001a34a070dffa6230ccbd8f1571e0b1c1240
signaturelock-open Commit is signed but in an unrecognized format.

riscv: update tests and fix reuse bug


26 files changed, 18 insertions(+), 87 deletions(-)

src/arch/riscv64/CodeGen.zig+18-6
...@@ -1982,6 +1982,8 @@ fn truncateRegister(func: *Func, ty: Type, reg: Register) !void {...@@ -1982,6 +1982,8 @@ fn truncateRegister(func: *Func, ty: Type, reg: Register) !void {
1982 .signedness = .unsigned,1982 .signedness = .unsigned,
1983 .bits = @intCast(ty.bitSize(pt)),1983 .bits = @intCast(ty.bitSize(pt)),
1984 };1984 };
1985 assert(reg.class() == .int);
1986
1985 const shift = math.cast(u6, 64 - int_info.bits % 64) orelse return;1987 const shift = math.cast(u6, 64 - int_info.bits % 64) orelse return;
1986 switch (int_info.signedness) {1988 switch (int_info.signedness) {
1987 .signed => {1989 .signed => {
...@@ -2844,8 +2846,11 @@ fn genBinOp(...@@ -2844,8 +2846,11 @@ fn genBinOp(
2844 .cmp_gt,2846 .cmp_gt,
2845 .cmp_gte,2847 .cmp_gte,
2846 => {2848 => {
2847 try func.truncateRegister(lhs_ty, lhs_reg);2849 assert(lhs_reg.class() == rhs_reg.class());
2848 try func.truncateRegister(rhs_ty, rhs_reg);2850 if (lhs_reg.class() == .int) {
2851 try func.truncateRegister(lhs_ty, lhs_reg);
2852 try func.truncateRegister(rhs_ty, rhs_reg);
2853 }
28492854
2850 _ = try func.addInst(.{2855 _ = try func.addInst(.{
2851 .tag = .pseudo_compare,2856 .tag = .pseudo_compare,
...@@ -3923,7 +3928,7 @@ fn airPtrElemPtr(func: *Func, inst: Air.Inst.Index) !void {...@@ -3923,7 +3928,7 @@ fn airPtrElemPtr(func: *Func, inst: Air.Inst.Index) !void {
3923 const ty_pl = func.air.instructions.items(.data)[@intFromEnum(inst)].ty_pl;3928 const ty_pl = func.air.instructions.items(.data)[@intFromEnum(inst)].ty_pl;
3924 const extra = func.air.extraData(Air.Bin, ty_pl.payload).data;3929 const extra = func.air.extraData(Air.Bin, ty_pl.payload).data;
39253930
3926 const result = result: {3931 const result: MCValue = if (func.liveness.isUnused(inst)) .unreach else result: {
3927 const elem_ptr_ty = func.typeOfIndex(inst);3932 const elem_ptr_ty = func.typeOfIndex(inst);
3928 const base_ptr_ty = func.typeOf(extra.lhs);3933 const base_ptr_ty = func.typeOf(extra.lhs);
39293934
...@@ -3959,6 +3964,7 @@ fn airPtrElemPtr(func: *Func, inst: Air.Inst.Index) !void {...@@ -3959,6 +3964,7 @@ fn airPtrElemPtr(func: *Func, inst: Air.Inst.Index) !void {
39593964
3960 break :result MCValue{ .register = result_reg };3965 break :result MCValue{ .register = result_reg };
3961 };3966 };
3967
3962 return func.finishAir(inst, result, .{ extra.lhs, extra.rhs, .none });3968 return func.finishAir(inst, result, .{ extra.lhs, extra.rhs, .none });
3963}3969}
39643970
...@@ -4409,9 +4415,15 @@ fn airLoad(func: *Func, inst: Air.Inst.Index) !void {...@@ -4409,9 +4415,15 @@ fn airLoad(func: *Func, inst: Air.Inst.Index) !void {
4409 const elem_size = elem_ty.abiSize(pt);4415 const elem_size = elem_ty.abiSize(pt);
44104416
4411 const dst_mcv: MCValue = blk: {4417 const dst_mcv: MCValue = blk: {
4412 // "ptr" is 8 bytes, and if the element is more than that, we cannot reuse it.4418 // The MCValue that holds the pointer can be re-used as the value.
4413 if (elem_size <= 8 and func.reuseOperand(inst, ty_op.operand, 0, ptr)) {4419 // - "ptr" is 8 bytes, and if the element is more than that, we cannot reuse it.
4414 // The MCValue that holds the pointer can be re-used as the value.4420 //
4421 // - "ptr" will be stored in an integer register, so the type that we're gonna
4422 // load into it must also be a type that can be inside of an integer register
4423 if (elem_size <= 8 and
4424 (if (ptr == .register) func.typeRegClass(elem_ty) == ptr.register.class() else true) and
4425 func.reuseOperand(inst, ty_op.operand, 0, ptr))
4426 {
4415 break :blk ptr;4427 break :blk ptr;
4416 } else {4428 } else {
4417 break :blk try func.allocRegOrMem(elem_ty, inst, true);4429 break :blk try func.allocRegOrMem(elem_ty, inst, true);
test/behavior/array.zig-2
...@@ -907,7 +907,6 @@ test "copied array element doesn't alias source" {...@@ -907,7 +907,6 @@ test "copied array element doesn't alias source" {
907907
908test "array initialized with string literal" {908test "array initialized with string literal" {
909 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO909 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
910 if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest;
911910
912 const S = struct {911 const S = struct {
913 a: u32,912 a: u32,
...@@ -975,7 +974,6 @@ test "accessing multidimensional global array at comptime" {...@@ -975,7 +974,6 @@ test "accessing multidimensional global array at comptime" {
975 if (builtin.zig_backend == .stage2_x86) return error.SkipZigTest; // TODO974 if (builtin.zig_backend == .stage2_x86) return error.SkipZigTest; // TODO
976 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO975 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
977 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO976 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
978 if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest;
979977
980 const S = struct {978 const S = struct {
981 const array = [_][]const []const u8{979 const array = [_][]const []const u8{
test/behavior/atomics.zig-2
...@@ -169,7 +169,6 @@ test "atomic load and rmw with enum" {...@@ -169,7 +169,6 @@ test "atomic load and rmw with enum" {
169 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO169 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
170 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO170 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
171 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;171 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
172 if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest;
173172
174 const Value = enum(u8) { a, b, c };173 const Value = enum(u8) { a, b, c };
175 var x = Value.a;174 var x = Value.a;
...@@ -205,7 +204,6 @@ test "atomicrmw with floats" {...@@ -205,7 +204,6 @@ test "atomicrmw with floats" {
205 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO204 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
206 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO205 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
207 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;206 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
208 if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest;
209207
210 if (builtin.zig_backend == .stage2_llvm and builtin.cpu.arch == .aarch64) {208 if (builtin.zig_backend == .stage2_llvm and builtin.cpu.arch == .aarch64) {
211 // https://github.com/ziglang/zig/issues/10627209 // https://github.com/ziglang/zig/issues/10627
test/behavior/basic.zig-3
...@@ -645,7 +645,6 @@ test "string escapes" {...@@ -645,7 +645,6 @@ test "string escapes" {
645 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;645 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;
646 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest;646 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest;
647 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO647 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
648 if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest;
649648
650 try expectEqualStrings("\"", "\x22");649 try expectEqualStrings("\"", "\x22");
651 try expectEqualStrings("\'", "\x27");650 try expectEqualStrings("\'", "\x27");
...@@ -778,7 +777,6 @@ test "discarding the result of various expressions" {...@@ -778,7 +777,6 @@ test "discarding the result of various expressions" {
778 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO777 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
779 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO778 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
780 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO779 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
781 if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest;
782780
783 const S = struct {781 const S = struct {
784 fn foo() !u32 {782 fn foo() !u32 {
...@@ -1310,7 +1308,6 @@ test "break out of block based on comptime known values" {...@@ -1310,7 +1308,6 @@ test "break out of block based on comptime known values" {
1310 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest;1308 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest;
1311 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;1309 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;
1312 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO1310 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
1313 if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest;
13141311
1315 const S = struct {1312 const S = struct {
1316 const source = "A-";1313 const source = "A-";
test/behavior/cast.zig-8
...@@ -24,7 +24,6 @@ test "peer type resolution: ?T and T" {...@@ -24,7 +24,6 @@ test "peer type resolution: ?T and T" {
24 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;24 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;
25 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest;25 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest;
26 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO26 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
27 if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest;
2827
29 try expect(peerTypeTAndOptionalT(true, false).? == 0);28 try expect(peerTypeTAndOptionalT(true, false).? == 0);
30 try expect(peerTypeTAndOptionalT(false, false).? == 3);29 try expect(peerTypeTAndOptionalT(false, false).? == 3);
...@@ -301,7 +300,6 @@ test "peer result null and comptime_int" {...@@ -301,7 +300,6 @@ test "peer result null and comptime_int" {
301 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;300 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;
302 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest;301 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest;
303 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO302 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
304 if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest;
305303
306 const S = struct {304 const S = struct {
307 fn blah(n: i32) ?i32 {305 fn blah(n: i32) ?i32 {
...@@ -370,7 +368,6 @@ test "return u8 coercing into ?u32 return type" {...@@ -370,7 +368,6 @@ test "return u8 coercing into ?u32 return type" {
370 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;368 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;
371 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest;369 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest;
372 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO370 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
373 if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest;
374371
375 const S = struct {372 const S = struct {
376 fn doTheTest() !void {373 fn doTheTest() !void {
...@@ -664,7 +661,6 @@ test "@floatCast cast down" {...@@ -664,7 +661,6 @@ test "@floatCast cast down" {
664test "peer type resolution: unreachable, error set, unreachable" {661test "peer type resolution: unreachable, error set, unreachable" {
665 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO662 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
666 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO663 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
667 if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest;
668664
669 const Error = error{665 const Error = error{
670 FileDescriptorAlreadyPresentInSet,666 FileDescriptorAlreadyPresentInSet,
...@@ -1212,7 +1208,6 @@ test "implicitly cast from [N]T to ?[]const T" {...@@ -1212,7 +1208,6 @@ test "implicitly cast from [N]T to ?[]const T" {
1212 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;1208 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;
1213 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO1209 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
1214 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO1210 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
1215 if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest;
12161211
1217 try expect(mem.eql(u8, castToOptionalSlice().?, "hi"));1212 try expect(mem.eql(u8, castToOptionalSlice().?, "hi"));
1218 comptime assert(mem.eql(u8, castToOptionalSlice().?, "hi"));1213 comptime assert(mem.eql(u8, castToOptionalSlice().?, "hi"));
...@@ -1903,7 +1898,6 @@ test "peer type resolution: optional fixed-width int and comptime_int" {...@@ -1903,7 +1898,6 @@ test "peer type resolution: optional fixed-width int and comptime_int" {
1903 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO1898 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
1904 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO1899 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
1905 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO1900 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
1906 if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest;
19071901
1908 var a: ?i32 = 42;1902 var a: ?i32 = 42;
1909 _ = &a;1903 _ = &a;
...@@ -2263,7 +2257,6 @@ test "cast builtins can wrap result in optional" {...@@ -2263,7 +2257,6 @@ test "cast builtins can wrap result in optional" {
2263 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO2257 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
2264 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO2258 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
2265 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO2259 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
2266 if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest;
22672260
2268 const S = struct {2261 const S = struct {
2269 const MyEnum = enum(u32) { _ };2262 const MyEnum = enum(u32) { _ };
...@@ -2572,7 +2565,6 @@ test "result information is preserved through many nested structures" {...@@ -2572,7 +2565,6 @@ test "result information is preserved through many nested structures" {
2572 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO2565 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
2573 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO2566 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
2574 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO2567 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
2575 if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest;
25762568
2577 const S = struct {2569 const S = struct {
2578 fn doTheTest() !void {2570 fn doTheTest() !void {
test/behavior/defer.zig-1
...@@ -53,7 +53,6 @@ test "return variable while defer expression in scope to modify it" {...@@ -53,7 +53,6 @@ test "return variable while defer expression in scope to modify it" {
53 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest;53 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest;
54 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;54 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;
55 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO55 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
56 if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest;
5756
58 const S = struct {57 const S = struct {
59 fn doTheTest() !void {58 fn doTheTest() !void {
test/behavior/enum.zig-2
...@@ -1219,8 +1219,6 @@ test "enum tag from a local variable" {...@@ -1219,8 +1219,6 @@ test "enum tag from a local variable" {
1219}1219}
12201220
1221test "auto-numbered enum with signed tag type" {1221test "auto-numbered enum with signed tag type" {
1222 if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest;
1223
1224 const E = enum(i32) { a, b };1222 const E = enum(i32) { a, b };
12251223
1226 try std.testing.expectEqual(@as(i32, 0), @intFromEnum(E.a));1224 try std.testing.expectEqual(@as(i32, 0), @intFromEnum(E.a));
test/behavior/error.zig-7
...@@ -319,7 +319,6 @@ test "error inference with an empty set" {...@@ -319,7 +319,6 @@ test "error inference with an empty set" {
319319
320test "error union peer type resolution" {320test "error union peer type resolution" {
321 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO321 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
322 if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest;
323322
324 try testErrorUnionPeerTypeResolution(1);323 try testErrorUnionPeerTypeResolution(1);
325}324}
...@@ -467,7 +466,6 @@ test "optional error set is the same size as error set" {...@@ -467,7 +466,6 @@ test "optional error set is the same size as error set" {
467 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO466 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
468 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO467 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
469 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO468 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
470 if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest;
471469
472 comptime assert(@sizeOf(?anyerror) == @sizeOf(anyerror));470 comptime assert(@sizeOf(?anyerror) == @sizeOf(anyerror));
473 comptime assert(@alignOf(?anyerror) == @alignOf(anyerror));471 comptime assert(@alignOf(?anyerror) == @alignOf(anyerror));
...@@ -915,7 +913,6 @@ test "field access of anyerror results in smaller error set" {...@@ -915,7 +913,6 @@ test "field access of anyerror results in smaller error set" {
915test "optional error union return type" {913test "optional error union return type" {
916 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO914 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
917 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO915 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
918 if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest;
919916
920 const S = struct {917 const S = struct {
921 fn foo() ?anyerror!u32 {918 fn foo() ?anyerror!u32 {
...@@ -930,7 +927,6 @@ test "optional error union return type" {...@@ -930,7 +927,6 @@ test "optional error union return type" {
930test "optional error set return type" {927test "optional error set return type" {
931 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO928 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
932 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO929 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
933 if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest;
934930
935 const E = error{ A, B };931 const E = error{ A, B };
936 const S = struct {932 const S = struct {
...@@ -944,8 +940,6 @@ test "optional error set return type" {...@@ -944,8 +940,6 @@ test "optional error set return type" {
944}940}
945941
946test "optional error set function parameter" {942test "optional error set function parameter" {
947 if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest;
948
949 const S = struct {943 const S = struct {
950 fn doTheTest(a: ?anyerror) !void {944 fn doTheTest(a: ?anyerror) !void {
951 try std.testing.expect(a.? == error.OutOfMemory);945 try std.testing.expect(a.? == error.OutOfMemory);
...@@ -975,7 +969,6 @@ test "returning an error union containing a type with no runtime bits" {...@@ -975,7 +969,6 @@ test "returning an error union containing a type with no runtime bits" {
975test "try used in recursive function with inferred error set" {969test "try used in recursive function with inferred error set" {
976 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO970 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
977 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO971 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
978 if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest;
979 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;972 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
980973
981 const Value = union(enum) {974 const Value = union(enum) {
test/behavior/fn.zig-1
...@@ -450,7 +450,6 @@ test "implicit cast function to function ptr" {...@@ -450,7 +450,6 @@ test "implicit cast function to function ptr" {
450test "method call with optional and error union first param" {450test "method call with optional and error union first param" {
451 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO451 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
452 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO452 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
453 if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest;
454453
455 const S = struct {454 const S = struct {
456 x: i32 = 1234,455 x: i32 = 1234,
test/behavior/for.zig-1
...@@ -486,7 +486,6 @@ test "inferred alloc ptr of for loop" {...@@ -486,7 +486,6 @@ test "inferred alloc ptr of for loop" {
486 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO486 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
487 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO487 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
488 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO488 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
489 if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest;
490489
491 {490 {
492 var cond = false;491 var cond = false;
test/behavior/if.zig-2
...@@ -191,8 +191,6 @@ test "if value shouldn't be load-elided if used later (structs)" {...@@ -191,8 +191,6 @@ test "if value shouldn't be load-elided if used later (structs)" {
191}191}
192192
193test "if value shouldn't be load-elided if used later (optionals)" {193test "if value shouldn't be load-elided if used later (optionals)" {
194 if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest;
195
196 var a: ?i32 = 1;194 var a: ?i32 = 1;
197 var b: ?i32 = 1;195 var b: ?i32 = 1;
198196
test/behavior/null.zig-1
...@@ -73,7 +73,6 @@ fn foo(x: ?i32) ?bool {...@@ -73,7 +73,6 @@ fn foo(x: ?i32) ?bool {
73test "test null runtime" {73test "test null runtime" {
74 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest;74 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest;
75 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO75 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
76 if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest;
7776
78 try testTestNullRuntime(null);77 try testTestNullRuntime(null);
79}78}
test/behavior/optional.zig-5
...@@ -9,7 +9,6 @@ const expectEqualStrings = std.testing.expectEqualStrings;...@@ -9,7 +9,6 @@ const expectEqualStrings = std.testing.expectEqualStrings;
9test "passing an optional integer as a parameter" {9test "passing an optional integer as a parameter" {
10 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO10 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
11 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO11 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
12 if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest;
1312
14 const S = struct {13 const S = struct {
15 fn entry() bool {14 fn entry() bool {
...@@ -259,7 +258,6 @@ test "unwrap function call with optional pointer return value" {...@@ -259,7 +258,6 @@ test "unwrap function call with optional pointer return value" {
259test "nested orelse" {258test "nested orelse" {
260 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO259 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
261 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO260 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
262 if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest;
263261
264 const S = struct {262 const S = struct {
265 fn entry() !void {263 fn entry() !void {
...@@ -342,7 +340,6 @@ test "0-bit child type coerced to optional return ptr result location" {...@@ -342,7 +340,6 @@ test "0-bit child type coerced to optional return ptr result location" {
342 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO340 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
343 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO341 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
344 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO342 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
345 if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest;
346343
347 const S = struct {344 const S = struct {
348 fn doTheTest() !void {345 fn doTheTest() !void {
...@@ -533,7 +530,6 @@ test "Optional slice size is optimized" {...@@ -533,7 +530,6 @@ test "Optional slice size is optimized" {
533 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;530 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;
534 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest;531 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest;
535 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO532 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
536 if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest;
537533
538 try expect(@sizeOf(?[]u8) == @sizeOf([]u8));534 try expect(@sizeOf(?[]u8) == @sizeOf([]u8));
539 var a: ?[]const u8 = null;535 var a: ?[]const u8 = null;
...@@ -547,7 +543,6 @@ test "Optional slice passed to function" {...@@ -547,7 +543,6 @@ test "Optional slice passed to function" {
547 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO543 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
548 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO544 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
549 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;545 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
550 if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest;
551546
552 const S = struct {547 const S = struct {
553 fn foo(a: ?[]const u8) !void {548 fn foo(a: ?[]const u8) !void {
test/behavior/pointers.zig-1
...@@ -569,7 +569,6 @@ test "ptrCast comptime known slice to C pointer" {...@@ -569,7 +569,6 @@ test "ptrCast comptime known slice to C pointer" {
569 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO569 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
570 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO570 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
571 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO571 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
572 if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest;
573572
574 const s: [:0]const u8 = "foo";573 const s: [:0]const u8 = "foo";
575 var p: [*c]const u8 = @ptrCast(s);574 var p: [*c]const u8 = @ptrCast(s);
test/behavior/popcount.zig-1
...@@ -8,7 +8,6 @@ test "@popCount integers" {...@@ -8,7 +8,6 @@ test "@popCount integers" {
8 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO8 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
9 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO9 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
10 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;10 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
11 if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest;
1211
13 try comptime testPopCountIntegers();12 try comptime testPopCountIntegers();
14 try testPopCountIntegers();13 try testPopCountIntegers();
test/behavior/slice.zig-4
...@@ -834,7 +834,6 @@ test "global slice field access" {...@@ -834,7 +834,6 @@ test "global slice field access" {
834 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO834 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
835 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO835 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
836 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;836 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
837 if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest;
838837
839 const S = struct {838 const S = struct {
840 var slice: []const u8 = undefined;839 var slice: []const u8 = undefined;
...@@ -890,7 +889,6 @@ test "empty slice ptr is non null" {...@@ -890,7 +889,6 @@ test "empty slice ptr is non null" {
890test "slice decays to many pointer" {889test "slice decays to many pointer" {
891 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;890 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;
892 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest;891 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest;
893 if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest;
894892
895 var buf: [8]u8 = "abcdefg\x00".*;893 var buf: [8]u8 = "abcdefg\x00".*;
896 const p: [*:0]const u8 = buf[0..7 :0];894 const p: [*:0]const u8 = buf[0..7 :0];
...@@ -901,7 +899,6 @@ test "write through pointer to optional slice arg" {...@@ -901,7 +899,6 @@ test "write through pointer to optional slice arg" {
901 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;899 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;
902 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest;900 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest;
903 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest;901 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest;
904 if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest;
905902
906 const S = struct {903 const S = struct {
907 fn bar(foo: *?[]const u8) !void {904 fn bar(foo: *?[]const u8) !void {
...@@ -954,7 +951,6 @@ test "slicing slices gives correct result" {...@@ -954,7 +951,6 @@ test "slicing slices gives correct result" {
954 if (builtin.zig_backend == .stage2_x86) return error.SkipZigTest; // TODO951 if (builtin.zig_backend == .stage2_x86) return error.SkipZigTest; // TODO
955 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO952 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
956 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO953 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
957 if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest;
958954
959 const foo = "1234";955 const foo = "1234";
960 const bar = foo[0..4];956 const bar = foo[0..4];
test/behavior/struct.zig-4
...@@ -1234,7 +1234,6 @@ test "typed init through error unions and optionals" {...@@ -1234,7 +1234,6 @@ test "typed init through error unions and optionals" {
1234 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO1234 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
1235 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO1235 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
1236 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO1236 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
1237 if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest;
12381237
1239 const S = struct {1238 const S = struct {
1240 a: u32,1239 a: u32,
...@@ -1456,8 +1455,6 @@ test "struct field has a pointer to an aligned version of itself" {...@@ -1456,8 +1455,6 @@ test "struct field has a pointer to an aligned version of itself" {
1456}1455}
14571456
1458test "struct has only one reference" {1457test "struct has only one reference" {
1459 if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest;
1460
1461 const S = struct {1458 const S = struct {
1462 fn optionalStructParam(_: ?struct { x: u8 }) void {}1459 fn optionalStructParam(_: ?struct { x: u8 }) void {}
1463 fn errorUnionStructParam(_: error{}!struct { x: u8 }) void {}1460 fn errorUnionStructParam(_: error{}!struct { x: u8 }) void {}
...@@ -1980,7 +1977,6 @@ test "runtime call in nested initializer" {...@@ -1980,7 +1977,6 @@ test "runtime call in nested initializer" {
1980 if (builtin.zig_backend == .stage2_x86) return error.SkipZigTest; // TODO1977 if (builtin.zig_backend == .stage2_x86) return error.SkipZigTest; // TODO
1981 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO1978 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
1982 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO1979 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
1983 if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest;
19841980
1985 const Holder = struct {1981 const Holder = struct {
1986 array: []const u8,1982 array: []const u8,
test/behavior/switch.zig-9
...@@ -316,7 +316,6 @@ test "switch on union with some prongs capturing" {...@@ -316,7 +316,6 @@ test "switch on union with some prongs capturing" {
316 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO316 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
317 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO317 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
318 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO318 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
319 if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest;
320319
321 const X = union(enum) {320 const X = union(enum) {
322 a,321 a,
...@@ -538,7 +537,6 @@ test "switch prongs with cases with identical payload types" {...@@ -538,7 +537,6 @@ test "switch prongs with cases with identical payload types" {
538 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO537 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
539 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO538 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
540 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO539 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
541 if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest;
542540
543 const Union = union(enum) {541 const Union = union(enum) {
544 A: usize,542 A: usize,
...@@ -782,8 +780,6 @@ test "comptime inline switch" {...@@ -782,8 +780,6 @@ test "comptime inline switch" {
782}780}
783781
784test "switch capture peer type resolution" {782test "switch capture peer type resolution" {
785 if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest;
786
787 const U = union(enum) {783 const U = union(enum) {
788 a: u32,784 a: u32,
789 b: u64,785 b: u64,
...@@ -799,8 +795,6 @@ test "switch capture peer type resolution" {...@@ -799,8 +795,6 @@ test "switch capture peer type resolution" {
799}795}
800796
801test "switch capture peer type resolution for in-memory coercible payloads" {797test "switch capture peer type resolution for in-memory coercible payloads" {
802 if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest;
803
804 const T1 = c_int;798 const T1 = c_int;
805 const T2 = @Type(@typeInfo(T1));799 const T2 = @Type(@typeInfo(T1));
806800
...@@ -822,7 +816,6 @@ test "switch capture peer type resolution for in-memory coercible payloads" {...@@ -822,7 +816,6 @@ test "switch capture peer type resolution for in-memory coercible payloads" {
822816
823test "switch pointer capture peer type resolution" {817test "switch pointer capture peer type resolution" {
824 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;818 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
825 if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest;
826819
827 const T1 = c_int;820 const T1 = c_int;
828 const T2 = @Type(@typeInfo(T1));821 const T2 = @Type(@typeInfo(T1));
...@@ -925,8 +918,6 @@ test "switch prong captures range" {...@@ -925,8 +918,6 @@ test "switch prong captures range" {
925}918}
926919
927test "prong with inline call to unreachable" {920test "prong with inline call to unreachable" {
928 if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest;
929
930 const U = union(enum) {921 const U = union(enum) {
931 void: void,922 void: void,
932 bool: bool,923 bool: bool,
test/behavior/switch_prong_implicit_cast.zig-1
...@@ -18,7 +18,6 @@ test "switch prong implicit cast" {...@@ -18,7 +18,6 @@ test "switch prong implicit cast" {
18 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest;18 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest;
19 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;19 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;
20 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO20 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
21 if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest;
2221
23 const result = switch (foo(2) catch unreachable) {22 const result = switch (foo(2) catch unreachable) {
24 FormValue.One => false,23 FormValue.One => false,
test/behavior/tuple.zig-1
...@@ -405,7 +405,6 @@ test "nested runtime conditionals in tuple initializer" {...@@ -405,7 +405,6 @@ test "nested runtime conditionals in tuple initializer" {
405 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO405 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
406 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO406 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
407 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO407 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
408 if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest;
409408
410 var data: u8 = 0;409 var data: u8 = 0;
411 _ = &data;410 _ = &data;
test/behavior/tuple_declarations.zig-2
...@@ -7,7 +7,6 @@ const expectEqualStrings = testing.expectEqualStrings;...@@ -7,7 +7,6 @@ const expectEqualStrings = testing.expectEqualStrings;
7test "tuple declaration type info" {7test "tuple declaration type info" {
8 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;8 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;
9 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest;9 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest;
10 if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest;
1110
12 {11 {
13 const T = struct { comptime u32 align(2) = 1, []const u8 };12 const T = struct { comptime u32 align(2) = 1, []const u8 };
...@@ -36,7 +35,6 @@ test "tuple declaration type info" {...@@ -36,7 +35,6 @@ test "tuple declaration type info" {
36test "Tuple declaration usage" {35test "Tuple declaration usage" {
37 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;36 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;
38 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest;37 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest;
39 if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest;
4038
41 const T = struct { u32, []const u8 };39 const T = struct { u32, []const u8 };
42 var t: T = .{ 1, "foo" };40 var t: T = .{ 1, "foo" };
test/behavior/type_info.zig-5
...@@ -565,8 +565,6 @@ test "StructField.is_comptime" {...@@ -565,8 +565,6 @@ test "StructField.is_comptime" {
565}565}
566566
567test "typeInfo resolves usingnamespace declarations" {567test "typeInfo resolves usingnamespace declarations" {
568 if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest;
569
570 const A = struct {568 const A = struct {
571 pub const f1 = 42;569 pub const f1 = 42;
572 };570 };
...@@ -592,7 +590,6 @@ test "value from struct @typeInfo default_value can be loaded at comptime" {...@@ -592,7 +590,6 @@ test "value from struct @typeInfo default_value can be loaded at comptime" {
592test "@typeInfo decls and usingnamespace" {590test "@typeInfo decls and usingnamespace" {
593 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO591 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
594 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO592 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
595 if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest;
596593
597 const A = struct {594 const A = struct {
598 pub const x = 5;595 pub const x = 5;
...@@ -633,8 +630,6 @@ test "type info of tuple of string literal default value" {...@@ -633,8 +630,6 @@ test "type info of tuple of string literal default value" {
633}630}
634631
635test "@typeInfo only contains pub decls" {632test "@typeInfo only contains pub decls" {
636 if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest;
637
638 const other = struct {633 const other = struct {
639 const std = @import("std");634 const std = @import("std");
640635
test/behavior/typename.zig-8
...@@ -16,7 +16,6 @@ test "anon fn param" {...@@ -16,7 +16,6 @@ test "anon fn param" {
16 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO16 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
17 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO17 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
18 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;18 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
19 if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest;
2019
21 // https://github.com/ziglang/zig/issues/933920 // https://github.com/ziglang/zig/issues/9339
22 try expectEqualStringsIgnoreDigits(21 try expectEqualStringsIgnoreDigits(
...@@ -42,7 +41,6 @@ test "anon field init" {...@@ -42,7 +41,6 @@ test "anon field init" {
42 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO41 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
43 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO42 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
44 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO43 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
45 if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest;
46 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;44 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
4745
48 const Foo = .{46 const Foo = .{
...@@ -69,7 +67,6 @@ test "basic" {...@@ -69,7 +67,6 @@ test "basic" {
69 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO67 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
70 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO68 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
71 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO69 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
72 if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest;
7370
74 try expectEqualStrings("i64", @typeName(i64));71 try expectEqualStrings("i64", @typeName(i64));
75 try expectEqualStrings("*usize", @typeName(*usize));72 try expectEqualStrings("*usize", @typeName(*usize));
...@@ -91,7 +88,6 @@ test "top level decl" {...@@ -91,7 +88,6 @@ test "top level decl" {
91 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO88 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
92 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO89 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
93 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO90 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
94 if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest;
95 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;91 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
9692
97 try expectEqualStrings(93 try expectEqualStrings(
...@@ -142,7 +138,6 @@ test "fn param" {...@@ -142,7 +138,6 @@ test "fn param" {
142 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO138 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
143 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO139 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
144 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO140 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
145 if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest;
146 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;141 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
147142
148 // https://github.com/ziglang/zig/issues/675143 // https://github.com/ziglang/zig/issues/675
...@@ -223,7 +218,6 @@ test "local variable" {...@@ -223,7 +218,6 @@ test "local variable" {
223 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO218 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
224 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO219 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
225 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO220 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
226 if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest;
227 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;221 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
228222
229 const Foo = struct { a: u32 };223 const Foo = struct { a: u32 };
...@@ -243,7 +237,6 @@ test "comptime parameters not converted to anytype in function type" {...@@ -243,7 +237,6 @@ test "comptime parameters not converted to anytype in function type" {
243 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO237 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
244 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO238 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
245 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO239 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
246 if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest;
247240
248 const T = fn (fn (type) void, void) void;241 const T = fn (fn (type) void, void) void;
249 try expectEqualStrings("fn (comptime fn (comptime type) void, void) void", @typeName(T));242 try expectEqualStrings("fn (comptime fn (comptime type) void, void) void", @typeName(T));
...@@ -253,7 +246,6 @@ test "anon name strategy used in sub expression" {...@@ -253,7 +246,6 @@ test "anon name strategy used in sub expression" {
253 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO246 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
254 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO247 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
255 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO248 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
256 if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest;
257 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;249 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
258250
259 const S = struct {251 const S = struct {
test/behavior/union.zig-5
...@@ -171,7 +171,6 @@ test "constant tagged union with payload" {...@@ -171,7 +171,6 @@ test "constant tagged union with payload" {
171 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest;171 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest;
172 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;172 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;
173 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO173 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
174 if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest;
175174
176 var empty = TaggedUnionWithPayload{ .Empty = {} };175 var empty = TaggedUnionWithPayload{ .Empty = {} };
177 var full = TaggedUnionWithPayload{ .Full = 13 };176 var full = TaggedUnionWithPayload{ .Full = 13 };
...@@ -655,7 +654,6 @@ test "union(enum(u32)) with specified and unspecified tag values" {...@@ -655,7 +654,6 @@ test "union(enum(u32)) with specified and unspecified tag values" {
655 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest;654 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest;
656 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;655 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;
657 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO656 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
658 if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest;
659657
660 comptime assert(Tag(Tag(MultipleChoice2)) == u32);658 comptime assert(Tag(Tag(MultipleChoice2)) == u32);
661 try testEnumWithSpecifiedAndUnspecifiedTagValues(MultipleChoice2{ .C = 123 });659 try testEnumWithSpecifiedAndUnspecifiedTagValues(MultipleChoice2{ .C = 123 });
...@@ -807,7 +805,6 @@ test "return union init with void payload" {...@@ -807,7 +805,6 @@ test "return union init with void payload" {
807 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest;805 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest;
808 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;806 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;
809 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO807 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
810 if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest;
811808
812 const S = struct {809 const S = struct {
813 fn entry() !void {810 fn entry() !void {
...@@ -970,7 +967,6 @@ test "function call result coerces from tagged union to the tag" {...@@ -970,7 +967,6 @@ test "function call result coerces from tagged union to the tag" {
970 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO967 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
971 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO968 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
972 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO969 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
973 if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest;
974970
975 const S = struct {971 const S = struct {
976 const Arch = union(enum) {972 const Arch = union(enum) {
...@@ -1135,7 +1131,6 @@ test "@unionInit on union with tag but no fields" {...@@ -1135,7 +1131,6 @@ test "@unionInit on union with tag but no fields" {
1135 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO1131 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
1136 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO1132 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
1137 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;1133 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
1138 if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest;
11391134
1140 const S = struct {1135 const S = struct {
1141 const Type = enum(u8) { no_op = 105 };1136 const Type = enum(u8) { no_op = 105 };
test/behavior/union_with_members.zig-1
...@@ -21,7 +21,6 @@ test "enum with members" {...@@ -21,7 +21,6 @@ test "enum with members" {
21 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO21 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
22 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO22 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
23 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;23 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
24 if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest;
2524
26 const a = ET{ .SINT = -42 };25 const a = ET{ .SINT = -42 };
27 const b = ET{ .UINT = 42 };26 const b = ET{ .UINT = 42 };
test/behavior/while.zig-4
...@@ -207,7 +207,6 @@ test "while on optional with else result follow else prong" {...@@ -207,7 +207,6 @@ test "while on optional with else result follow else prong" {
207 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest;207 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest;
208 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;208 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;
209 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO209 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
210 if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest;
211210
212 const result = while (returnNull()) |value| {211 const result = while (returnNull()) |value| {
213 break value;212 break value;
...@@ -219,7 +218,6 @@ test "while on optional with else result follow break prong" {...@@ -219,7 +218,6 @@ test "while on optional with else result follow break prong" {
219 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest;218 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest;
220 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;219 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;
221 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO220 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
222 if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest;
223221
224 const result = while (returnOptional(10)) |value| {222 const result = while (returnOptional(10)) |value| {
225 break value;223 break value;
...@@ -292,7 +290,6 @@ test "while optional 2 break statements and an else" {...@@ -292,7 +290,6 @@ test "while optional 2 break statements and an else" {
292 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO290 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
293 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO291 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
294 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO292 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
295 if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest;
296293
297 const S = struct {294 const S = struct {
298 fn entry(opt_t: ?bool, f: bool) !void {295 fn entry(opt_t: ?bool, f: bool) !void {
...@@ -391,7 +388,6 @@ test "breaking from a loop in an if statement" {...@@ -391,7 +388,6 @@ test "breaking from a loop in an if statement" {
391 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest;388 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest;
392 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;389 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;
393 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO390 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
394 if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest;
395391
396 const S = struct {392 const S = struct {
397 fn retOpt() ?u32 {393 fn retOpt() ?u32 {