From 91fbcf70935118c0667031ba7ae76fa0e75d80cc Mon Sep 17 00:00:00 2001 From: joachimschmidt557 Date: Sun, 27 Feb 2022 13:14:57 +0100 Subject: [PATCH] stage2 ARM: enable more behavior tests --- src/arch/arm/CodeGen.zig | 1 + test/behavior/align.zig | 2 -- test/behavior/array.zig | 3 --- test/behavior/basic.zig | 7 ------- test/behavior/bitcast.zig | 6 ------ test/behavior/bitreverse.zig | 1 - test/behavior/bugs/3367.zig | 1 - test/behavior/bugs/3586.zig | 1 - test/behavior/bugs/4560.zig | 1 - test/behavior/bugs/704.zig | 1 - test/behavior/cast.zig | 3 --- test/behavior/defer.zig | 2 -- test/behavior/enum.zig | 21 --------------------- test/behavior/error.zig | 7 ------- test/behavior/fn.zig | 15 --------------- test/behavior/for.zig | 3 --- test/behavior/generics.zig | 6 ------ test/behavior/if.zig | 3 --- test/behavior/slice.zig | 2 -- test/behavior/struct.zig | 7 ------- test/behavior/this.zig | 1 - test/behavior/try.zig | 2 -- test/behavior/type_info.zig | 1 - test/behavior/undefined.zig | 1 - test/behavior/union.zig | 20 -------------------- test/behavior/usingnamespace.zig | 4 ---- test/behavior/void.zig | 1 - 27 files changed, 1 insertion(+), 122 deletions(-) diff --git a/src/arch/arm/CodeGen.zig b/src/arch/arm/CodeGen.zig index f4e97fa8b1..51b2e7f1a8 100644 --- a/src/arch/arm/CodeGen.zig +++ b/src/arch/arm/CodeGen.zig @@ -1359,6 +1359,7 @@ fn airSliceElemVal(self: *Self, inst: Air.Inst.Index) !void { const base_mcv: MCValue = switch (slice_mcv) { .stack_offset => |off| .{ .register = try self.copyToTmpRegister(slice_ptr_field_type, .{ .stack_offset = off + 4 }) }, + .stack_argument_offset => |off| .{ .register = try self.copyToTmpRegister(slice_ptr_field_type, .{ .stack_argument_offset = off + 4 }) }, else => return self.fail("TODO slice_elem_val when slice is {}", .{slice_mcv}), }; self.register_manager.freezeRegs(&.{base_mcv.register}); diff --git a/test/behavior/align.zig b/test/behavior/align.zig index 28dcd7a508..acdf484b15 100644 --- a/test/behavior/align.zig +++ b/test/behavior/align.zig @@ -6,8 +6,6 @@ const native_arch = builtin.target.cpu.arch; var foo: u8 align(4) = 100; test "global variable alignment" { - if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; - comptime try expect(@typeInfo(@TypeOf(&foo)).Pointer.alignment == 4); comptime try expect(@TypeOf(&foo) == *align(4) u8); { diff --git a/test/behavior/array.zig b/test/behavior/array.zig index 2d4d1368f5..1d6a149560 100644 --- a/test/behavior/array.zig +++ b/test/behavior/array.zig @@ -70,8 +70,6 @@ test "array literal with explicit type" { } test "array literal with inferred length" { - if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; - const hex_mult = [_]u16{ 4096, 256, 16, 1 }; try expect(hex_mult.len == 4); @@ -142,7 +140,6 @@ test "array with sentinels" { test "void arrays" { if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; - if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; var array: [4]void = undefined; array[0] = void{}; diff --git a/test/behavior/basic.zig b/test/behavior/basic.zig index c36fa0c921..010e44db73 100644 --- a/test/behavior/basic.zig +++ b/test/behavior/basic.zig @@ -120,14 +120,12 @@ test "return string from function" { test "hex escape" { if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; - if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; try expect(mem.eql(u8, "\x68\x65\x6c\x6c\x6f", "hello")); } test "multiline string" { if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; - if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; const s1 = \\one @@ -140,7 +138,6 @@ test "multiline string" { test "multiline string comments at start" { if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; - if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; const s1 = //\\one @@ -153,7 +150,6 @@ test "multiline string comments at start" { test "multiline string comments at end" { if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; - if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; const s1 = \\one @@ -166,7 +162,6 @@ test "multiline string comments at end" { test "multiline string comments in middle" { if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; - if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; const s1 = \\one @@ -179,7 +174,6 @@ test "multiline string comments in middle" { test "multiline string comments at multiple places" { if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; - if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; const s1 = \\one @@ -198,7 +192,6 @@ test "string concatenation" { test "array mult operator" { if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; - if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; try expect(mem.eql(u8, "ab" ** 5, "ababababab")); } diff --git a/test/behavior/bitcast.zig b/test/behavior/bitcast.zig index c78388ac8d..835ed734ef 100644 --- a/test/behavior/bitcast.zig +++ b/test/behavior/bitcast.zig @@ -76,7 +76,6 @@ fn conv_uN(comptime N: usize, x: std.meta.Int(.unsigned, N)) std.meta.Int(.signe test "nested bitcast" { if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; - if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; const S = struct { fn moo(x: isize) !void { @@ -96,7 +95,6 @@ test "nested bitcast" { test "@bitCast enum to its integer type" { if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; - if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; const SOCK = enum(c_int) { A, @@ -116,7 +114,6 @@ test "@bitCast enum to its integer type" { // issue #3010: compiler segfault test "bitcast literal [4]u8 param to u32" { if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; - if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; const ip = @bitCast(u32, [_]u8{ 255, 255, 255, 255 }); try expect(ip == maxInt(u32)); @@ -124,7 +121,6 @@ test "bitcast literal [4]u8 param to u32" { test "bitcast generates a temporary value" { if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; - if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; var y = @as(u16, 0x55AA); const x = @bitCast(u16, @bitCast([2]u8, y)); @@ -247,7 +243,6 @@ test "bitcast packed struct literal to byte" { if (builtin.zig_backend == .stage2_c) return error.SkipZigTest; if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; - if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; const Foo = packed struct { value: u8, @@ -261,7 +256,6 @@ test "comptime bitcast used in expression has the correct type" { if (builtin.zig_backend == .stage2_c) return error.SkipZigTest; if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; - if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; const Foo = packed struct { value: u8, diff --git a/test/behavior/bitreverse.zig b/test/behavior/bitreverse.zig index 28980cccf3..11179b964a 100644 --- a/test/behavior/bitreverse.zig +++ b/test/behavior/bitreverse.zig @@ -7,7 +7,6 @@ test "@bitReverse large exotic integer" { if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest; if (builtin.zig_backend == .stage2_c) return error.SkipZigTest; if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; - if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // Currently failing on stage1 for big-endian targets if (builtin.zig_backend == .stage1) return error.SkipZigTest; diff --git a/test/behavior/bugs/3367.zig b/test/behavior/bugs/3367.zig index 6468498ab6..4509283457 100644 --- a/test/behavior/bugs/3367.zig +++ b/test/behavior/bugs/3367.zig @@ -12,7 +12,6 @@ const Mixin = struct { test "container member access usingnamespace decls" { if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; if (builtin.zig_backend == .stage2_c) return error.SkipZigTest; - if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; var foo = Foo{}; foo.two(); } diff --git a/test/behavior/bugs/3586.zig b/test/behavior/bugs/3586.zig index f7266e9918..e61ed19616 100644 --- a/test/behavior/bugs/3586.zig +++ b/test/behavior/bugs/3586.zig @@ -7,7 +7,6 @@ const Container = struct { }; test "fixed" { - if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; var ctr = Container{ diff --git a/test/behavior/bugs/4560.zig b/test/behavior/bugs/4560.zig index b3e40dd7f8..30d3677920 100644 --- a/test/behavior/bugs/4560.zig +++ b/test/behavior/bugs/4560.zig @@ -2,7 +2,6 @@ const std = @import("std"); const builtin = @import("builtin"); test "fixed" { - if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; var s: S = .{ diff --git a/test/behavior/bugs/704.zig b/test/behavior/bugs/704.zig index 352f61ac62..f15ddab726 100644 --- a/test/behavior/bugs/704.zig +++ b/test/behavior/bugs/704.zig @@ -6,7 +6,6 @@ const xxx = struct { } }; test "bug 704" { - if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; var x: xxx = undefined; diff --git a/test/behavior/cast.zig b/test/behavior/cast.zig index d7071f64df..e237fa8439 100644 --- a/test/behavior/cast.zig +++ b/test/behavior/cast.zig @@ -1067,7 +1067,6 @@ test "implicit cast *[0]T to E![]const u8" { var global_array: [4]u8 = undefined; test "cast from array reference to fn: comptime fn ptr" { - if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO const f = @ptrCast(*const fn () callconv(.C) void, &global_array); @@ -1075,7 +1074,6 @@ test "cast from array reference to fn: comptime fn ptr" { } test "cast from array reference to fn: runtime fn ptr" { if (builtin.zig_backend == .stage2_c) return error.SkipZigTest; // TODO - if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO var f = @ptrCast(*const fn () callconv(.C) void, &global_array); @@ -1100,7 +1098,6 @@ test "*const [N]null u8 to ?[]const u8" { } test "cast between [*c]T and ?[*:0]T on fn parameter" { - if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO const S = struct { diff --git a/test/behavior/defer.zig b/test/behavior/defer.zig index 360d6e14bb..236b37a51c 100644 --- a/test/behavior/defer.zig +++ b/test/behavior/defer.zig @@ -5,7 +5,6 @@ const expectEqual = std.testing.expectEqual; const expectError = std.testing.expectError; test "break and continue inside loop inside defer expression" { - if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; testBreakContInDefer(10); @@ -24,7 +23,6 @@ fn testBreakContInDefer(x: usize) void { } test "defer and labeled break" { - if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; var i = @as(usize, 0); diff --git a/test/behavior/enum.zig b/test/behavior/enum.zig index d0f62842c1..8b56503ec3 100644 --- a/test/behavior/enum.zig +++ b/test/behavior/enum.zig @@ -11,7 +11,6 @@ fn shouldEqual(n: Number, expected: u3) !void { } test "enum to int" { - if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; try shouldEqual(Number.Zero, 0); @@ -559,7 +558,6 @@ const ValueCount257 = enum { }; test "enum sizes" { - if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; comptime { @@ -571,7 +569,6 @@ test "enum sizes" { } test "enum literal equality" { - if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; const x = .hi; @@ -583,7 +580,6 @@ test "enum literal equality" { } test "enum literal cast to enum" { - if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; const Color = enum { Auto, Off, On }; @@ -594,7 +590,6 @@ test "enum literal cast to enum" { } test "peer type resolution with enum literal" { - if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; const Items = enum { one, two }; @@ -675,7 +670,6 @@ test "non-exhaustive enum" { } test "empty non-exhaustive enum" { - if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; const S = struct { @@ -741,7 +735,6 @@ const EnumWithTagValues = enum(u4) { D = 1 << 3, }; test "enum with tag values don't require parens" { - if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; try expect(@enumToInt(EnumWithTagValues.C) == 0b0100); @@ -760,7 +753,6 @@ const MultipleChoice2 = enum(u32) { }; test "cast integer literal to enum" { - if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; try expect(@intToEnum(MultipleChoice2, 0) == MultipleChoice2.Unspecified1); @@ -795,7 +787,6 @@ const Small2 = enum(u2) { One, Two }; const Small = enum(u2) { One, Two, Three, Four }; test "set enum tag type" { - if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; { @@ -811,7 +802,6 @@ test "set enum tag type" { } test "casting enum to its tag type" { - if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; try testCastEnumTag(Small2.Two); @@ -823,7 +813,6 @@ fn testCastEnumTag(value: Small2) !void { } test "enum with 1 field but explicit tag type should still have the tag type" { - if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; const Enum = enum(u8) { @@ -833,7 +822,6 @@ test "enum with 1 field but explicit tag type should still have the tag type" { } test "signed integer as enum tag" { - if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; const SignedEnum = enum(i2) { @@ -848,7 +836,6 @@ test "signed integer as enum tag" { } test "enum with one member and custom tag type" { - if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; const E = enum(u2) { @@ -862,7 +849,6 @@ test "enum with one member and custom tag type" { } test "enum with one member and u1 tag type @enumToInt" { - if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; const Enum = enum(u1) { @@ -872,7 +858,6 @@ test "enum with one member and u1 tag type @enumToInt" { } test "enum with comptime_int tag type" { - if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; const Enum = enum(comptime_int) { @@ -884,7 +869,6 @@ test "enum with comptime_int tag type" { } test "enum with one member default to u0 tag type" { - if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; const E0 = enum { X }; @@ -903,7 +887,6 @@ fn doALoopThing(id: EnumWithOneMember) void { } test "comparison operator on enum with one member is comptime known" { - if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; doALoopThing(EnumWithOneMember.Eof); @@ -911,7 +894,6 @@ test "comparison operator on enum with one member is comptime known" { const State = enum { Start }; test "switch on enum with one member is comptime known" { - if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; var state = State.Start; @@ -922,7 +904,6 @@ test "switch on enum with one member is comptime known" { } test "method call on an enum" { - if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; const S = struct { @@ -1117,7 +1098,6 @@ test "tag name with assigned enum values" { } test "@tagName on enum literals" { - if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; try expect(mem.eql(u8, @tagName(.FooBar), "FooBar")); @@ -1184,7 +1164,6 @@ fn getC(data: *const BitFieldOfEnums) C { } test "enum literal in array literal" { - if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; const Items = enum { one, two }; diff --git a/test/behavior/error.zig b/test/behavior/error.zig index e346e6a82a..ab58874c34 100644 --- a/test/behavior/error.zig +++ b/test/behavior/error.zig @@ -6,7 +6,6 @@ const expectEqual = std.testing.expectEqual; const mem = std.mem; test "error values" { - if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; const a = @errorToInt(error.err1); @@ -15,7 +14,6 @@ test "error values" { } test "redefinition of error values allowed" { - if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; shouldBeNotEqual(error.AnError, error.SecondError); @@ -39,7 +37,6 @@ fn errBinaryOperatorG(x: bool) anyerror!isize { } test "empty error union" { - if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; const x = error{} || error{}; @@ -98,7 +95,6 @@ fn makeANonErr() anyerror!i32 { } test "syntax: optional operator in front of error union operator" { - if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; comptime { @@ -157,7 +153,6 @@ test "implicit cast to optional to error union to return result loc" { } test "error: fn returning empty error set can be passed as fn returning any error" { - if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; entry(); @@ -178,7 +173,6 @@ fn bar2() (error{}!void) {} test "error union type " { if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; if (builtin.zig_backend == .stage2_c) return error.SkipZigTest; // TODO - if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest; // TODO @@ -197,7 +191,6 @@ fn testErrorUnionType() !void { test "error set type" { if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; if (builtin.zig_backend == .stage2_c) return error.SkipZigTest; // TODO - if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest; // TODO diff --git a/test/behavior/fn.zig b/test/behavior/fn.zig index c4779379c5..71602aa698 100644 --- a/test/behavior/fn.zig +++ b/test/behavior/fn.zig @@ -5,7 +5,6 @@ const expect = testing.expect; const expectEqual = testing.expectEqual; test "params" { - if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; try expect(testParamsAdd(22, 11) == 33); @@ -15,7 +14,6 @@ fn testParamsAdd(a: i32, b: i32) i32 { } test "local variables" { - if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; testLocVars(2); @@ -26,7 +24,6 @@ fn testLocVars(b: i32) void { } test "mutable local variables" { - if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; var zero: i32 = 0; @@ -40,7 +37,6 @@ test "mutable local variables" { } test "separate block scopes" { - if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; { @@ -59,14 +55,12 @@ fn @"weird function name"() i32 { return 1234; } test "weird function name" { - if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; try expect(@"weird function name"() == 1234); } test "assign inline fn to const variable" { - if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; const a = inlineFn; @@ -86,7 +80,6 @@ fn outer(y: u32) *const fn (u32) u32 { } test "return inner function which references comptime variable of outer function" { - if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; if (builtin.zig_backend == .stage1) return error.SkipZigTest; @@ -156,7 +149,6 @@ test "inline function call that calls optional function pointer, return pointer } test "implicit cast function unreachable return" { - if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; wantsFnWithVoid(fnWithUnreachable); @@ -209,7 +201,6 @@ test "function with complex callconv and return type expressions" { } test "pass by non-copying value" { - if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; try expect(addPointCoords(Point{ .x = 1, .y = 2 }) == 3); @@ -238,7 +229,6 @@ fn addPointCoordsVar(pt: anytype) !i32 { } test "pass by non-copying value as method" { - if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; var pt = Point2{ .x = 1, .y = 2 }; @@ -255,7 +245,6 @@ const Point2 = struct { }; test "pass by non-copying value as method, which is generic" { - if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; var pt = Point3{ .x = 1, .y = 2 }; @@ -273,7 +262,6 @@ const Point3 = struct { }; test "pass by non-copying value as method, at comptime" { - if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; comptime { @@ -325,7 +313,6 @@ fn voidFun(a: i32, b: void, c: i32, d: void) !void { } test "call function with empty string" { - if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; acceptsString(""); @@ -362,7 +349,6 @@ fn fn4() u32 { } test "number literal as an argument" { - if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; try numberLiteralArg(3); @@ -395,7 +381,6 @@ test "function call with anon list literal" { } test "ability to give comptime types and non comptime types to same parameter" { - if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; const S = struct { diff --git a/test/behavior/for.zig b/test/behavior/for.zig index 011363bffd..8f465eb3de 100644 --- a/test/behavior/for.zig +++ b/test/behavior/for.zig @@ -21,7 +21,6 @@ test "continue in for loop" { } test "break from outer for loop" { - if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; try testBreakOuter(); @@ -41,7 +40,6 @@ fn testBreakOuter() !void { } test "continue outer for loop" { - if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; try testContinueOuter(); @@ -61,7 +59,6 @@ fn testContinueOuter() !void { } test "ignore lval with underscore (for loop)" { - if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; for ([_]void{}) |_, i| { diff --git a/test/behavior/generics.zig b/test/behavior/generics.zig index e76cca4e1f..c73ae26e28 100644 --- a/test/behavior/generics.zig +++ b/test/behavior/generics.zig @@ -5,7 +5,6 @@ const expect = testing.expect; const expectEqual = testing.expectEqual; test "one param, explicit comptime" { - if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; var x: usize = 0; @@ -43,7 +42,6 @@ fn add(comptime a: i32, b: i32) i32 { const the_max = max(u32, 1234, 5678); test "compile time generic eval" { - if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; try expect(the_max == 5678); @@ -144,7 +142,6 @@ pub fn SmallList(comptime T: type, comptime STATIC_SIZE: usize) type { } test "const decls in struct" { - if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; try expect(GenericDataThing(3).count_plus_one == 4); @@ -156,7 +153,6 @@ fn GenericDataThing(comptime count: isize) type { } test "use generic param in generic param" { - if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; try expect(aGenericFn(i32, 3, 4) == 7); @@ -201,7 +197,6 @@ test "generic fn keeps non-generic parameter types" { } test "array of generic fns" { - if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; if (builtin.zig_backend == .stage2_c) return error.SkipZigTest; @@ -223,7 +218,6 @@ fn foo2(arg: anytype) bool { test "generic struct" { if (builtin.zig_backend == .stage2_c) return error.SkipZigTest; - if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; var a1 = GenNode(i32){ .value = 13, diff --git a/test/behavior/if.zig b/test/behavior/if.zig index 068f3bdd21..54ee5338af 100644 --- a/test/behavior/if.zig +++ b/test/behavior/if.zig @@ -30,7 +30,6 @@ fn firstEqlThird(a: i32, b: i32, c: i32) void { } test "else if expression" { - if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; try expect(elseIfExpressionF(1) == 1); @@ -67,7 +66,6 @@ test "unwrap mutable global var" { } test "labeled break inside comptime if inside runtime if" { - if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; var answer: i32 = 0; @@ -81,7 +79,6 @@ test "labeled break inside comptime if inside runtime if" { } test "const result loc, runtime if cond, else unreachable" { - if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; const Num = enum { One, Two }; diff --git a/test/behavior/slice.zig b/test/behavior/slice.zig index e746535d97..c6405fd168 100644 --- a/test/behavior/slice.zig +++ b/test/behavior/slice.zig @@ -220,7 +220,6 @@ test "compile time slice of pointer to hard coded address" { test "slice string literal has correct type" { if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; - if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; comptime { try expect(@TypeOf("aoeu"[0..]) == *const [4:0]u8); @@ -565,7 +564,6 @@ test "array concat of slices gives slice" { } test "slice bounds in comptime concatenation" { - if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO const bs = comptime blk: { diff --git a/test/behavior/struct.zig b/test/behavior/struct.zig index 1da2b0373d..47a71ae68e 100644 --- a/test/behavior/struct.zig +++ b/test/behavior/struct.zig @@ -215,7 +215,6 @@ fn makeBar2(x: i32, y: i32) Bar { test "call method with mutable reference to struct with no fields" { if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; - if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; const S = struct { fn doC(s: *const @This()) bool { @@ -343,7 +342,6 @@ test "pass slice of empty struct to fn" { if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest; // TODO if (builtin.zig_backend == .stage2_c) return error.SkipZigTest; // TODO - if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO try expect(testPassSliceOfEmptyStructToFn(&[_]EmptyStruct2{EmptyStruct2{}}) == 1); } @@ -369,7 +367,6 @@ test "self-referencing struct via array member" { test "empty struct method call" { if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest; // TODO if (builtin.zig_backend == .stage2_c) return error.SkipZigTest; // TODO - if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO const es = EmptyStruct{}; try expect(es.method() == 1234); @@ -567,7 +564,6 @@ test "implicit cast packed struct field to const ptr" { test "zero-bit field in packed struct" { if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest; // TODO if (builtin.zig_backend == .stage2_c) return error.SkipZigTest; // TODO - if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO const S = packed struct { @@ -645,7 +641,6 @@ test "default struct initialization fields" { if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest; // TODO if (builtin.zig_backend == .stage2_c) return error.SkipZigTest; // TODO - if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO const S = struct { a: i32 = 1234, @@ -776,7 +771,6 @@ test "pointer to packed struct member in a stack variable" { test "packed struct with u0 field access" { if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest; // TODO if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO - if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO if (builtin.zig_backend == .stage2_c) return error.SkipZigTest; // TODO @@ -915,7 +909,6 @@ test "anonymous struct literal syntax" { if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest; // TODO if (builtin.zig_backend == .stage2_c) return error.SkipZigTest; // TODO - if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO const S = struct { const Point = struct { diff --git a/test/behavior/this.zig b/test/behavior/this.zig index 49b7ca69d9..a284310b1a 100644 --- a/test/behavior/this.zig +++ b/test/behavior/this.zig @@ -21,7 +21,6 @@ fn add(x: i32, y: i32) i32 { } test "this refer to module call private fn" { - if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; try expect(module.add(1, 2) == 3); diff --git a/test/behavior/try.zig b/test/behavior/try.zig index cd8b03afab..898c596ade 100644 --- a/test/behavior/try.zig +++ b/test/behavior/try.zig @@ -25,7 +25,6 @@ fn returnsTen() anyerror!i32 { } test "try without vars" { - if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; const result1 = if (failIfTrue(true)) 1 else |_| @as(i32, 2); @@ -44,7 +43,6 @@ fn failIfTrue(ok: bool) anyerror!void { } test "try then not executed with assignment" { - if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; if (failIfTrue(true)) { diff --git a/test/behavior/type_info.zig b/test/behavior/type_info.zig index c4517ac277..8105e9c02a 100644 --- a/test/behavior/type_info.zig +++ b/test/behavior/type_info.zig @@ -289,7 +289,6 @@ fn testUnion() !void { } test "type info: struct info" { - if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; try testStruct(); diff --git a/test/behavior/undefined.zig b/test/behavior/undefined.zig index dcea219593..abfbcc23bc 100644 --- a/test/behavior/undefined.zig +++ b/test/behavior/undefined.zig @@ -77,7 +77,6 @@ test "assign undefined to struct with method" { } test "type name of undefined" { - if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; const x = undefined; diff --git a/test/behavior/union.zig b/test/behavior/union.zig index 91bd783ce2..6044bf983c 100644 --- a/test/behavior/union.zig +++ b/test/behavior/union.zig @@ -43,8 +43,6 @@ fn setInt(foo: *Foo, x: i32) void { } test "comptime union field access" { - if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; - comptime { var foo = Foo{ .int = 0 }; try expect(foo.int == 0); @@ -75,14 +73,10 @@ const ExternPtrOrInt = extern union { int: u64, }; test "extern union size" { - if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; - comptime try expect(@sizeOf(ExternPtrOrInt) == 8); } test "0-sized extern union definition" { - if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; - const U = extern union { a: void, const f = 1; @@ -112,8 +106,6 @@ const err = @as(anyerror!Agg, Agg{ const array = [_]Value{ v1, v2, v1, v2 }; test "unions embedded in aggregate types" { - if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; - switch (array[1]) { Value.Array => |arr| try expect(arr[4] == 3), else => unreachable, @@ -125,8 +117,6 @@ test "unions embedded in aggregate types" { } test "access a member of tagged union with conflicting enum tag name" { - if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; - const Bar = union(enum) { A: A, B: B, @@ -169,8 +159,6 @@ const TaggedUnionWithPayload = union(enum) { }; test "union alignment" { - if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; - comptime { try expect(@alignOf(AlignTestTaggedUnion) >= @alignOf([9]u8)); try expect(@alignOf(AlignTestTaggedUnion) >= @alignOf(u64)); @@ -268,8 +256,6 @@ fn testCastUnionToTag() !void { } test "union field access gives the enum values" { - if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; - try expect(TheUnion.A == TheTag.A); try expect(TheUnion.B == TheTag.B); try expect(TheUnion.C == TheTag.C); @@ -343,8 +329,6 @@ const PackedPtrOrInt = packed union { int: u64, }; test "packed union size" { - if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; - comptime try expect(@sizeOf(PackedPtrOrInt) == 8); } @@ -352,8 +336,6 @@ const ZeroBits = union { OnlyField: void, }; test "union with only 1 field which is void should be zero bits" { - if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; - comptime try expect(@sizeOf(ZeroBits) == 0); } @@ -411,8 +393,6 @@ test "union with only 1 field casted to its enum type" { } test "union with one member defaults to u0 tag type" { - if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; - const U0 = union(enum) { X: u32, }; diff --git a/test/behavior/usingnamespace.zig b/test/behavior/usingnamespace.zig index 611b9888fa..8caf2af27c 100644 --- a/test/behavior/usingnamespace.zig +++ b/test/behavior/usingnamespace.zig @@ -11,7 +11,6 @@ const C = struct { }; test "basic usingnamespace" { - if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; try std.testing.expect(C.B == bool); @@ -24,7 +23,6 @@ fn Foo(comptime T: type) type { } test "usingnamespace inside a generic struct" { - if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; const std2 = Foo(std); @@ -38,7 +36,6 @@ usingnamespace struct { }; test "usingnamespace does not redeclare an imported variable" { - if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; comptime try std.testing.expect(@This().foo == 42); @@ -57,7 +54,6 @@ fn privateFunction() bool { } test { - if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; _ = @import("usingnamespace/import_segregation.zig"); diff --git a/test/behavior/void.zig b/test/behavior/void.zig index 800dbb1b00..b1efda23e4 100644 --- a/test/behavior/void.zig +++ b/test/behavior/void.zig @@ -43,7 +43,6 @@ test "void optional" { } test "void array as a local variable initializer" { - if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; var x = [_]void{{}} ** 1004;