authorgravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2022-12-06 19:06:48-07:00
committergravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2022-12-06 19:06:48-07:00
logc8aba15c222e5bb8cf5d2d48678761197f564351
tree60a645691b4ccd5414c7e718c3326fc40fad1657
parentb7b905d227c0124778214f7a307be04b7086ea6a

remove references to stage1 in behavior tests

Good riddance.

61 files changed, 151 insertions(+), 648 deletions(-)

test/behavior.zig+9-12
...@@ -94,6 +94,8 @@ test {...@@ -94,6 +94,8 @@ test {
94 _ = @import("behavior/bugs/12551.zig");94 _ = @import("behavior/bugs/12551.zig");
95 _ = @import("behavior/bugs/12644.zig");95 _ = @import("behavior/bugs/12644.zig");
96 _ = @import("behavior/bugs/12680.zig");96 _ = @import("behavior/bugs/12680.zig");
97 _ = @import("behavior/bugs/12723.zig");
98 _ = @import("behavior/bugs/12776.zig");
97 _ = @import("behavior/bugs/12786.zig");99 _ = @import("behavior/bugs/12786.zig");
98 _ = @import("behavior/bugs/12794.zig");100 _ = @import("behavior/bugs/12794.zig");
99 _ = @import("behavior/bugs/12801-1.zig");101 _ = @import("behavior/bugs/12801-1.zig");
...@@ -112,8 +114,8 @@ test {...@@ -112,8 +114,8 @@ test {
112 _ = @import("behavior/bugs/13069.zig");114 _ = @import("behavior/bugs/13069.zig");
113 _ = @import("behavior/bugs/13112.zig");115 _ = @import("behavior/bugs/13112.zig");
114 _ = @import("behavior/bugs/13128.zig");116 _ = @import("behavior/bugs/13128.zig");
115 _ = @import("behavior/bugs/13164.zig");
116 _ = @import("behavior/bugs/13159.zig");117 _ = @import("behavior/bugs/13159.zig");
118 _ = @import("behavior/bugs/13164.zig");
117 _ = @import("behavior/bugs/13171.zig");119 _ = @import("behavior/bugs/13171.zig");
118 _ = @import("behavior/bugs/13285.zig");120 _ = @import("behavior/bugs/13285.zig");
119 _ = @import("behavior/bugs/13435.zig");121 _ = @import("behavior/bugs/13435.zig");
...@@ -126,7 +128,9 @@ test {...@@ -126,7 +128,9 @@ test {
126 _ = @import("behavior/cast_int.zig");128 _ = @import("behavior/cast_int.zig");
127 _ = @import("behavior/comptime_memory.zig");129 _ = @import("behavior/comptime_memory.zig");
128 _ = @import("behavior/const_slice_child.zig");130 _ = @import("behavior/const_slice_child.zig");
131 _ = @import("behavior/decltest.zig");
129 _ = @import("behavior/defer.zig");132 _ = @import("behavior/defer.zig");
133 _ = @import("behavior/empty_union.zig");
130 _ = @import("behavior/enum.zig");134 _ = @import("behavior/enum.zig");
131 _ = @import("behavior/error.zig");135 _ = @import("behavior/error.zig");
132 _ = @import("behavior/eval.zig");136 _ = @import("behavior/eval.zig");
...@@ -142,6 +146,7 @@ test {...@@ -142,6 +146,7 @@ test {
142 _ = @import("behavior/if.zig");146 _ = @import("behavior/if.zig");
143 _ = @import("behavior/import.zig");147 _ = @import("behavior/import.zig");
144 _ = @import("behavior/incomplete_struct_param_tld.zig");148 _ = @import("behavior/incomplete_struct_param_tld.zig");
149 _ = @import("behavior/inline_switch.zig");
145 _ = @import("behavior/int128.zig");150 _ = @import("behavior/int128.zig");
146 _ = @import("behavior/int_div.zig");151 _ = @import("behavior/int_div.zig");
147 _ = @import("behavior/inttoptr.zig");152 _ = @import("behavior/inttoptr.zig");
...@@ -154,6 +159,8 @@ test {...@@ -154,6 +159,8 @@ test {
154 _ = @import("behavior/namespace_depends_on_compile_var.zig");159 _ = @import("behavior/namespace_depends_on_compile_var.zig");
155 _ = @import("behavior/null.zig");160 _ = @import("behavior/null.zig");
156 _ = @import("behavior/optional.zig");161 _ = @import("behavior/optional.zig");
162 _ = @import("behavior/packed-struct.zig");
163 _ = @import("behavior/packed_struct_explicit_backing_int.zig");
157 _ = @import("behavior/pointers.zig");164 _ = @import("behavior/pointers.zig");
158 _ = @import("behavior/popcount.zig");165 _ = @import("behavior/popcount.zig");
159 _ = @import("behavior/prefetch.zig");166 _ = @import("behavior/prefetch.zig");
...@@ -169,7 +176,6 @@ test {...@@ -169,7 +176,6 @@ test {
169 _ = @import("behavior/slice_sentinel_comptime.zig");176 _ = @import("behavior/slice_sentinel_comptime.zig");
170 _ = @import("behavior/src.zig");177 _ = @import("behavior/src.zig");
171 _ = @import("behavior/struct.zig");178 _ = @import("behavior/struct.zig");
172 _ = @import("behavior/packed-struct.zig");
173 _ = @import("behavior/struct_contains_null_ptr_itself.zig");179 _ = @import("behavior/struct_contains_null_ptr_itself.zig");
174 _ = @import("behavior/struct_contains_slice_of_itself.zig");180 _ = @import("behavior/struct_contains_slice_of_itself.zig");
175 _ = @import("behavior/switch.zig");181 _ = @import("behavior/switch.zig");
...@@ -180,6 +186,7 @@ test {...@@ -180,6 +186,7 @@ test {
180 _ = @import("behavior/truncate.zig");186 _ = @import("behavior/truncate.zig");
181 _ = @import("behavior/try.zig");187 _ = @import("behavior/try.zig");
182 _ = @import("behavior/tuple.zig");188 _ = @import("behavior/tuple.zig");
189 _ = @import("behavior/tuple_declarations.zig");
183 _ = @import("behavior/type.zig");190 _ = @import("behavior/type.zig");
184 _ = @import("behavior/type_info.zig");191 _ = @import("behavior/type_info.zig");
185 _ = @import("behavior/typename.zig");192 _ = @import("behavior/typename.zig");
...@@ -198,16 +205,6 @@ test {...@@ -198,16 +205,6 @@ test {
198 _ = @import("behavior/wasm.zig");205 _ = @import("behavior/wasm.zig");
199 }206 }
200207
201 if (builtin.zig_backend != .stage1) {
202 _ = @import("behavior/decltest.zig");
203 _ = @import("behavior/packed_struct_explicit_backing_int.zig");
204 _ = @import("behavior/empty_union.zig");
205 _ = @import("behavior/inline_switch.zig");
206 _ = @import("behavior/tuple_declarations.zig");
207 _ = @import("behavior/bugs/12723.zig");
208 _ = @import("behavior/bugs/12776.zig");
209 }
210
211 if (builtin.os.tag != .wasi) {208 if (builtin.os.tag != .wasi) {
212 _ = @import("behavior/asm.zig");209 _ = @import("behavior/asm.zig");
213 }210 }
test/behavior/align.zig+1-15
...@@ -16,7 +16,6 @@ test "global variable alignment" {...@@ -16,7 +16,6 @@ test "global variable alignment" {
16}16}
1717
18test "slicing array of length 1 can not assume runtime index is always zero" {18test "slicing array of length 1 can not assume runtime index is always zero" {
19 if (builtin.zig_backend == .stage1) return error.SkipZigTest;
20 if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest; // TODO19 if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest; // TODO
21 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO20 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
2221
...@@ -61,10 +60,6 @@ test "alignment of struct with pointer has same alignment as usize" {...@@ -61,10 +60,6 @@ test "alignment of struct with pointer has same alignment as usize" {
61}60}
6261
63test "alignment and size of structs with 128-bit fields" {62test "alignment and size of structs with 128-bit fields" {
64 if (builtin.zig_backend == .stage1) {
65 // stage1 gets the wrong answer for a lot of targets
66 return error.SkipZigTest;
67 }
68 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO63 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
69 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO64 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
7065
...@@ -313,7 +308,6 @@ test "function alignment" {...@@ -313,7 +308,6 @@ test "function alignment" {
313}308}
314309
315test "implicitly decreasing fn alignment" {310test "implicitly decreasing fn alignment" {
316 if (builtin.zig_backend == .stage1) return error.SkipZigTest;
317 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;311 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;
318 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest;312 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest;
319313
...@@ -337,7 +331,6 @@ fn alignedBig() align(16) i32 {...@@ -337,7 +331,6 @@ fn alignedBig() align(16) i32 {
337331
338test "@alignCast functions" {332test "@alignCast functions" {
339 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;333 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;
340 if (builtin.zig_backend == .stage1) return error.SkipZigTest;
341 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest;334 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest;
342335
343 // function alignment is a compile error on wasm32/wasm64336 // function alignment is a compile error on wasm32/wasm64
...@@ -380,8 +373,6 @@ test "function align expression depends on generic parameter" {...@@ -380,8 +373,6 @@ test "function align expression depends on generic parameter" {
380}373}
381374
382test "function callconv expression depends on generic parameter" {375test "function callconv expression depends on generic parameter" {
383 if (builtin.zig_backend == .stage1) return error.SkipZigTest;
384
385 const S = struct {376 const S = struct {
386 fn doTheTest() !void {377 fn doTheTest() !void {
387 try expect(foobar(.C, 1) == 2);378 try expect(foobar(.C, 1) == 2);
...@@ -435,8 +426,6 @@ fn testIndex2(ptr: [*]align(4) u8, index: usize, comptime T: type) !void {...@@ -435,8 +426,6 @@ fn testIndex2(ptr: [*]align(4) u8, index: usize, comptime T: type) !void {
435}426}
436427
437test "alignment of function with c calling convention" {428test "alignment of function with c calling convention" {
438 if (builtin.zig_backend == .stage1) return error.SkipZigTest;
439
440 var runtime_nothing = &nothing;429 var runtime_nothing = &nothing;
441 const casted1 = @ptrCast(*const u8, runtime_nothing);430 const casted1 = @ptrCast(*const u8, runtime_nothing);
442 const casted2 = @ptrCast(*const fn () callconv(.C) void, casted1);431 const casted2 = @ptrCast(*const fn () callconv(.C) void, casted1);
...@@ -495,7 +484,7 @@ test "struct field explicit alignment" {...@@ -495,7 +484,7 @@ test "struct field explicit alignment" {
495}484}
496485
497test "align(@alignOf(T)) T does not force resolution of T" {486test "align(@alignOf(T)) T does not force resolution of T" {
498 if (builtin.zig_backend != .stage1) return error.SkipZigTest;487 if (true) return error.SkipZigTest; // TODO
499488
500 const S = struct {489 const S = struct {
501 const A = struct {490 const A = struct {
...@@ -519,7 +508,6 @@ test "align(@alignOf(T)) T does not force resolution of T" {...@@ -519,7 +508,6 @@ test "align(@alignOf(T)) T does not force resolution of T" {
519}508}
520509
521test "align(N) on functions" {510test "align(N) on functions" {
522 if (builtin.zig_backend == .stage1) return error.SkipZigTest;
523 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO511 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
524 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO512 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
525 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO513 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
...@@ -557,8 +545,6 @@ test "@alignCast null" {...@@ -557,8 +545,6 @@ test "@alignCast null" {
557}545}
558546
559test "alignment of slice element" {547test "alignment of slice element" {
560 if (builtin.zig_backend == .stage1) return error.SkipZigTest;
561
562 const a: []align(1024) const u8 = undefined;548 const a: []align(1024) const u8 = undefined;
563 try expect(@TypeOf(&a[0]) == *align(1024) const u8);549 try expect(@TypeOf(&a[0]) == *align(1024) const u8);
564}550}
test/behavior/array.zig-6
...@@ -102,12 +102,6 @@ test "array len field" {...@@ -102,12 +102,6 @@ test "array len field" {
102}102}
103103
104test "array with sentinels" {104test "array with sentinels" {
105 if (builtin.zig_backend == .stage1) {
106 // Stage1 test coverage disabled at runtime because of
107 // https://github.com/ziglang/zig/issues/4372
108 return error.SkipZigTest;
109 }
110
111 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;105 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;
112106
113 const S = struct {107 const S = struct {
test/behavior/async_fn.zig+66-66
...@@ -8,7 +8,7 @@ const expectError = std.testing.expectError;...@@ -8,7 +8,7 @@ const expectError = std.testing.expectError;
8var global_x: i32 = 1;8var global_x: i32 = 1;
99
10test "simple coroutine suspend and resume" {10test "simple coroutine suspend and resume" {
11 if (builtin.zig_backend != .stage1) return error.SkipZigTest; // TODO11 if (true) return error.SkipZigTest; // TODO
12 if (builtin.os.tag == .wasi) return error.SkipZigTest; // TODO12 if (builtin.os.tag == .wasi) return error.SkipZigTest; // TODO
1313
14 var frame = async simpleAsyncFn();14 var frame = async simpleAsyncFn();
...@@ -31,7 +31,7 @@ fn simpleAsyncFn() void {...@@ -31,7 +31,7 @@ fn simpleAsyncFn() void {
31var global_y: i32 = 1;31var global_y: i32 = 1;
3232
33test "pass parameter to coroutine" {33test "pass parameter to coroutine" {
34 if (builtin.zig_backend != .stage1) return error.SkipZigTest; // TODO34 if (true) return error.SkipZigTest; // TODO
35 if (builtin.os.tag == .wasi) return error.SkipZigTest; // TODO35 if (builtin.os.tag == .wasi) return error.SkipZigTest; // TODO
3636
37 var p = async simpleAsyncFnWithArg(2);37 var p = async simpleAsyncFnWithArg(2);
...@@ -46,7 +46,7 @@ fn simpleAsyncFnWithArg(delta: i32) void {...@@ -46,7 +46,7 @@ fn simpleAsyncFnWithArg(delta: i32) void {
46}46}
4747
48test "suspend at end of function" {48test "suspend at end of function" {
49 if (builtin.zig_backend != .stage1) return error.SkipZigTest; // TODO49 if (true) return error.SkipZigTest; // TODO
50 if (builtin.os.tag == .wasi) return error.SkipZigTest; // TODO50 if (builtin.os.tag == .wasi) return error.SkipZigTest; // TODO
5151
52 const S = struct {52 const S = struct {
...@@ -68,7 +68,7 @@ test "suspend at end of function" {...@@ -68,7 +68,7 @@ test "suspend at end of function" {
68}68}
6969
70test "local variable in async function" {70test "local variable in async function" {
71 if (builtin.zig_backend != .stage1) return error.SkipZigTest; // TODO71 if (true) return error.SkipZigTest; // TODO
72 if (builtin.os.tag == .wasi) return error.SkipZigTest; // TODO72 if (builtin.os.tag == .wasi) return error.SkipZigTest; // TODO
7373
74 const S = struct {74 const S = struct {
...@@ -100,7 +100,7 @@ test "local variable in async function" {...@@ -100,7 +100,7 @@ test "local variable in async function" {
100}100}
101101
102test "calling an inferred async function" {102test "calling an inferred async function" {
103 if (builtin.zig_backend != .stage1) return error.SkipZigTest; // TODO103 if (true) return error.SkipZigTest; // TODO
104 if (builtin.os.tag == .wasi) return error.SkipZigTest; // TODO104 if (builtin.os.tag == .wasi) return error.SkipZigTest; // TODO
105105
106 const S = struct {106 const S = struct {
...@@ -127,7 +127,7 @@ test "calling an inferred async function" {...@@ -127,7 +127,7 @@ test "calling an inferred async function" {
127}127}
128128
129test "@frameSize" {129test "@frameSize" {
130 if (builtin.zig_backend != .stage1) return error.SkipZigTest; // TODO130 if (true) return error.SkipZigTest; // TODO
131 if (builtin.os.tag == .wasi) return error.SkipZigTest; // TODO131 if (builtin.os.tag == .wasi) return error.SkipZigTest; // TODO
132132
133 if (builtin.target.cpu.arch == .thumb or builtin.target.cpu.arch == .thumbeb)133 if (builtin.target.cpu.arch == .thumb or builtin.target.cpu.arch == .thumbeb)
...@@ -161,7 +161,7 @@ test "@frameSize" {...@@ -161,7 +161,7 @@ test "@frameSize" {
161}161}
162162
163test "coroutine suspend, resume" {163test "coroutine suspend, resume" {
164 if (builtin.zig_backend != .stage1) return error.SkipZigTest; // TODO164 if (true) return error.SkipZigTest; // TODO
165 if (builtin.os.tag == .wasi) return error.SkipZigTest; // TODO165 if (builtin.os.tag == .wasi) return error.SkipZigTest; // TODO
166166
167 const S = struct {167 const S = struct {
...@@ -205,7 +205,7 @@ test "coroutine suspend, resume" {...@@ -205,7 +205,7 @@ test "coroutine suspend, resume" {
205}205}
206206
207test "coroutine suspend with block" {207test "coroutine suspend with block" {
208 if (builtin.zig_backend != .stage1) return error.SkipZigTest; // TODO208 if (true) return error.SkipZigTest; // TODO
209 if (builtin.os.tag == .wasi) return error.SkipZigTest; // TODO209 if (builtin.os.tag == .wasi) return error.SkipZigTest; // TODO
210210
211 const p = async testSuspendBlock();211 const p = async testSuspendBlock();
...@@ -234,7 +234,7 @@ var await_a_promise: anyframe = undefined;...@@ -234,7 +234,7 @@ var await_a_promise: anyframe = undefined;
234var await_final_result: i32 = 0;234var await_final_result: i32 = 0;
235235
236test "coroutine await" {236test "coroutine await" {
237 if (builtin.zig_backend != .stage1) return error.SkipZigTest; // TODO237 if (true) return error.SkipZigTest; // TODO
238 if (builtin.os.tag == .wasi) return error.SkipZigTest; // TODO238 if (builtin.os.tag == .wasi) return error.SkipZigTest; // TODO
239239
240 await_seq('a');240 await_seq('a');
...@@ -274,7 +274,7 @@ fn await_seq(c: u8) void {...@@ -274,7 +274,7 @@ fn await_seq(c: u8) void {
274var early_final_result: i32 = 0;274var early_final_result: i32 = 0;
275275
276test "coroutine await early return" {276test "coroutine await early return" {
277 if (builtin.zig_backend != .stage1) return error.SkipZigTest; // TODO277 if (true) return error.SkipZigTest; // TODO
278 if (builtin.os.tag == .wasi) return error.SkipZigTest; // TODO278 if (builtin.os.tag == .wasi) return error.SkipZigTest; // TODO
279279
280 early_seq('a');280 early_seq('a');
...@@ -305,7 +305,7 @@ fn early_seq(c: u8) void {...@@ -305,7 +305,7 @@ fn early_seq(c: u8) void {
305}305}
306306
307test "async function with dot syntax" {307test "async function with dot syntax" {
308 if (builtin.zig_backend != .stage1) return error.SkipZigTest; // TODO308 if (true) return error.SkipZigTest; // TODO
309 if (builtin.os.tag == .wasi) return error.SkipZigTest; // TODO309 if (builtin.os.tag == .wasi) return error.SkipZigTest; // TODO
310310
311 const S = struct {311 const S = struct {
...@@ -321,7 +321,7 @@ test "async function with dot syntax" {...@@ -321,7 +321,7 @@ test "async function with dot syntax" {
321}321}
322322
323test "async fn pointer in a struct field" {323test "async fn pointer in a struct field" {
324 if (builtin.zig_backend != .stage1) return error.SkipZigTest; // TODO324 if (true) return error.SkipZigTest; // TODO
325 if (builtin.os.tag == .wasi) return error.SkipZigTest; // TODO325 if (builtin.os.tag == .wasi) return error.SkipZigTest; // TODO
326326
327 var data: i32 = 1;327 var data: i32 = 1;
...@@ -349,7 +349,7 @@ fn simpleAsyncFn2(y: *i32) callconv(.Async) void {...@@ -349,7 +349,7 @@ fn simpleAsyncFn2(y: *i32) callconv(.Async) void {
349}349}
350350
351test "@asyncCall with return type" {351test "@asyncCall with return type" {
352 if (builtin.zig_backend != .stage1) return error.SkipZigTest; // TODO352 if (true) return error.SkipZigTest; // TODO
353 if (builtin.os.tag == .wasi) return error.SkipZigTest; // TODO353 if (builtin.os.tag == .wasi) return error.SkipZigTest; // TODO
354354
355 const Foo = struct {355 const Foo = struct {
...@@ -376,7 +376,7 @@ test "@asyncCall with return type" {...@@ -376,7 +376,7 @@ test "@asyncCall with return type" {
376}376}
377377
378test "async fn with inferred error set" {378test "async fn with inferred error set" {
379 if (builtin.zig_backend != .stage1) return error.SkipZigTest; // TODO379 if (true) return error.SkipZigTest; // TODO
380 if (builtin.os.tag == .wasi) return error.SkipZigTest; // TODO380 if (builtin.os.tag == .wasi) return error.SkipZigTest; // TODO
381381
382 const S = struct {382 const S = struct {
...@@ -409,7 +409,7 @@ test "async fn with inferred error set" {...@@ -409,7 +409,7 @@ test "async fn with inferred error set" {
409}409}
410410
411test "error return trace across suspend points - early return" {411test "error return trace across suspend points - early return" {
412 if (builtin.zig_backend != .stage1) return error.SkipZigTest; // TODO412 if (true) return error.SkipZigTest; // TODO
413 if (builtin.os.tag == .wasi) return error.SkipZigTest; // TODO413 if (builtin.os.tag == .wasi) return error.SkipZigTest; // TODO
414414
415 const p = nonFailing();415 const p = nonFailing();
...@@ -419,7 +419,7 @@ test "error return trace across suspend points - early return" {...@@ -419,7 +419,7 @@ test "error return trace across suspend points - early return" {
419}419}
420420
421test "error return trace across suspend points - async return" {421test "error return trace across suspend points - async return" {
422 if (builtin.zig_backend != .stage1) return error.SkipZigTest; // TODO422 if (true) return error.SkipZigTest; // TODO
423 if (builtin.os.tag == .wasi) return error.SkipZigTest; // TODO423 if (builtin.os.tag == .wasi) return error.SkipZigTest; // TODO
424424
425 const p = nonFailing();425 const p = nonFailing();
...@@ -452,7 +452,7 @@ fn printTrace(p: anyframe->(anyerror!void)) callconv(.Async) void {...@@ -452,7 +452,7 @@ fn printTrace(p: anyframe->(anyerror!void)) callconv(.Async) void {
452}452}
453453
454test "break from suspend" {454test "break from suspend" {
455 if (builtin.zig_backend != .stage1) return error.SkipZigTest; // TODO455 if (true) return error.SkipZigTest; // TODO
456 if (builtin.os.tag == .wasi) return error.SkipZigTest; // TODO456 if (builtin.os.tag == .wasi) return error.SkipZigTest; // TODO
457457
458 var my_result: i32 = 1;458 var my_result: i32 = 1;
...@@ -470,7 +470,7 @@ fn testBreakFromSuspend(my_result: *i32) callconv(.Async) void {...@@ -470,7 +470,7 @@ fn testBreakFromSuspend(my_result: *i32) callconv(.Async) void {
470}470}
471471
472test "heap allocated async function frame" {472test "heap allocated async function frame" {
473 if (builtin.zig_backend != .stage1) return error.SkipZigTest; // TODO473 if (true) return error.SkipZigTest; // TODO
474 if (builtin.os.tag == .wasi) return error.SkipZigTest; // TODO474 if (builtin.os.tag == .wasi) return error.SkipZigTest; // TODO
475475
476 const S = struct {476 const S = struct {
...@@ -497,7 +497,7 @@ test "heap allocated async function frame" {...@@ -497,7 +497,7 @@ test "heap allocated async function frame" {
497}497}
498498
499test "async function call return value" {499test "async function call return value" {
500 if (builtin.zig_backend != .stage1) return error.SkipZigTest; // TODO500 if (true) return error.SkipZigTest; // TODO
501 if (builtin.os.tag == .wasi) return error.SkipZigTest; // TODO501 if (builtin.os.tag == .wasi) return error.SkipZigTest; // TODO
502502
503 const S = struct {503 const S = struct {
...@@ -541,7 +541,7 @@ test "async function call return value" {...@@ -541,7 +541,7 @@ test "async function call return value" {
541}541}
542542
543test "suspension points inside branching control flow" {543test "suspension points inside branching control flow" {
544 if (builtin.zig_backend != .stage1) return error.SkipZigTest; // TODO544 if (true) return error.SkipZigTest; // TODO
545 if (builtin.os.tag == .wasi) return error.SkipZigTest; // TODO545 if (builtin.os.tag == .wasi) return error.SkipZigTest; // TODO
546546
547 const S = struct {547 const S = struct {
...@@ -570,7 +570,7 @@ test "suspension points inside branching control flow" {...@@ -570,7 +570,7 @@ test "suspension points inside branching control flow" {
570}570}
571571
572test "call async function which has struct return type" {572test "call async function which has struct return type" {
573 if (builtin.zig_backend != .stage1) return error.SkipZigTest; // TODO573 if (true) return error.SkipZigTest; // TODO
574 if (builtin.os.tag == .wasi) return error.SkipZigTest; // TODO574 if (builtin.os.tag == .wasi) return error.SkipZigTest; // TODO
575575
576 const S = struct {576 const S = struct {
...@@ -606,7 +606,7 @@ test "call async function which has struct return type" {...@@ -606,7 +606,7 @@ test "call async function which has struct return type" {
606}606}
607607
608test "pass string literal to async function" {608test "pass string literal to async function" {
609 if (builtin.zig_backend != .stage1) return error.SkipZigTest; // TODO609 if (true) return error.SkipZigTest; // TODO
610 if (builtin.os.tag == .wasi) return error.SkipZigTest; // TODO610 if (builtin.os.tag == .wasi) return error.SkipZigTest; // TODO
611611
612 const S = struct {612 const S = struct {
...@@ -630,7 +630,7 @@ test "pass string literal to async function" {...@@ -630,7 +630,7 @@ test "pass string literal to async function" {
630}630}
631631
632test "await inside an errdefer" {632test "await inside an errdefer" {
633 if (builtin.zig_backend != .stage1) return error.SkipZigTest; // TODO633 if (true) return error.SkipZigTest; // TODO
634 if (builtin.os.tag == .wasi) return error.SkipZigTest; // TODO634 if (builtin.os.tag == .wasi) return error.SkipZigTest; // TODO
635635
636 const S = struct {636 const S = struct {
...@@ -656,7 +656,7 @@ test "await inside an errdefer" {...@@ -656,7 +656,7 @@ test "await inside an errdefer" {
656}656}
657657
658test "try in an async function with error union and non-zero-bit payload" {658test "try in an async function with error union and non-zero-bit payload" {
659 if (builtin.zig_backend != .stage1) return error.SkipZigTest; // TODO659 if (true) return error.SkipZigTest; // TODO
660 if (builtin.os.tag == .wasi) return error.SkipZigTest; // TODO660 if (builtin.os.tag == .wasi) return error.SkipZigTest; // TODO
661661
662 const S = struct {662 const S = struct {
...@@ -689,7 +689,7 @@ test "try in an async function with error union and non-zero-bit payload" {...@@ -689,7 +689,7 @@ test "try in an async function with error union and non-zero-bit payload" {
689}689}
690690
691test "returning a const error from async function" {691test "returning a const error from async function" {
692 if (builtin.zig_backend != .stage1) return error.SkipZigTest; // TODO692 if (true) return error.SkipZigTest; // TODO
693 if (builtin.os.tag == .wasi) return error.SkipZigTest; // TODO693 if (builtin.os.tag == .wasi) return error.SkipZigTest; // TODO
694694
695 const S = struct {695 const S = struct {
...@@ -723,7 +723,7 @@ test "returning a const error from async function" {...@@ -723,7 +723,7 @@ test "returning a const error from async function" {
723}723}
724724
725test "async/await typical usage" {725test "async/await typical usage" {
726 if (builtin.zig_backend != .stage1) return error.SkipZigTest; // TODO726 if (true) return error.SkipZigTest; // TODO
727 if (builtin.os.tag == .wasi) return error.SkipZigTest; // TODO727 if (builtin.os.tag == .wasi) return error.SkipZigTest; // TODO
728728
729 inline for ([_]bool{ false, true }) |b1| {729 inline for ([_]bool{ false, true }) |b1| {
...@@ -821,7 +821,7 @@ fn testAsyncAwaitTypicalUsage(...@@ -821,7 +821,7 @@ fn testAsyncAwaitTypicalUsage(
821}821}
822822
823test "alignment of local variables in async functions" {823test "alignment of local variables in async functions" {
824 if (builtin.zig_backend != .stage1) return error.SkipZigTest; // TODO824 if (true) return error.SkipZigTest; // TODO
825 if (builtin.os.tag == .wasi) return error.SkipZigTest; // TODO825 if (builtin.os.tag == .wasi) return error.SkipZigTest; // TODO
826826
827 const S = struct {827 const S = struct {
...@@ -836,7 +836,7 @@ test "alignment of local variables in async functions" {...@@ -836,7 +836,7 @@ test "alignment of local variables in async functions" {
836}836}
837837
838test "no reason to resolve frame still works" {838test "no reason to resolve frame still works" {
839 if (builtin.zig_backend != .stage1) return error.SkipZigTest; // TODO839 if (true) return error.SkipZigTest; // TODO
840 if (builtin.os.tag == .wasi) return error.SkipZigTest; // TODO840 if (builtin.os.tag == .wasi) return error.SkipZigTest; // TODO
841841
842 _ = async simpleNothing();842 _ = async simpleNothing();
...@@ -847,7 +847,7 @@ fn simpleNothing() void {...@@ -847,7 +847,7 @@ fn simpleNothing() void {
847}847}
848848
849test "async call a generic function" {849test "async call a generic function" {
850 if (builtin.zig_backend != .stage1) return error.SkipZigTest; // TODO850 if (true) return error.SkipZigTest; // TODO
851 if (builtin.os.tag == .wasi) return error.SkipZigTest; // TODO851 if (builtin.os.tag == .wasi) return error.SkipZigTest; // TODO
852852
853 const S = struct {853 const S = struct {
...@@ -870,7 +870,7 @@ test "async call a generic function" {...@@ -870,7 +870,7 @@ test "async call a generic function" {
870}870}
871871
872test "return from suspend block" {872test "return from suspend block" {
873 if (builtin.zig_backend != .stage1) return error.SkipZigTest; // TODO873 if (true) return error.SkipZigTest; // TODO
874 if (builtin.os.tag == .wasi) return error.SkipZigTest; // TODO874 if (builtin.os.tag == .wasi) return error.SkipZigTest; // TODO
875875
876 const S = struct {876 const S = struct {
...@@ -887,7 +887,7 @@ test "return from suspend block" {...@@ -887,7 +887,7 @@ test "return from suspend block" {
887}887}
888888
889test "struct parameter to async function is copied to the frame" {889test "struct parameter to async function is copied to the frame" {
890 if (builtin.zig_backend != .stage1) return error.SkipZigTest; // TODO890 if (true) return error.SkipZigTest; // TODO
891 if (builtin.os.tag == .wasi) return error.SkipZigTest; // TODO891 if (builtin.os.tag == .wasi) return error.SkipZigTest; // TODO
892892
893 const S = struct {893 const S = struct {
...@@ -934,7 +934,7 @@ test "struct parameter to async function is copied to the frame" {...@@ -934,7 +934,7 @@ test "struct parameter to async function is copied to the frame" {
934}934}
935935
936test "cast fn to async fn when it is inferred to be async" {936test "cast fn to async fn when it is inferred to be async" {
937 if (builtin.zig_backend != .stage1) return error.SkipZigTest; // TODO937 if (true) return error.SkipZigTest; // TODO
938 if (builtin.os.tag == .wasi) return error.SkipZigTest; // TODO938 if (builtin.os.tag == .wasi) return error.SkipZigTest; // TODO
939939
940 const S = struct {940 const S = struct {
...@@ -965,7 +965,7 @@ test "cast fn to async fn when it is inferred to be async" {...@@ -965,7 +965,7 @@ test "cast fn to async fn when it is inferred to be async" {
965}965}
966966
967test "cast fn to async fn when it is inferred to be async, awaited directly" {967test "cast fn to async fn when it is inferred to be async, awaited directly" {
968 if (builtin.zig_backend != .stage1) return error.SkipZigTest; // TODO968 if (true) return error.SkipZigTest; // TODO
969 if (builtin.os.tag == .wasi) return error.SkipZigTest; // TODO969 if (builtin.os.tag == .wasi) return error.SkipZigTest; // TODO
970970
971 const S = struct {971 const S = struct {
...@@ -995,7 +995,7 @@ test "cast fn to async fn when it is inferred to be async, awaited directly" {...@@ -995,7 +995,7 @@ test "cast fn to async fn when it is inferred to be async, awaited directly" {
995}995}
996996
997test "await does not force async if callee is blocking" {997test "await does not force async if callee is blocking" {
998 if (builtin.zig_backend != .stage1) return error.SkipZigTest; // TODO998 if (true) return error.SkipZigTest; // TODO
999 if (builtin.os.tag == .wasi) return error.SkipZigTest; // TODO999 if (builtin.os.tag == .wasi) return error.SkipZigTest; // TODO
10001000
1001 const S = struct {1001 const S = struct {
...@@ -1008,7 +1008,7 @@ test "await does not force async if callee is blocking" {...@@ -1008,7 +1008,7 @@ test "await does not force async if callee is blocking" {
1008}1008}
10091009
1010test "recursive async function" {1010test "recursive async function" {
1011 if (builtin.zig_backend != .stage1) return error.SkipZigTest; // TODO1011 if (true) return error.SkipZigTest; // TODO
1012 if (builtin.os.tag == .wasi) return error.SkipZigTest; // TODO1012 if (builtin.os.tag == .wasi) return error.SkipZigTest; // TODO
10131013
1014 try expect(recursiveAsyncFunctionTest(false).doTheTest() == 55);1014 try expect(recursiveAsyncFunctionTest(false).doTheTest() == 55);
...@@ -1073,7 +1073,7 @@ fn recursiveAsyncFunctionTest(comptime suspending_implementation: bool) type {...@@ -1073,7 +1073,7 @@ fn recursiveAsyncFunctionTest(comptime suspending_implementation: bool) type {
1073}1073}
10741074
1075test "@asyncCall with comptime-known function, but not awaited directly" {1075test "@asyncCall with comptime-known function, but not awaited directly" {
1076 if (builtin.zig_backend != .stage1) return error.SkipZigTest; // TODO1076 if (true) return error.SkipZigTest; // TODO
1077 if (builtin.os.tag == .wasi) return error.SkipZigTest; // TODO1077 if (builtin.os.tag == .wasi) return error.SkipZigTest; // TODO
10781078
1079 const S = struct {1079 const S = struct {
...@@ -1105,7 +1105,7 @@ test "@asyncCall with comptime-known function, but not awaited directly" {...@@ -1105,7 +1105,7 @@ test "@asyncCall with comptime-known function, but not awaited directly" {
1105}1105}
11061106
1107test "@asyncCall with actual frame instead of byte buffer" {1107test "@asyncCall with actual frame instead of byte buffer" {
1108 if (builtin.zig_backend != .stage1) return error.SkipZigTest; // TODO1108 if (true) return error.SkipZigTest; // TODO
1109 if (builtin.os.tag == .wasi) return error.SkipZigTest; // TODO1109 if (builtin.os.tag == .wasi) return error.SkipZigTest; // TODO
11101110
1111 const S = struct {1111 const S = struct {
...@@ -1122,7 +1122,7 @@ test "@asyncCall with actual frame instead of byte buffer" {...@@ -1122,7 +1122,7 @@ test "@asyncCall with actual frame instead of byte buffer" {
1122}1122}
11231123
1124test "@asyncCall using the result location inside the frame" {1124test "@asyncCall using the result location inside the frame" {
1125 if (builtin.zig_backend != .stage1) return error.SkipZigTest; // TODO1125 if (true) return error.SkipZigTest; // TODO
1126 if (builtin.os.tag == .wasi) return error.SkipZigTest; // TODO1126 if (builtin.os.tag == .wasi) return error.SkipZigTest; // TODO
11271127
1128 const S = struct {1128 const S = struct {
...@@ -1152,7 +1152,7 @@ test "@asyncCall using the result location inside the frame" {...@@ -1152,7 +1152,7 @@ test "@asyncCall using the result location inside the frame" {
1152}1152}
11531153
1154test "@TypeOf an async function call of generic fn with error union type" {1154test "@TypeOf an async function call of generic fn with error union type" {
1155 if (builtin.zig_backend != .stage1) return error.SkipZigTest; // TODO1155 if (true) return error.SkipZigTest; // TODO
1156 if (builtin.os.tag == .wasi) return error.SkipZigTest; // TODO1156 if (builtin.os.tag == .wasi) return error.SkipZigTest; // TODO
11571157
1158 const S = struct {1158 const S = struct {
...@@ -1166,7 +1166,7 @@ test "@TypeOf an async function call of generic fn with error union type" {...@@ -1166,7 +1166,7 @@ test "@TypeOf an async function call of generic fn with error union type" {
1166}1166}
11671167
1168test "using @TypeOf on a generic function call" {1168test "using @TypeOf on a generic function call" {
1169 if (builtin.zig_backend != .stage1) return error.SkipZigTest; // TODO1169 if (true) return error.SkipZigTest; // TODO
1170 if (builtin.os.tag == .wasi) return error.SkipZigTest; // TODO1170 if (builtin.os.tag == .wasi) return error.SkipZigTest; // TODO
11711171
1172 const S = struct {1172 const S = struct {
...@@ -1194,7 +1194,7 @@ test "using @TypeOf on a generic function call" {...@@ -1194,7 +1194,7 @@ test "using @TypeOf on a generic function call" {
1194}1194}
11951195
1196test "recursive call of await @asyncCall with struct return type" {1196test "recursive call of await @asyncCall with struct return type" {
1197 if (builtin.zig_backend != .stage1) return error.SkipZigTest; // TODO1197 if (true) return error.SkipZigTest; // TODO
1198 if (builtin.os.tag == .wasi) return error.SkipZigTest; // TODO1198 if (builtin.os.tag == .wasi) return error.SkipZigTest; // TODO
11991199
1200 const S = struct {1200 const S = struct {
...@@ -1233,7 +1233,7 @@ test "recursive call of await @asyncCall with struct return type" {...@@ -1233,7 +1233,7 @@ test "recursive call of await @asyncCall with struct return type" {
1233}1233}
12341234
1235test "nosuspend function call" {1235test "nosuspend function call" {
1236 if (builtin.zig_backend != .stage1) return error.SkipZigTest; // TODO1236 if (true) return error.SkipZigTest; // TODO
1237 if (builtin.os.tag == .wasi) return error.SkipZigTest; // TODO1237 if (builtin.os.tag == .wasi) return error.SkipZigTest; // TODO
12381238
1239 const S = struct {1239 const S = struct {
...@@ -1252,7 +1252,7 @@ test "nosuspend function call" {...@@ -1252,7 +1252,7 @@ test "nosuspend function call" {
1252}1252}
12531253
1254test "await used in expression and awaiting fn with no suspend but async calling convention" {1254test "await used in expression and awaiting fn with no suspend but async calling convention" {
1255 if (builtin.zig_backend != .stage1) return error.SkipZigTest; // TODO1255 if (true) return error.SkipZigTest; // TODO
1256 if (builtin.os.tag == .wasi) return error.SkipZigTest; // TODO1256 if (builtin.os.tag == .wasi) return error.SkipZigTest; // TODO
12571257
1258 const S = struct {1258 const S = struct {
...@@ -1271,7 +1271,7 @@ test "await used in expression and awaiting fn with no suspend but async calling...@@ -1271,7 +1271,7 @@ test "await used in expression and awaiting fn with no suspend but async calling
1271}1271}
12721272
1273test "await used in expression after a fn call" {1273test "await used in expression after a fn call" {
1274 if (builtin.zig_backend != .stage1) return error.SkipZigTest; // TODO1274 if (true) return error.SkipZigTest; // TODO
1275 if (builtin.os.tag == .wasi) return error.SkipZigTest; // TODO1275 if (builtin.os.tag == .wasi) return error.SkipZigTest; // TODO
12761276
1277 const S = struct {1277 const S = struct {
...@@ -1292,7 +1292,7 @@ test "await used in expression after a fn call" {...@@ -1292,7 +1292,7 @@ test "await used in expression after a fn call" {
1292}1292}
12931293
1294test "async fn call used in expression after a fn call" {1294test "async fn call used in expression after a fn call" {
1295 if (builtin.zig_backend != .stage1) return error.SkipZigTest; // TODO1295 if (true) return error.SkipZigTest; // TODO
1296 if (builtin.os.tag == .wasi) return error.SkipZigTest; // TODO1296 if (builtin.os.tag == .wasi) return error.SkipZigTest; // TODO
12971297
1298 const S = struct {1298 const S = struct {
...@@ -1312,7 +1312,7 @@ test "async fn call used in expression after a fn call" {...@@ -1312,7 +1312,7 @@ test "async fn call used in expression after a fn call" {
1312}1312}
13131313
1314test "suspend in for loop" {1314test "suspend in for loop" {
1315 if (builtin.zig_backend != .stage1) return error.SkipZigTest; // TODO1315 if (true) return error.SkipZigTest; // TODO
1316 if (builtin.os.tag == .wasi) return error.SkipZigTest; // TODO1316 if (builtin.os.tag == .wasi) return error.SkipZigTest; // TODO
13171317
1318 const S = struct {1318 const S = struct {
...@@ -1341,7 +1341,7 @@ test "suspend in for loop" {...@@ -1341,7 +1341,7 @@ test "suspend in for loop" {
1341}1341}
13421342
1343test "suspend in while loop" {1343test "suspend in while loop" {
1344 if (builtin.zig_backend != .stage1) return error.SkipZigTest; // TODO1344 if (true) return error.SkipZigTest; // TODO
1345 if (builtin.os.tag == .wasi) return error.SkipZigTest; // TODO1345 if (builtin.os.tag == .wasi) return error.SkipZigTest; // TODO
13461346
1347 const S = struct {1347 const S = struct {
...@@ -1381,7 +1381,7 @@ test "suspend in while loop" {...@@ -1381,7 +1381,7 @@ test "suspend in while loop" {
1381}1381}
13821382
1383test "correctly spill when returning the error union result of another async fn" {1383test "correctly spill when returning the error union result of another async fn" {
1384 if (builtin.zig_backend != .stage1) return error.SkipZigTest; // TODO1384 if (true) return error.SkipZigTest; // TODO
1385 if (builtin.os.tag == .wasi) return error.SkipZigTest; // TODO1385 if (builtin.os.tag == .wasi) return error.SkipZigTest; // TODO
13861386
1387 const S = struct {1387 const S = struct {
...@@ -1407,7 +1407,7 @@ test "correctly spill when returning the error union result of another async fn"...@@ -1407,7 +1407,7 @@ test "correctly spill when returning the error union result of another async fn"
1407}1407}
14081408
1409test "spill target expr in a for loop" {1409test "spill target expr in a for loop" {
1410 if (builtin.zig_backend != .stage1) return error.SkipZigTest; // TODO1410 if (true) return error.SkipZigTest; // TODO
1411 if (builtin.os.tag == .wasi) return error.SkipZigTest; // TODO1411 if (builtin.os.tag == .wasi) return error.SkipZigTest; // TODO
14121412
1413 const S = struct {1413 const S = struct {
...@@ -1441,7 +1441,7 @@ test "spill target expr in a for loop" {...@@ -1441,7 +1441,7 @@ test "spill target expr in a for loop" {
1441}1441}
14421442
1443test "spill target expr in a for loop, with a var decl in the loop body" {1443test "spill target expr in a for loop, with a var decl in the loop body" {
1444 if (builtin.zig_backend != .stage1) return error.SkipZigTest; // TODO1444 if (true) return error.SkipZigTest; // TODO
1445 if (builtin.os.tag == .wasi) return error.SkipZigTest; // TODO1445 if (builtin.os.tag == .wasi) return error.SkipZigTest; // TODO
14461446
1447 const S = struct {1447 const S = struct {
...@@ -1480,7 +1480,7 @@ test "spill target expr in a for loop, with a var decl in the loop body" {...@@ -1480,7 +1480,7 @@ test "spill target expr in a for loop, with a var decl in the loop body" {
1480}1480}
14811481
1482test "async call with @call" {1482test "async call with @call" {
1483 if (builtin.zig_backend != .stage1) return error.SkipZigTest; // TODO1483 if (true) return error.SkipZigTest; // TODO
1484 if (builtin.os.tag == .wasi) return error.SkipZigTest; // TODO1484 if (builtin.os.tag == .wasi) return error.SkipZigTest; // TODO
14851485
1486 const S = struct {1486 const S = struct {
...@@ -1505,7 +1505,7 @@ test "async call with @call" {...@@ -1505,7 +1505,7 @@ test "async call with @call" {
1505}1505}
15061506
1507test "async function passed 0-bit arg after non-0-bit arg" {1507test "async function passed 0-bit arg after non-0-bit arg" {
1508 if (builtin.zig_backend != .stage1) return error.SkipZigTest; // TODO1508 if (true) return error.SkipZigTest; // TODO
1509 if (builtin.os.tag == .wasi) return error.SkipZigTest; // TODO1509 if (builtin.os.tag == .wasi) return error.SkipZigTest; // TODO
15101510
1511 const S = struct {1511 const S = struct {
...@@ -1529,7 +1529,7 @@ test "async function passed 0-bit arg after non-0-bit arg" {...@@ -1529,7 +1529,7 @@ test "async function passed 0-bit arg after non-0-bit arg" {
1529}1529}
15301530
1531test "async function passed align(16) arg after align(8) arg" {1531test "async function passed align(16) arg after align(8) arg" {
1532 if (builtin.zig_backend != .stage1) return error.SkipZigTest; // TODO1532 if (true) return error.SkipZigTest; // TODO
1533 if (builtin.os.tag == .wasi) return error.SkipZigTest; // TODO1533 if (builtin.os.tag == .wasi) return error.SkipZigTest; // TODO
15341534
1535 const S = struct {1535 const S = struct {
...@@ -1554,7 +1554,7 @@ test "async function passed align(16) arg after align(8) arg" {...@@ -1554,7 +1554,7 @@ test "async function passed align(16) arg after align(8) arg" {
1554}1554}
15551555
1556test "async function call resolves target fn frame, comptime func" {1556test "async function call resolves target fn frame, comptime func" {
1557 if (builtin.zig_backend != .stage1) return error.SkipZigTest; // TODO1557 if (true) return error.SkipZigTest; // TODO
1558 if (builtin.os.tag == .wasi) return error.SkipZigTest; // TODO1558 if (builtin.os.tag == .wasi) return error.SkipZigTest; // TODO
15591559
1560 const S = struct {1560 const S = struct {
...@@ -1579,7 +1579,7 @@ test "async function call resolves target fn frame, comptime func" {...@@ -1579,7 +1579,7 @@ test "async function call resolves target fn frame, comptime func" {
1579}1579}
15801580
1581test "async function call resolves target fn frame, runtime func" {1581test "async function call resolves target fn frame, runtime func" {
1582 if (builtin.zig_backend != .stage1) return error.SkipZigTest; // TODO1582 if (true) return error.SkipZigTest; // TODO
1583 if (builtin.os.tag == .wasi) return error.SkipZigTest; // TODO1583 if (builtin.os.tag == .wasi) return error.SkipZigTest; // TODO
15841584
1585 const S = struct {1585 const S = struct {
...@@ -1605,7 +1605,7 @@ test "async function call resolves target fn frame, runtime func" {...@@ -1605,7 +1605,7 @@ test "async function call resolves target fn frame, runtime func" {
1605}1605}
16061606
1607test "properly spill optional payload capture value" {1607test "properly spill optional payload capture value" {
1608 if (builtin.zig_backend != .stage1) return error.SkipZigTest; // TODO1608 if (true) return error.SkipZigTest; // TODO
1609 if (builtin.os.tag == .wasi) return error.SkipZigTest; // TODO1609 if (builtin.os.tag == .wasi) return error.SkipZigTest; // TODO
16101610
1611 const S = struct {1611 const S = struct {
...@@ -1632,7 +1632,7 @@ test "properly spill optional payload capture value" {...@@ -1632,7 +1632,7 @@ test "properly spill optional payload capture value" {
1632}1632}
16331633
1634test "handle defer interfering with return value spill" {1634test "handle defer interfering with return value spill" {
1635 if (builtin.zig_backend != .stage1) return error.SkipZigTest; // TODO1635 if (true) return error.SkipZigTest; // TODO
1636 if (builtin.os.tag == .wasi) return error.SkipZigTest; // TODO1636 if (builtin.os.tag == .wasi) return error.SkipZigTest; // TODO
16371637
1638 const S = struct {1638 const S = struct {
...@@ -1675,7 +1675,7 @@ test "handle defer interfering with return value spill" {...@@ -1675,7 +1675,7 @@ test "handle defer interfering with return value spill" {
1675}1675}
16761676
1677test "take address of temporary async frame" {1677test "take address of temporary async frame" {
1678 if (builtin.zig_backend != .stage1) return error.SkipZigTest; // TODO1678 if (true) return error.SkipZigTest; // TODO
1679 if (builtin.os.tag == .wasi) return error.SkipZigTest; // TODO1679 if (builtin.os.tag == .wasi) return error.SkipZigTest; // TODO
16801680
1681 const S = struct {1681 const S = struct {
...@@ -1707,7 +1707,7 @@ test "take address of temporary async frame" {...@@ -1707,7 +1707,7 @@ test "take address of temporary async frame" {
1707}1707}
17081708
1709test "nosuspend await" {1709test "nosuspend await" {
1710 if (builtin.zig_backend != .stage1) return error.SkipZigTest; // TODO1710 if (true) return error.SkipZigTest; // TODO
1711 if (builtin.os.tag == .wasi) return error.SkipZigTest; // TODO1711 if (builtin.os.tag == .wasi) return error.SkipZigTest; // TODO
17121712
1713 const S = struct {1713 const S = struct {
...@@ -1731,7 +1731,7 @@ test "nosuspend await" {...@@ -1731,7 +1731,7 @@ test "nosuspend await" {
1731}1731}
17321732
1733test "nosuspend on function calls" {1733test "nosuspend on function calls" {
1734 if (builtin.zig_backend != .stage1) return error.SkipZigTest; // TODO1734 if (true) return error.SkipZigTest; // TODO
1735 if (builtin.os.tag == .wasi) return error.SkipZigTest; // TODO1735 if (builtin.os.tag == .wasi) return error.SkipZigTest; // TODO
17361736
1737 const S0 = struct {1737 const S0 = struct {
...@@ -1750,7 +1750,7 @@ test "nosuspend on function calls" {...@@ -1750,7 +1750,7 @@ test "nosuspend on function calls" {
1750}1750}
17511751
1752test "nosuspend on async function calls" {1752test "nosuspend on async function calls" {
1753 if (builtin.zig_backend != .stage1) return error.SkipZigTest; // TODO1753 if (true) return error.SkipZigTest; // TODO
1754 if (builtin.os.tag == .wasi) return error.SkipZigTest; // TODO1754 if (builtin.os.tag == .wasi) return error.SkipZigTest; // TODO
17551755
1756 const S0 = struct {1756 const S0 = struct {
...@@ -1771,7 +1771,7 @@ test "nosuspend on async function calls" {...@@ -1771,7 +1771,7 @@ test "nosuspend on async function calls" {
1771}1771}
17721772
1773// test "resume nosuspend async function calls" {1773// test "resume nosuspend async function calls" {
1774// if (builtin.zig_backend != .stage1) return error.SkipZigTest; // if (builtin.os.tag == .wasi) return error.SkipZigTest; // TODO1774// if (true) return error.SkipZigTest; // if (builtin.os.tag == .wasi) return error.SkipZigTest; // TODO
1775// const S0 = struct {1775// const S0 = struct {
1776// b: i32 = 42,1776// b: i32 = 42,
1777// };1777// };
...@@ -1794,7 +1794,7 @@ test "nosuspend on async function calls" {...@@ -1794,7 +1794,7 @@ test "nosuspend on async function calls" {
1794// }1794// }
17951795
1796test "nosuspend resume async function calls" {1796test "nosuspend resume async function calls" {
1797 if (builtin.zig_backend != .stage1) return error.SkipZigTest; // TODO1797 if (true) return error.SkipZigTest; // TODO
1798 if (builtin.os.tag == .wasi) return error.SkipZigTest; // TODO1798 if (builtin.os.tag == .wasi) return error.SkipZigTest; // TODO
17991799
1800 const S0 = struct {1800 const S0 = struct {
...@@ -1819,7 +1819,7 @@ test "nosuspend resume async function calls" {...@@ -1819,7 +1819,7 @@ test "nosuspend resume async function calls" {
1819}1819}
18201820
1821test "avoid forcing frame alignment resolution implicit cast to *anyopaque" {1821test "avoid forcing frame alignment resolution implicit cast to *anyopaque" {
1822 if (builtin.zig_backend != .stage1) return error.SkipZigTest; // TODO1822 if (true) return error.SkipZigTest; // TODO
1823 if (builtin.os.tag == .wasi) return error.SkipZigTest; // TODO1823 if (builtin.os.tag == .wasi) return error.SkipZigTest; // TODO
18241824
1825 const S = struct {1825 const S = struct {
...@@ -1838,7 +1838,7 @@ test "avoid forcing frame alignment resolution implicit cast to *anyopaque" {...@@ -1838,7 +1838,7 @@ test "avoid forcing frame alignment resolution implicit cast to *anyopaque" {
1838}1838}
18391839
1840test "@asyncCall with pass-by-value arguments" {1840test "@asyncCall with pass-by-value arguments" {
1841 if (builtin.zig_backend != .stage1) return error.SkipZigTest; // TODO1841 if (true) return error.SkipZigTest; // TODO
1842 if (builtin.os.tag == .wasi) return error.SkipZigTest; // TODO1842 if (builtin.os.tag == .wasi) return error.SkipZigTest; // TODO
18431843
1844 const F0: u64 = 0xbeefbeefbeefbeef;1844 const F0: u64 = 0xbeefbeefbeefbeef;
...@@ -1874,7 +1874,7 @@ test "@asyncCall with pass-by-value arguments" {...@@ -1874,7 +1874,7 @@ test "@asyncCall with pass-by-value arguments" {
1874}1874}
18751875
1876test "@asyncCall with arguments having non-standard alignment" {1876test "@asyncCall with arguments having non-standard alignment" {
1877 if (builtin.zig_backend != .stage1) return error.SkipZigTest; // TODO1877 if (true) return error.SkipZigTest; // TODO
1878 if (builtin.os.tag == .wasi) return error.SkipZigTest; // TODO1878 if (builtin.os.tag == .wasi) return error.SkipZigTest; // TODO
18791879
1880 const F0: u64 = 0xbeefbeef;1880 const F0: u64 = 0xbeefbeef;
test/behavior/atomics.zig+3-5
...@@ -151,9 +151,7 @@ test "cmpxchg on a global variable" {...@@ -151,9 +151,7 @@ test "cmpxchg on a global variable" {
151 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO151 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
152 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO152 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
153153
154 if ((builtin.zig_backend == .stage1 or builtin.zig_backend == .stage2_llvm) and154 if (builtin.zig_backend == .stage2_llvm and builtin.cpu.arch == .aarch64) {
155 builtin.cpu.arch == .aarch64)
156 {
157 // https://github.com/ziglang/zig/issues/10627155 // https://github.com/ziglang/zig/issues/10627
158 return error.SkipZigTest;156 return error.SkipZigTest;
159 }157 }
...@@ -220,8 +218,8 @@ test "atomicrmw with floats" {...@@ -220,8 +218,8 @@ test "atomicrmw with floats" {
220 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO218 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
221 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO219 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
222220
223 if ((builtin.zig_backend == .stage1 or builtin.zig_backend == .stage2_llvm or221 if ((builtin.zig_backend == .stage2_llvm or builtin.zig_backend == .stage2_c) and
224 builtin.zig_backend == .stage2_c) and builtin.cpu.arch == .aarch64)222 builtin.cpu.arch == .aarch64)
225 {223 {
226 // https://github.com/ziglang/zig/issues/10627224 // https://github.com/ziglang/zig/issues/10627
227 return error.SkipZigTest;225 return error.SkipZigTest;
test/behavior/await_struct.zig+1-1
...@@ -10,7 +10,7 @@ var await_a_promise: anyframe = undefined;...@@ -10,7 +10,7 @@ var await_a_promise: anyframe = undefined;
10var await_final_result = Foo{ .x = 0 };10var await_final_result = Foo{ .x = 0 };
1111
12test "coroutine await struct" {12test "coroutine await struct" {
13 if (builtin.zig_backend != .stage1) return error.SkipZigTest; // TODO13 if (true) return error.SkipZigTest; // TODO
1414
15 await_seq('a');15 await_seq('a');
16 var p = async await_amain();16 var p = async await_amain();
test/behavior/basic.zig+1-19
...@@ -198,11 +198,6 @@ const OpaqueA = opaque {};...@@ -198,11 +198,6 @@ const OpaqueA = opaque {};
198const OpaqueB = opaque {};198const OpaqueB = opaque {};
199199
200test "opaque types" {200test "opaque types" {
201 if (builtin.zig_backend == .stage1) {
202 // stage1 gets the type names wrong
203 return error.SkipZigTest;
204 }
205
206 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO201 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
207202
208 try expect(*OpaqueA != *OpaqueB);203 try expect(*OpaqueA != *OpaqueB);
...@@ -290,7 +285,6 @@ fn fB() []const u8 {...@@ -290,7 +285,6 @@ fn fB() []const u8 {
290285
291test "call function pointer in struct" {286test "call function pointer in struct" {
292 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;287 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;
293 if (builtin.zig_backend == .stage1) return error.SkipZigTest;
294288
295 try expect(mem.eql(u8, f3(true), "a"));289 try expect(mem.eql(u8, f3(true), "a"));
296 try expect(mem.eql(u8, f3(false), "b"));290 try expect(mem.eql(u8, f3(false), "b"));
...@@ -329,7 +323,6 @@ fn copy(src: *const u64, dst: *u64) void {...@@ -329,7 +323,6 @@ fn copy(src: *const u64, dst: *u64) void {
329}323}
330324
331test "call result of if else expression" {325test "call result of if else expression" {
332 if (builtin.zig_backend == .stage1) return error.SkipZigTest; // stage1 has different function pointers
333 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;326 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;
334 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest;327 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest;
335 if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest;328 if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest;
...@@ -573,22 +566,16 @@ fn emptyFn() void {}...@@ -573,22 +566,16 @@ fn emptyFn() void {}
573566
574const addr1 = @ptrCast(*const u8, &emptyFn);567const addr1 = @ptrCast(*const u8, &emptyFn);
575test "comptime cast fn to ptr" {568test "comptime cast fn to ptr" {
576 if (builtin.zig_backend == .stage1) return error.SkipZigTest;
577
578 const addr2 = @ptrCast(*const u8, &emptyFn);569 const addr2 = @ptrCast(*const u8, &emptyFn);
579 comptime try expect(addr1 == addr2);570 comptime try expect(addr1 == addr2);
580}571}
581572
582test "equality compare fn ptrs" {573test "equality compare fn ptrs" {
583 if (builtin.zig_backend == .stage1) return error.SkipZigTest;
584
585 var a = &emptyFn;574 var a = &emptyFn;
586 try expect(a == a);575 try expect(a == a);
587}576}
588577
589test "self reference through fn ptr field" {578test "self reference through fn ptr field" {
590 if (builtin.zig_backend == .stage1) return error.SkipZigTest;
591
592 const S = struct {579 const S = struct {
593 const A = struct {580 const A = struct {
594 f: *const fn (A) u8,581 f: *const fn (A) u8,
...@@ -783,10 +770,6 @@ test "auto created variables have correct alignment" {...@@ -783,10 +770,6 @@ test "auto created variables have correct alignment" {
783}770}
784771
785test "extern variable with non-pointer opaque type" {772test "extern variable with non-pointer opaque type" {
786 if (builtin.zig_backend == .stage1) {
787 // Regressed with LLVM 14
788 return error.SkipZigTest;
789 }
790 if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest; // TODO773 if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest; // TODO
791 if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO774 if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO
792 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO775 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
...@@ -963,7 +946,7 @@ test "array type comes from generic function" {...@@ -963,7 +946,7 @@ test "array type comes from generic function" {
963}946}
964947
965test "generic function uses return type of other generic function" {948test "generic function uses return type of other generic function" {
966 if (builtin.zig_backend != .stage1) {949 if (true) {
967 // This test has been failing sporadically on the CI.950 // This test has been failing sporadically on the CI.
968 // It's not enough to verify that it works locally; we need to diagnose why951 // It's not enough to verify that it works locally; we need to diagnose why
969 // it fails on the CI sometimes before turning it back on.952 // it fails on the CI sometimes before turning it back on.
...@@ -1067,7 +1050,6 @@ test "inline call of function with a switch inside the return statement" {...@@ -1067,7 +1050,6 @@ test "inline call of function with a switch inside the return statement" {
1067}1050}
10681051
1069test "namespace lookup ignores decl causing the lookup" {1052test "namespace lookup ignores decl causing the lookup" {
1070 if (builtin.zig_backend == .stage1) return error.SkipZigTest;
1071 if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest; // TODO1053 if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest; // TODO
1072 if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO1054 if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO
1073 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO1055 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
test/behavior/bitcast.zig+1-7
...@@ -155,10 +155,6 @@ test "bitcast generates a temporary value" {...@@ -155,10 +155,6 @@ test "bitcast generates a temporary value" {
155}155}
156156
157test "@bitCast packed structs at runtime and comptime" {157test "@bitCast packed structs at runtime and comptime" {
158 if (builtin.zig_backend == .stage1) {
159 // stage1 gets the wrong answer for a lot of targets
160 return error.SkipZigTest;
161 }
162 if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest;158 if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest;
163 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;159 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;
164 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest;160 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest;
...@@ -323,7 +319,6 @@ test "@bitCast packed struct of floats" {...@@ -323,7 +319,6 @@ test "@bitCast packed struct of floats" {
323}319}
324320
325test "comptime @bitCast packed struct to int and back" {321test "comptime @bitCast packed struct to int and back" {
326 if (builtin.zig_backend == .stage1) return error.SkipZigTest;
327 if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest;322 if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest;
328 if (builtin.zig_backend == .stage2_c) return error.SkipZigTest;323 if (builtin.zig_backend == .stage2_c) return error.SkipZigTest;
329 if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest;324 if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest;
...@@ -377,8 +372,7 @@ test "comptime bitcast with fields following f80" {...@@ -377,8 +372,7 @@ test "comptime bitcast with fields following f80" {
377}372}
378373
379test "bitcast vector to integer and back" {374test "bitcast vector to integer and back" {
380 if (builtin.zig_backend != .stage1) return error.SkipZigTest; // TODO: https://github.com/ziglang/zig/issues/13220375 if (true) return error.SkipZigTest; // TODO: https://github.com/ziglang/zig/issues/13220
381 if (builtin.zig_backend == .stage1) return error.SkipZigTest; // stage1 gets the comptime cast wrong
382376
383 const arr: [16]bool = [_]bool{ true, false } ++ [_]bool{true} ** 14;377 const arr: [16]bool = [_]bool{ true, false } ++ [_]bool{true} ** 14;
384 var x = @splat(16, true);378 var x = @splat(16, true);
test/behavior/bitreverse.zig-6
...@@ -5,8 +5,6 @@ const minInt = std.math.minInt;...@@ -5,8 +5,6 @@ const minInt = std.math.minInt;
55
6test "@bitReverse large exotic integer" {6test "@bitReverse large exotic integer" {
7 if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest;7 if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest;
8 // Currently failing on stage1 for big-endian targets
9 if (builtin.zig_backend == .stage1) return error.SkipZigTest;
108
11 try expect(@bitReverse(@as(u95, 0x123456789abcdef111213141)) == 0x4146424447bd9eac8f351624);9 try expect(@bitReverse(@as(u95, 0x123456789abcdef111213141)) == 0x4146424447bd9eac8f351624);
12}10}
...@@ -96,7 +94,6 @@ fn vector8() !void {...@@ -96,7 +94,6 @@ fn vector8() !void {
96}94}
9795
98test "bitReverse vectors u8" {96test "bitReverse vectors u8" {
99 if (builtin.zig_backend == .stage1) return error.SkipZigTest;
100 if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest;97 if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest;
101 if (builtin.zig_backend == .stage2_c) return error.SkipZigTest;98 if (builtin.zig_backend == .stage2_c) return error.SkipZigTest;
102 if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest;99 if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest;
...@@ -115,7 +112,6 @@ fn vector16() !void {...@@ -115,7 +112,6 @@ fn vector16() !void {
115}112}
116113
117test "bitReverse vectors u16" {114test "bitReverse vectors u16" {
118 if (builtin.zig_backend == .stage1) return error.SkipZigTest;
119 if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest;115 if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest;
120 if (builtin.zig_backend == .stage2_c) return error.SkipZigTest;116 if (builtin.zig_backend == .stage2_c) return error.SkipZigTest;
121 if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest;117 if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest;
...@@ -134,7 +130,6 @@ fn vector24() !void {...@@ -134,7 +130,6 @@ fn vector24() !void {
134}130}
135131
136test "bitReverse vectors u24" {132test "bitReverse vectors u24" {
137 if (builtin.zig_backend == .stage1) return error.SkipZigTest;
138 if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest;133 if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest;
139 if (builtin.zig_backend == .stage2_c) return error.SkipZigTest;134 if (builtin.zig_backend == .stage2_c) return error.SkipZigTest;
140 if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest;135 if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest;
...@@ -153,7 +148,6 @@ fn vector0() !void {...@@ -153,7 +148,6 @@ fn vector0() !void {
153}148}
154149
155test "bitReverse vectors u0" {150test "bitReverse vectors u0" {
156 if (builtin.zig_backend == .stage1) return error.SkipZigTest;
157 if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest;151 if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest;
158 if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest;152 if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest;
159153
test/behavior/bugs/10147.zig+1-4
...@@ -1,8 +1,7 @@...@@ -1,8 +1,7 @@
1const builtin = @import("builtin");1const builtin = @import("builtin");
2const std = @import("std");2const std = @import("std");
33
4test "uses correct LLVM builtin" {4test "test calling @clz on both vector and scalar inputs" {
5 if (builtin.zig_backend == .stage1) return error.SkipZigTest;
6 if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest; // TODO5 if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest; // TODO
7 if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO6 if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO
8 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO7 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
...@@ -11,8 +10,6 @@ test "uses correct LLVM builtin" {...@@ -11,8 +10,6 @@ test "uses correct LLVM builtin" {
1110
12 var x: u32 = 0x1;11 var x: u32 = 0x1;
13 var y: @Vector(4, u32) = [_]u32{ 0x1, 0x1, 0x1, 0x1 };12 var y: @Vector(4, u32) = [_]u32{ 0x1, 0x1, 0x1, 0x1 };
14 // The stage1 compiler used to call the same builtin function for both
15 // scalar and vector inputs, causing the LLVM module verification to fail.
16 var a = @clz(x);13 var a = @clz(x);
17 var b = @clz(y);14 var b = @clz(y);
18 try std.testing.expectEqual(@as(u6, 31), a);15 try std.testing.expectEqual(@as(u6, 31), a);
test/behavior/bugs/11159.zig-2
...@@ -8,8 +8,6 @@ test {...@@ -8,8 +8,6 @@ test {
8}8}
99
10test {10test {
11 if (builtin.zig_backend == .stage1) return error.SkipZigTest; // TODO
12
13 const S = struct {11 const S = struct {
14 comptime x: i32 = 0,12 comptime x: i32 = 0,
15 comptime y: u32 = 0,13 comptime y: u32 = 0,
test/behavior/bugs/11162.zig+2-3
...@@ -2,9 +2,8 @@ const std = @import("std");...@@ -2,9 +2,8 @@ const std = @import("std");
2const builtin = @import("builtin");2const builtin = @import("builtin");
3const expect = std.testing.expect;3const expect = std.testing.expect;
44
5test "aggregate initializers should allow initializing comptime fields, verifying equality (stage2 only)" {5test "aggregate initializers should allow initializing comptime fields, verifying equality" {
6 if (builtin.zig_backend == .stage1) return error.SkipZigTest; // TODO6 if (true) return error.SkipZigTest; // TODO
7 if (builtin.zig_backend != .stage1) return error.SkipZigTest; // TODO
87
9 var x: u32 = 15;8 var x: u32 = 15;
10 const T = @TypeOf(.{ @as(i32, -1234), @as(u32, 5678), x });9 const T = @TypeOf(.{ @as(i32, -1234), @as(u32, 5678), x });
test/behavior/bugs/11227.zig-2
...@@ -6,8 +6,6 @@ fn foo() u32 {...@@ -6,8 +6,6 @@ fn foo() u32 {
6}6}
7const bar = foo;7const bar = foo;
8test "pointer to alias behaves same as pointer to function" {8test "pointer to alias behaves same as pointer to function" {
9 if (builtin.zig_backend == .stage1) return error.SkipZigTest; // stage1 has different function pointers
10
11 var a = &bar;9 var a = &bar;
12 try std.testing.expect(foo() == a());10 try std.testing.expect(foo() == a());
13}11}
test/behavior/bugs/11816.zig-1
...@@ -3,7 +3,6 @@ const builtin = @import("builtin");...@@ -3,7 +3,6 @@ const builtin = @import("builtin");
33
4test {4test {
5 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO5 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
6 if (builtin.zig_backend == .stage1) return error.SkipZigTest;
76
8 var x: u32 = 3;7 var x: u32 = 3;
9 const val: usize = while (true) switch (x) {8 const val: usize = while (true) switch (x) {
test/behavior/bugs/12486.zig-2
...@@ -23,8 +23,6 @@ const ErrStruct = struct {...@@ -23,8 +23,6 @@ const ErrStruct = struct {
23};23};
2424
25test {25test {
26 if (@import("builtin").zig_backend == .stage1) return error.SkipZigTest;
27
28 _ = OptEnum{26 _ = OptEnum{
29 .opt_enum = .{27 .opt_enum = .{
30 .EnumVariant = 1,28 .EnumVariant = 1,
test/behavior/bugs/12723.zig-3
...@@ -1,8 +1,5 @@...@@ -1,8 +1,5 @@
1const expect = @import("std").testing.expect;1const expect = @import("std").testing.expect;
22
3// This test causes a compile error on stage1 regardless of whether
4// the body of the test is comptime-gated or not. To workaround this,
5// we gate the inclusion of the test file.
6test "Non-exhaustive enum backed by comptime_int" {3test "Non-exhaustive enum backed by comptime_int" {
7 const E = enum(comptime_int) { a, b, c, _ };4 const E = enum(comptime_int) { a, b, c, _ };
8 comptime var e: E = .a;5 comptime var e: E = .a;
test/behavior/bugs/1277.zig-1
...@@ -12,7 +12,6 @@ fn f() i32 {...@@ -12,7 +12,6 @@ fn f() i32 {
12}12}
1313
14test "don't emit an LLVM global for a const function when it's in an optional in a struct" {14test "don't emit an LLVM global for a const function when it's in an optional in a struct" {
15 if (builtin.zig_backend == .stage1) return error.SkipZigTest; // stage1 has different function pointers
16 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO15 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
17 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO16 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
18 if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO17 if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO
test/behavior/bugs/12801-1.zig-1
...@@ -8,7 +8,6 @@ fn capacity_() u64 {...@@ -8,7 +8,6 @@ fn capacity_() u64 {
88
9test {9test {
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 == .stage1) return error.SkipZigTest;
1211
13 try std.testing.expect((@This(){}).capacity() == 64);12 try std.testing.expect((@This(){}).capacity() == 64);
14}13}
test/behavior/bugs/12801-2.zig-1
...@@ -14,7 +14,6 @@ const Auto = struct {...@@ -14,7 +14,6 @@ const Auto = struct {
14 }14 }
15};15};
16test {16test {
17 if (builtin.zig_backend == .stage1) return error.SkipZigTest;
18 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO17 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
19 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO18 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
20 if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO19 if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO
test/behavior/bugs/12885.zig-2
...@@ -11,8 +11,6 @@ const Foo = @Type(.{...@@ -11,8 +11,6 @@ const Foo = @Type(.{
11 .ErrorSet = &info.args,11 .ErrorSet = &info.args,
12});12});
13test "ErrorSet comptime_field_ptr" {13test "ErrorSet comptime_field_ptr" {
14 if (@import("builtin").zig_backend == .stage1) return error.SkipZigTest;
15
16 try expect(Foo == error{bar});14 try expect(Foo == error{bar});
17}15}
1816
test/behavior/bugs/12891.zig-2
...@@ -7,8 +7,6 @@ test "issue12891" {...@@ -7,8 +7,6 @@ test "issue12891" {
7 try std.testing.expect(i < f);7 try std.testing.expect(i < f);
8}8}
9test "nan" {9test "nan" {
10 if (builtin.zig_backend == .stage1) return error.SkipZigTest; // TODO
11
12 const f = comptime std.math.nan(f64);10 const f = comptime std.math.nan(f64);
13 var i: usize = 0;11 var i: usize = 0;
14 try std.testing.expect(!(f < i));12 try std.testing.expect(!(f < i));
test/behavior/bugs/12911.zig-2
...@@ -5,7 +5,5 @@ const Thing = struct {...@@ -5,7 +5,5 @@ const Thing = struct {
5 array: [1]Item,5 array: [1]Item,
6};6};
7test {7test {
8 if (builtin.zig_backend == .stage1) return error.SkipZigTest;
9
10 _ = Thing{ .array = undefined };8 _ = Thing{ .array = undefined };
11}9}
test/behavior/bugs/1310.zig+1-2
...@@ -22,7 +22,6 @@ fn agent_callback(_vm: [*]VM, options: [*]u8) callconv(.C) i32 {...@@ -22,7 +22,6 @@ fn agent_callback(_vm: [*]VM, options: [*]u8) callconv(.C) i32 {
22 return 11;22 return 11;
23}23}
2424
25test "fixed" {25test {
26 if (builtin.zig_backend == .stage1) return error.SkipZigTest;
27 try expect(agent_callback(undefined, undefined) == 11);26 try expect(agent_callback(undefined, undefined) == 11);
28}27}
test/behavior/bugs/2006.zig+1-8
...@@ -9,12 +9,5 @@ test "bug 2006" {...@@ -9,12 +9,5 @@ test "bug 2006" {
9 var a: S = undefined;9 var a: S = undefined;
10 a = S{ .p = undefined };10 a = S{ .p = undefined };
11 try expect(@sizeOf(S) != 0);11 try expect(@sizeOf(S) != 0);
12 if (@import("builtin").zig_backend != .stage1) {12 try expect(@sizeOf(*void) == @sizeOf(*i32));
13 // It is an accepted proposal to make `@sizeOf` for pointers independent
14 // of whether the element type is zero bits.
15 // This language change has not been implemented in stage1.
16 try expect(@sizeOf(*void) == @sizeOf(*i32));
17 } else {
18 try expect(@sizeOf(*void) == 0);
19 }
20}13}
test/behavior/bugs/3112.zig-1
...@@ -13,7 +13,6 @@ fn prev(p: ?State) void {...@@ -13,7 +13,6 @@ fn prev(p: ?State) void {
1313
14test "zig test crash" {14test "zig test crash" {
15 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;15 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;
16 if (builtin.zig_backend == .stage1) return error.SkipZigTest;
17 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest;16 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest;
18 var global: State = undefined;17 var global: State = undefined;
19 global.enter = prev;18 global.enter = prev;
test/behavior/bugs/3779.zig-3
...@@ -6,7 +6,6 @@ const tag_name = @tagName(TestEnum.TestEnumValue);...@@ -6,7 +6,6 @@ const tag_name = @tagName(TestEnum.TestEnumValue);
6const ptr_tag_name: [*:0]const u8 = tag_name;6const ptr_tag_name: [*:0]const u8 = tag_name;
77
8test "@tagName() returns a string literal" {8test "@tagName() returns a string literal" {
9 if (builtin.zig_backend == .stage1) return error.SkipZigTest; // stage1 gets the type wrong
10 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO9 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
1110
12 try std.testing.expect(*const [13:0]u8 == @TypeOf(tag_name));11 try std.testing.expect(*const [13:0]u8 == @TypeOf(tag_name));
...@@ -19,7 +18,6 @@ const error_name = @errorName(TestError.TestErrorCode);...@@ -19,7 +18,6 @@ const error_name = @errorName(TestError.TestErrorCode);
19const ptr_error_name: [*:0]const u8 = error_name;18const ptr_error_name: [*:0]const u8 = error_name;
2019
21test "@errorName() returns a string literal" {20test "@errorName() returns a string literal" {
22 if (builtin.zig_backend == .stage1) return error.SkipZigTest; // stage1 gets the type wrong
23 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO21 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
2422
25 try std.testing.expect(*const [13:0]u8 == @TypeOf(error_name));23 try std.testing.expect(*const [13:0]u8 == @TypeOf(error_name));
...@@ -32,7 +30,6 @@ const type_name = @typeName(TestType);...@@ -32,7 +30,6 @@ const type_name = @typeName(TestType);
32const ptr_type_name: [*:0]const u8 = type_name;30const ptr_type_name: [*:0]const u8 = type_name;
3331
34test "@typeName() returns a string literal" {32test "@typeName() returns a string literal" {
35 if (builtin.zig_backend == .stage1) return error.SkipZigTest; // stage1 gets the type wrong
36 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO33 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
3734
38 try std.testing.expect(*const [type_name.len:0]u8 == @TypeOf(type_name));35 try std.testing.expect(*const [type_name.len:0]u8 == @TypeOf(type_name));
test/behavior/bugs/6850.zig+1-7
...@@ -8,11 +8,5 @@ test "lazy sizeof comparison with zero" {...@@ -8,11 +8,5 @@ test "lazy sizeof comparison with zero" {
8}8}
99
10fn hasNoBits(comptime T: type) bool {10fn hasNoBits(comptime T: type) bool {
11 if (@import("builtin").zig_backend != .stage1) {11 return @sizeOf(T) == @sizeOf(*i32);
12 // It is an accepted proposal to make `@sizeOf` for pointers independent
13 // of whether the element type is zero bits.
14 // This language change has not been implemented in stage1.
15 return @sizeOf(T) == @sizeOf(*i32);
16 }
17 return @sizeOf(T) == 0;
18}12}
test/behavior/bugs/920.zig+2-11
...@@ -2,23 +2,14 @@ const builtin = @import("builtin");...@@ -2,23 +2,14 @@ const builtin = @import("builtin");
2const std = @import("std");2const std = @import("std");
3const Random = std.rand.Random;3const Random = std.rand.Random;
44
5const zeroCaseFn = switch (builtin.zig_backend) {
6 .stage1 => fn (*Random, f64) f64,
7 else => *const fn (*Random, f64) f64,
8};
9const pdfFn = switch (builtin.zig_backend) {
10 .stage1 => fn (f64) f64,
11 else => *const fn (f64) f64,
12};
13
14const ZigTable = struct {5const ZigTable = struct {
15 r: f64,6 r: f64,
16 x: [257]f64,7 x: [257]f64,
17 f: [257]f64,8 f: [257]f64,
189
19 pdf: pdfFn,10 pdf: *const fn (f64) f64,
20 is_symmetric: bool,11 is_symmetric: bool,
21 zero_case: zeroCaseFn,12 zero_case: *const fn (*Random, f64) f64,
22};13};
2314
24fn ZigTableGen(comptime is_symmetric: bool, comptime r: f64, comptime v: f64, comptime f: fn (f64) f64, comptime f_inv: fn (f64) f64, comptime zero_case: fn (*Random, f64) f64) ZigTable {15fn ZigTableGen(comptime is_symmetric: bool, comptime r: f64, comptime v: f64, comptime f: fn (f64) f64, comptime f_inv: fn (f64) f64, comptime zero_case: fn (*Random, f64) f64) ZigTable {
test/behavior/byteswap.zig-5
...@@ -3,7 +3,6 @@ const builtin = @import("builtin");...@@ -3,7 +3,6 @@ const builtin = @import("builtin");
3const expect = std.testing.expect;3const expect = std.testing.expect;
44
5test "@byteSwap integers" {5test "@byteSwap integers" {
6 if (builtin.zig_backend == .stage1) return error.SkipZigTest;
7 if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest;6 if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest;
8 if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest;7 if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest;
9 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest;8 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest;
...@@ -62,7 +61,6 @@ fn vector8() !void {...@@ -62,7 +61,6 @@ fn vector8() !void {
62}61}
6362
64test "@byteSwap vectors u8" {63test "@byteSwap vectors u8" {
65 if (builtin.zig_backend == .stage1) return error.SkipZigTest;
66 if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest;64 if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest;
67 if (builtin.zig_backend == .stage2_c) return error.SkipZigTest;65 if (builtin.zig_backend == .stage2_c) return error.SkipZigTest;
68 if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest;66 if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest;
...@@ -81,7 +79,6 @@ fn vector16() !void {...@@ -81,7 +79,6 @@ fn vector16() !void {
81}79}
8280
83test "@byteSwap vectors u16" {81test "@byteSwap vectors u16" {
84 if (builtin.zig_backend == .stage1) return error.SkipZigTest;
85 if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest;82 if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest;
86 if (builtin.zig_backend == .stage2_c) return error.SkipZigTest;83 if (builtin.zig_backend == .stage2_c) return error.SkipZigTest;
87 if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest;84 if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest;
...@@ -100,7 +97,6 @@ fn vector24() !void {...@@ -100,7 +97,6 @@ fn vector24() !void {
100}97}
10198
102test "@byteSwap vectors u24" {99test "@byteSwap vectors u24" {
103 if (builtin.zig_backend == .stage1) return error.SkipZigTest;
104 if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest;100 if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest;
105 if (builtin.zig_backend == .stage2_c) return error.SkipZigTest;101 if (builtin.zig_backend == .stage2_c) return error.SkipZigTest;
106 if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest;102 if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest;
...@@ -119,7 +115,6 @@ fn vector0() !void {...@@ -119,7 +115,6 @@ fn vector0() !void {
119}115}
120116
121test "@byteSwap vectors u0" {117test "@byteSwap vectors u0" {
122 if (builtin.zig_backend == .stage1) return error.SkipZigTest;
123 if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest;118 if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest;
124 if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest;119 if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest;
125120
test/behavior/call.zig+4-10
...@@ -45,10 +45,7 @@ test "basic invocations" {...@@ -45,10 +45,7 @@ test "basic invocations" {
45 }45 }
46 {46 {
47 // call of non comptime-known function47 // call of non comptime-known function
48 var alias_foo = switch (builtin.zig_backend) {48 var alias_foo = &foo;
49 .stage1 => foo,
50 else => &foo,
51 };
52 try expect(@call(.{ .modifier = .no_async }, alias_foo, .{}) == 1234);49 try expect(@call(.{ .modifier = .no_async }, alias_foo, .{}) == 1234);
53 try expect(@call(.{ .modifier = .never_tail }, alias_foo, .{}) == 1234);50 try expect(@call(.{ .modifier = .never_tail }, alias_foo, .{}) == 1234);
54 try expect(@call(.{ .modifier = .never_inline }, alias_foo, .{}) == 1234);51 try expect(@call(.{ .modifier = .never_inline }, alias_foo, .{}) == 1234);
...@@ -71,7 +68,9 @@ test "tuple parameters" {...@@ -71,7 +68,9 @@ test "tuple parameters" {
71 try expect(@call(.{}, add, .{ 12, b }) == 46);68 try expect(@call(.{}, add, .{ 12, b }) == 46);
72 try expect(@call(.{}, add, .{ a, b }) == 46);69 try expect(@call(.{}, add, .{ a, b }) == 46);
73 try expect(@call(.{}, add, .{ 12, 34 }) == 46);70 try expect(@call(.{}, add, .{ 12, 34 }) == 46);
74 if (builtin.zig_backend == .stage1) comptime try expect(@call(.{}, add, .{ 12, 34 }) == 46); // TODO71 if (false) {
72 comptime try expect(@call(.{}, add, .{ 12, 34 }) == 46); // TODO
73 }
75 try expect(comptime @call(.{}, add, .{ 12, 34 }) == 46);74 try expect(comptime @call(.{}, add, .{ 12, 34 }) == 46);
76 {75 {
77 const separate_args0 = .{ a, b };76 const separate_args0 = .{ a, b };
...@@ -246,8 +245,6 @@ test "function call with 40 arguments" {...@@ -246,8 +245,6 @@ test "function call with 40 arguments" {
246}245}
247246
248test "arguments to comptime parameters generated in comptime blocks" {247test "arguments to comptime parameters generated in comptime blocks" {
249 if (builtin.zig_backend == .stage1) return error.SkipZigTest;
250
251 const S = struct {248 const S = struct {
252 fn fortyTwo() i32 {249 fn fortyTwo() i32 {
253 return 42;250 return 42;
...@@ -261,7 +258,6 @@ test "arguments to comptime parameters generated in comptime blocks" {...@@ -261,7 +258,6 @@ test "arguments to comptime parameters generated in comptime blocks" {
261}258}
262259
263test "forced tail call" {260test "forced tail call" {
264 if (builtin.zig_backend == .stage1) return error.SkipZigTest;
265 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO261 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
266 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO262 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
267 if (builtin.zig_backend == .stage2_c) return error.SkipZigTest; // TODO263 if (builtin.zig_backend == .stage2_c) return error.SkipZigTest; // TODO
...@@ -294,7 +290,6 @@ test "forced tail call" {...@@ -294,7 +290,6 @@ test "forced tail call" {
294}290}
295291
296test "inline call preserves tail call" {292test "inline call preserves tail call" {
297 if (builtin.zig_backend == .stage1) return error.SkipZigTest;
298 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO293 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
299 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO294 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
300 if (builtin.zig_backend == .stage2_c) return error.SkipZigTest; // TODO295 if (builtin.zig_backend == .stage2_c) return error.SkipZigTest; // TODO
...@@ -329,7 +324,6 @@ test "inline call preserves tail call" {...@@ -329,7 +324,6 @@ test "inline call preserves tail call" {
329}324}
330325
331test "inline call doesn't re-evaluate non generic struct" {326test "inline call doesn't re-evaluate non generic struct" {
332 if (builtin.zig_backend == .stage1) return error.SkipZigTest;
333 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO327 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
334 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO328 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
335 if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO329 if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO
test/behavior/cast.zig-15
...@@ -113,8 +113,6 @@ test "@intToFloat" {...@@ -113,8 +113,6 @@ test "@intToFloat" {
113}113}
114114
115test "@intToFloat(f80)" {115test "@intToFloat(f80)" {
116 if (builtin.zig_backend == .stage1) return error.SkipZigTest;
117
118 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO116 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
119 if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO117 if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO
120 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO118 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
...@@ -699,11 +697,6 @@ test "peer type resolution: error set supersets" {...@@ -699,11 +697,6 @@ test "peer type resolution: error set supersets" {
699}697}
700698
701test "peer type resolution: disjoint error sets" {699test "peer type resolution: disjoint error sets" {
702 if (builtin.zig_backend == .stage1) {
703 // stage1 gets the order of the error names wrong after merging the sets.
704 return error.SkipZigTest;
705 }
706
707 if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO700 if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO
708 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO701 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
709 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO702 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
...@@ -733,11 +726,6 @@ test "peer type resolution: disjoint error sets" {...@@ -733,11 +726,6 @@ test "peer type resolution: disjoint error sets" {
733}726}
734727
735test "peer type resolution: error union and error set" {728test "peer type resolution: error union and error set" {
736 if (builtin.zig_backend == .stage1) {
737 // stage1 gets the order of the error names wrong after merging the sets.
738 return error.SkipZigTest;
739 }
740
741 if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO729 if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO
742 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO730 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
743 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO731 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
...@@ -1080,7 +1068,6 @@ fn incrementVoidPtrArray(array: ?*anyopaque, len: usize) void {...@@ -1080,7 +1068,6 @@ fn incrementVoidPtrArray(array: ?*anyopaque, len: usize) void {
1080}1068}
10811069
1082test "compile time int to ptr of function" {1070test "compile time int to ptr of function" {
1083 if (builtin.zig_backend == .stage1) return error.SkipZigTest;
1084 if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO1071 if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO
10851072
1086 try foobar(FUNCTION_CONSTANT);1073 try foobar(FUNCTION_CONSTANT);
...@@ -1421,8 +1408,6 @@ test "floatToInt to zero-bit int" {...@@ -1421,8 +1408,6 @@ test "floatToInt to zero-bit int" {
1421}1408}
14221409
1423test "peer type resolution of function pointer and function body" {1410test "peer type resolution of function pointer and function body" {
1424 if (builtin.zig_backend == .stage1) return error.SkipZigTest;
1425
1426 const T = fn () u32;1411 const T = fn () u32;
1427 const a: T = undefined;1412 const a: T = undefined;
1428 const b: *const T = undefined;1413 const b: *const T = undefined;
test/behavior/comptime_memory.zig+11-32
...@@ -4,8 +4,6 @@ const testing = @import("std").testing;...@@ -4,8 +4,6 @@ const testing = @import("std").testing;
4const ptr_size = @sizeOf(usize);4const ptr_size = @sizeOf(usize);
55
6test "type pun signed and unsigned as single pointer" {6test "type pun signed and unsigned as single pointer" {
7 if (builtin.zig_backend == .stage1) return error.SkipZigTest;
8
9 comptime {7 comptime {
10 var x: u32 = 0;8 var x: u32 = 0;
11 const y = @ptrCast(*i32, &x);9 const y = @ptrCast(*i32, &x);
...@@ -15,8 +13,6 @@ test "type pun signed and unsigned as single pointer" {...@@ -15,8 +13,6 @@ test "type pun signed and unsigned as single pointer" {
15}13}
1614
17test "type pun signed and unsigned as many pointer" {15test "type pun signed and unsigned as many pointer" {
18 if (builtin.zig_backend == .stage1) return error.SkipZigTest;
19
20 comptime {16 comptime {
21 var x: u32 = 0;17 var x: u32 = 0;
22 const y = @ptrCast([*]i32, &x);18 const y = @ptrCast([*]i32, &x);
...@@ -26,8 +22,6 @@ test "type pun signed and unsigned as many pointer" {...@@ -26,8 +22,6 @@ test "type pun signed and unsigned as many pointer" {
26}22}
2723
28test "type pun signed and unsigned as array pointer" {24test "type pun signed and unsigned as array pointer" {
29 if (builtin.zig_backend == .stage1) return error.SkipZigTest;
30
31 comptime {25 comptime {
32 var x: u32 = 0;26 var x: u32 = 0;
33 const y = @ptrCast(*[1]i32, &x);27 const y = @ptrCast(*[1]i32, &x);
...@@ -37,8 +31,7 @@ test "type pun signed and unsigned as array pointer" {...@@ -37,8 +31,7 @@ test "type pun signed and unsigned as array pointer" {
37}31}
3832
39test "type pun signed and unsigned as offset many pointer" {33test "type pun signed and unsigned as offset many pointer" {
40 if (builtin.zig_backend == .stage1) return error.SkipZigTest;34 if (true) {
41 if (builtin.zig_backend != .stage1) {
42 // TODO https://github.com/ziglang/zig/issues/964635 // TODO https://github.com/ziglang/zig/issues/9646
43 return error.SkipZigTest;36 return error.SkipZigTest;
44 }37 }
...@@ -53,8 +46,7 @@ test "type pun signed and unsigned as offset many pointer" {...@@ -53,8 +46,7 @@ test "type pun signed and unsigned as offset many pointer" {
53}46}
5447
55test "type pun signed and unsigned as array pointer" {48test "type pun signed and unsigned as array pointer" {
56 if (builtin.zig_backend == .stage1) return error.SkipZigTest;49 if (true) {
57 if (builtin.zig_backend != .stage1) {
58 // TODO https://github.com/ziglang/zig/issues/964650 // TODO https://github.com/ziglang/zig/issues/9646
59 return error.SkipZigTest;51 return error.SkipZigTest;
60 }52 }
...@@ -69,8 +61,6 @@ test "type pun signed and unsigned as array pointer" {...@@ -69,8 +61,6 @@ test "type pun signed and unsigned as array pointer" {
69}61}
7062
71test "type pun value and struct" {63test "type pun value and struct" {
72 if (builtin.zig_backend == .stage1) return error.SkipZigTest;
73
74 comptime {64 comptime {
75 const StructOfU32 = extern struct { x: u32 };65 const StructOfU32 = extern struct { x: u32 };
76 var inst: StructOfU32 = .{ .x = 0 };66 var inst: StructOfU32 = .{ .x = 0 };
...@@ -85,7 +75,6 @@ fn bigToNativeEndian(comptime T: type, v: T) T {...@@ -85,7 +75,6 @@ fn bigToNativeEndian(comptime T: type, v: T) T {
85 return if (endian == .Big) v else @byteSwap(v);75 return if (endian == .Big) v else @byteSwap(v);
86}76}
87test "type pun endianness" {77test "type pun endianness" {
88 if (builtin.zig_backend == .stage1) return error.SkipZigTest;
89 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO78 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
9079
91 comptime {80 comptime {
...@@ -179,8 +168,7 @@ fn doTypePunBitsTest(as_bits: *Bits) !void {...@@ -179,8 +168,7 @@ fn doTypePunBitsTest(as_bits: *Bits) !void {
179}168}
180169
181test "type pun bits" {170test "type pun bits" {
182 if (builtin.zig_backend == .stage1) return error.SkipZigTest;171 if (true) {
183 if (builtin.zig_backend != .stage1) {
184 // TODO https://github.com/ziglang/zig/issues/9646172 // TODO https://github.com/ziglang/zig/issues/9646
185 return error.SkipZigTest;173 return error.SkipZigTest;
186 }174 }
...@@ -197,8 +185,7 @@ const imports = struct {...@@ -197,8 +185,7 @@ const imports = struct {
197185
198// Make sure lazy values work on their own, before getting into more complex tests186// Make sure lazy values work on their own, before getting into more complex tests
199test "basic pointer preservation" {187test "basic pointer preservation" {
200 if (builtin.zig_backend == .stage1) return error.SkipZigTest;188 if (true) {
201 if (builtin.zig_backend != .stage1) {
202 // TODO https://github.com/ziglang/zig/issues/9646189 // TODO https://github.com/ziglang/zig/issues/9646
203 return error.SkipZigTest;190 return error.SkipZigTest;
204 }191 }
...@@ -211,8 +198,7 @@ test "basic pointer preservation" {...@@ -211,8 +198,7 @@ test "basic pointer preservation" {
211}198}
212199
213test "byte copy preserves linker value" {200test "byte copy preserves linker value" {
214 if (builtin.zig_backend == .stage1) return error.SkipZigTest;201 if (true) {
215 if (builtin.zig_backend != .stage1) {
216 // TODO https://github.com/ziglang/zig/issues/9646202 // TODO https://github.com/ziglang/zig/issues/9646
217 return error.SkipZigTest;203 return error.SkipZigTest;
218 }204 }
...@@ -235,8 +221,7 @@ test "byte copy preserves linker value" {...@@ -235,8 +221,7 @@ test "byte copy preserves linker value" {
235}221}
236222
237test "unordered byte copy preserves linker value" {223test "unordered byte copy preserves linker value" {
238 if (builtin.zig_backend == .stage1) return error.SkipZigTest;224 if (true) {
239 if (builtin.zig_backend != .stage1) {
240 // TODO https://github.com/ziglang/zig/issues/9646225 // TODO https://github.com/ziglang/zig/issues/9646
241 return error.SkipZigTest;226 return error.SkipZigTest;
242 }227 }
...@@ -260,8 +245,7 @@ test "unordered byte copy preserves linker value" {...@@ -260,8 +245,7 @@ test "unordered byte copy preserves linker value" {
260}245}
261246
262test "shuffle chunks of linker value" {247test "shuffle chunks of linker value" {
263 if (builtin.zig_backend == .stage1) return error.SkipZigTest;248 if (true) {
264 if (builtin.zig_backend != .stage1) {
265 // TODO https://github.com/ziglang/zig/issues/9646249 // TODO https://github.com/ziglang/zig/issues/9646
266 return error.SkipZigTest;250 return error.SkipZigTest;
267 }251 }
...@@ -279,8 +263,7 @@ test "shuffle chunks of linker value" {...@@ -279,8 +263,7 @@ test "shuffle chunks of linker value" {
279}263}
280264
281test "dance on linker values" {265test "dance on linker values" {
282 if (builtin.zig_backend == .stage1) return error.SkipZigTest;266 if (true) {
283 if (builtin.zig_backend != .stage1) {
284 // TODO https://github.com/ziglang/zig/issues/9646267 // TODO https://github.com/ziglang/zig/issues/9646
285 return error.SkipZigTest;268 return error.SkipZigTest;
286 }269 }
...@@ -311,8 +294,7 @@ test "dance on linker values" {...@@ -311,8 +294,7 @@ test "dance on linker values" {
311}294}
312295
313test "offset array ptr by element size" {296test "offset array ptr by element size" {
314 if (builtin.zig_backend == .stage1) return error.SkipZigTest;297 if (true) {
315 if (builtin.zig_backend != .stage1) {
316 // TODO https://github.com/ziglang/zig/issues/9646298 // TODO https://github.com/ziglang/zig/issues/9646
317 return error.SkipZigTest;299 return error.SkipZigTest;
318 }300 }
...@@ -339,8 +321,7 @@ test "offset array ptr by element size" {...@@ -339,8 +321,7 @@ test "offset array ptr by element size" {
339}321}
340322
341test "offset instance by field size" {323test "offset instance by field size" {
342 if (builtin.zig_backend == .stage1) return error.SkipZigTest;324 if (true) {
343 if (builtin.zig_backend != .stage1) {
344 // TODO https://github.com/ziglang/zig/issues/9646325 // TODO https://github.com/ziglang/zig/issues/9646
345 return error.SkipZigTest;326 return error.SkipZigTest;
346 }327 }
...@@ -365,8 +346,7 @@ test "offset instance by field size" {...@@ -365,8 +346,7 @@ test "offset instance by field size" {
365}346}
366347
367test "offset field ptr by enclosing array element size" {348test "offset field ptr by enclosing array element size" {
368 if (builtin.zig_backend == .stage1) return error.SkipZigTest;349 if (true) {
369 if (builtin.zig_backend != .stage1) {
370 // TODO https://github.com/ziglang/zig/issues/9646350 // TODO https://github.com/ziglang/zig/issues/9646
371 return error.SkipZigTest;351 return error.SkipZigTest;
372 }352 }
...@@ -395,7 +375,6 @@ test "offset field ptr by enclosing array element size" {...@@ -395,7 +375,6 @@ test "offset field ptr by enclosing array element size" {
395}375}
396376
397test "accessing reinterpreted memory of parent object" {377test "accessing reinterpreted memory of parent object" {
398 if (builtin.zig_backend == .stage1) return error.SkipZigTest;
399 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO378 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
400 const S = extern struct {379 const S = extern struct {
401 a: f32,380 a: f32,
test/behavior/error.zig-15
...@@ -151,7 +151,6 @@ test "fn returning empty error set can be passed as fn returning any error" {...@@ -151,7 +151,6 @@ test "fn returning empty error set can be passed as fn returning any error" {
151}151}
152152
153test "fn returning empty error set can be passed as fn returning any error - pointer" {153test "fn returning empty error set can be passed as fn returning any error - pointer" {
154 if (builtin.zig_backend == .stage1) return error.SkipZigTest;
155 if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO154 if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO
156 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO155 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
157156
...@@ -465,11 +464,6 @@ test "nested catch" {...@@ -465,11 +464,6 @@ test "nested catch" {
465}464}
466465
467test "function pointer with return type that is error union with payload which is pointer of parent struct" {466test "function pointer with return type that is error union with payload which is pointer of parent struct" {
468 if (builtin.zig_backend == .stage1) {
469 // stage1 has wrong function pointer semantics
470 return error.SkipZigTest;
471 }
472
473 if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO467 if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO
474 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO468 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
475469
...@@ -582,9 +576,6 @@ pub fn testBuiltinErrorName(err: anyerror) [:0]const u8 {...@@ -582,9 +576,6 @@ pub fn testBuiltinErrorName(err: anyerror) [:0]const u8 {
582}576}
583577
584test "error set equality" {578test "error set equality" {
585 // This tests using stage2 logic (#11022)
586 if (builtin.zig_backend == .stage1) return error.SkipZigTest;
587
588 const a = error{One};579 const a = error{One};
589 const b = error{One};580 const b = error{One};
590581
...@@ -752,7 +743,6 @@ const NoReturn = struct {...@@ -752,7 +743,6 @@ const NoReturn = struct {
752};743};
753744
754test "error union of noreturn used with if" {745test "error union of noreturn used with if" {
755 if (builtin.zig_backend == .stage1) return error.SkipZigTest;
756 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO746 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
757 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO747 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
758 if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest; // TODO748 if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest; // TODO
...@@ -767,7 +757,6 @@ test "error union of noreturn used with if" {...@@ -767,7 +757,6 @@ test "error union of noreturn used with if" {
767}757}
768758
769test "error union of noreturn used with try" {759test "error union of noreturn used with try" {
770 if (builtin.zig_backend == .stage1) return error.SkipZigTest;
771 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO760 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
772 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO761 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
773 if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest; // TODO762 if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest; // TODO
...@@ -779,7 +768,6 @@ test "error union of noreturn used with try" {...@@ -779,7 +768,6 @@ test "error union of noreturn used with try" {
779}768}
780769
781test "error union of noreturn used with catch" {770test "error union of noreturn used with catch" {
782 if (builtin.zig_backend == .stage1) return error.SkipZigTest;
783 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO771 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
784 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO772 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
785 if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest; // TODO773 if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest; // TODO
...@@ -807,7 +795,6 @@ test "alignment of wrapping an error union payload" {...@@ -807,7 +795,6 @@ test "alignment of wrapping an error union payload" {
807}795}
808796
809test "compare error union and error set" {797test "compare error union and error set" {
810 if (builtin.zig_backend == .stage1) return error.SkipZigTest;
811 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;798 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;
812799
813 var a: anyerror = error.Foo;800 var a: anyerror = error.Foo;
...@@ -857,8 +844,6 @@ test "error from comptime string" {...@@ -857,8 +844,6 @@ test "error from comptime string" {
857}844}
858845
859test "field access of anyerror results in smaller error set" {846test "field access of anyerror results in smaller error set" {
860 if (builtin.zig_backend == .stage1) return error.SkipZigTest;
861
862 const E1 = @TypeOf(error.Foo);847 const E1 = @TypeOf(error.Foo);
863 try expect(@TypeOf(E1.Foo) == E1);848 try expect(@TypeOf(E1.Foo) == E1);
864 const E2 = error{ A, B, C };849 const E2 = error{ A, B, C };
test/behavior/eval.zig+9-21
...@@ -606,15 +606,16 @@ fn assertEqualPtrs(ptr1: *const u8, ptr2: *const u8) !void {...@@ -606,15 +606,16 @@ fn assertEqualPtrs(ptr1: *const u8, ptr2: *const u8) !void {
606606
607// This one is still up for debate in the language specification.607// This one is still up for debate in the language specification.
608// Application code should not rely on this behavior until it is solidified.608// Application code should not rely on this behavior until it is solidified.
609// Currently, stage1 has special case code to make this pass for string literals609// Historically, stage1 had special case code to make this pass for string literals
610// but it does not work if the values are constructed with comptime code, or if610// but it did not work if the values are constructed with comptime code, or if
611// arrays of non-u8 elements are used instead.611// arrays of non-u8 elements are used instead.
612// The official language specification might not make this guarantee. However, if612// The official language specification might not make this guarantee. However, if
613// it does make this guarantee, it will make it consistently for all types, not613// it does make this guarantee, it will make it consistently for all types, not
614// only string literals. This is why stage2 currently has a string table for614// only string literals. This is why Zig currently has a string table for
615// string literals, to match stage1 and pass this test, however the end-game once615// string literals, to match legacy stage1 behavior and pass this test, however
616// the lang spec issue is settled would be to use a global InternPool for comptime616// the end-game once the lang spec issue is settled would be to use a global
617// memoized objects, making this behavior consistent across all types.617// InternPool for comptime memoized objects, making this behavior consistent
618// across all types.
618test "string literal used as comptime slice is memoized" {619test "string literal used as comptime slice is memoized" {
619 const a = "link";620 const a = "link";
620 const b = "link";621 const b = "link";
...@@ -742,7 +743,6 @@ fn scalar(x: u32) u32 {...@@ -742,7 +743,6 @@ fn scalar(x: u32) u32 {
742}743}
743744
744test "array concatenation peer resolves element types - value" {745test "array concatenation peer resolves element types - value" {
745 if (builtin.zig_backend == .stage1) return error.SkipZigTest;
746 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest;746 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest;
747 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;747 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;
748748
...@@ -758,7 +758,6 @@ test "array concatenation peer resolves element types - value" {...@@ -758,7 +758,6 @@ test "array concatenation peer resolves element types - value" {
758}758}
759759
760test "array concatenation peer resolves element types - pointer" {760test "array concatenation peer resolves element types - pointer" {
761 if (builtin.zig_backend == .stage1) return error.SkipZigTest;
762 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest;761 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest;
763 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;762 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;
764763
...@@ -774,7 +773,6 @@ test "array concatenation peer resolves element types - pointer" {...@@ -774,7 +773,6 @@ test "array concatenation peer resolves element types - pointer" {
774}773}
775774
776test "array concatenation sets the sentinel - value" {775test "array concatenation sets the sentinel - value" {
777 if (builtin.zig_backend == .stage1) return error.SkipZigTest;
778 if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest;776 if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest;
779 if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest;777 if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest;
780 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest;778 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest;
...@@ -794,7 +792,6 @@ test "array concatenation sets the sentinel - value" {...@@ -794,7 +792,6 @@ test "array concatenation sets the sentinel - value" {
794}792}
795793
796test "array concatenation sets the sentinel - pointer" {794test "array concatenation sets the sentinel - pointer" {
797 if (builtin.zig_backend == .stage1) return error.SkipZigTest;
798 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;795 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;
799796
800 var a = [2]u3{ 1, 7 };797 var a = [2]u3{ 1, 7 };
...@@ -811,7 +808,6 @@ test "array concatenation sets the sentinel - pointer" {...@@ -811,7 +808,6 @@ test "array concatenation sets the sentinel - pointer" {
811}808}
812809
813test "array multiplication sets the sentinel - value" {810test "array multiplication sets the sentinel - value" {
814 if (builtin.zig_backend == .stage1) return error.SkipZigTest;
815 if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest;811 if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest;
816 if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest;812 if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest;
817 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest;813 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest;
...@@ -829,7 +825,6 @@ test "array multiplication sets the sentinel - value" {...@@ -829,7 +825,6 @@ test "array multiplication sets the sentinel - value" {
829}825}
830826
831test "array multiplication sets the sentinel - pointer" {827test "array multiplication sets the sentinel - pointer" {
832 if (builtin.zig_backend == .stage1) return error.SkipZigTest;
833 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest;828 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest;
834 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;829 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;
835830
...@@ -894,8 +889,6 @@ test "const type-annotated local initialized with function call has correct type...@@ -894,8 +889,6 @@ test "const type-annotated local initialized with function call has correct type
894}889}
895890
896test "comptime pointer load through elem_ptr" {891test "comptime pointer load through elem_ptr" {
897 if (builtin.zig_backend == .stage1) return error.SkipZigTest; // stage1 fails this test
898
899 const S = struct {892 const S = struct {
900 x: usize,893 x: usize,
901 };894 };
...@@ -1038,7 +1031,6 @@ test "comptime break operand passing through runtime condition converted to runt...@@ -1038,7 +1031,6 @@ test "comptime break operand passing through runtime condition converted to runt
1038}1031}
10391032
1040test "comptime break operand passing through runtime switch converted to runtime break" {1033test "comptime break operand passing through runtime switch converted to runtime break" {
1041 if (builtin.zig_backend == .stage1) return error.SkipZigTest;
1042 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO1034 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
10431035
1044 const S = struct {1036 const S = struct {
...@@ -1294,8 +1286,6 @@ test "repeated value is correctly expanded" {...@@ -1294,8 +1286,6 @@ test "repeated value is correctly expanded" {
1294}1286}
12951287
1296test "value in if block is comptime-known" {1288test "value in if block is comptime-known" {
1297 if (builtin.zig_backend == .stage1) return error.SkipZigTest;
1298
1299 const first = blk: {1289 const first = blk: {
1300 const s = if (false) "a" else "b";1290 const s = if (false) "a" else "b";
1301 break :blk "foo" ++ s;1291 break :blk "foo" ++ s;
...@@ -1330,8 +1320,6 @@ test "lazy value is resolved as slice operand" {...@@ -1330,8 +1320,6 @@ test "lazy value is resolved as slice operand" {
1330}1320}
13311321
1332test "break from inline loop depends on runtime condition" {1322test "break from inline loop depends on runtime condition" {
1333 if (builtin.zig_backend == .stage1) return error.SkipZigTest;
1334
1335 const S = struct {1323 const S = struct {
1336 fn foo(a: u8) bool {1324 fn foo(a: u8) bool {
1337 return a == 4;1325 return a == 4;
...@@ -1405,7 +1393,7 @@ test "length of global array is determinable at comptime" {...@@ -1405,7 +1393,7 @@ test "length of global array is determinable at comptime" {
14051393
1406test "continue nested inline for loop" {1394test "continue nested inline for loop" {
1407 // TODO: https://github.com/ziglang/zig/issues/131751395 // TODO: https://github.com/ziglang/zig/issues/13175
1408 if (builtin.zig_backend != .stage1) return error.SkipZigTest;1396 if (true) return error.SkipZigTest;
14091397
1410 var a: u8 = 0;1398 var a: u8 = 0;
1411 loop: inline for ([_]u8{ 1, 2 }) |x| {1399 loop: inline for ([_]u8{ 1, 2 }) |x| {
...@@ -1422,7 +1410,7 @@ test "continue nested inline for loop" {...@@ -1422,7 +1410,7 @@ test "continue nested inline for loop" {
14221410
1423test "continue nested inline for loop in named block expr" {1411test "continue nested inline for loop in named block expr" {
1424 // TODO: https://github.com/ziglang/zig/issues/131751412 // TODO: https://github.com/ziglang/zig/issues/13175
1425 if (builtin.zig_backend != .stage1) return error.SkipZigTest;1413 if (true) return error.SkipZigTest;
14261414
1427 var a: u8 = 0;1415 var a: u8 = 0;
1428 loop: inline for ([_]u8{ 1, 2 }) |x| {1416 loop: inline for ([_]u8{ 1, 2 }) |x| {
test/behavior/floatop.zig+1-15
...@@ -114,7 +114,7 @@ fn testSqrt() !void {...@@ -114,7 +114,7 @@ fn testSqrt() !void {
114 try expect(math.approxEqAbs(f32, @sqrt(@as(f32, 1.1)), 1.0488088481701516, epsilon));114 try expect(math.approxEqAbs(f32, @sqrt(@as(f32, 1.1)), 1.0488088481701516, epsilon));
115 try expect(math.approxEqAbs(f32, @sqrt(@as(f32, 2.0)), 1.4142135623730950, epsilon));115 try expect(math.approxEqAbs(f32, @sqrt(@as(f32, 2.0)), 1.4142135623730950, epsilon));
116116
117 if (builtin.zig_backend == .stage1) {117 if (false) {
118 if (has_f80_rt) {118 if (has_f80_rt) {
119 // TODO https://github.com/ziglang/zig/issues/10875119 // TODO https://github.com/ziglang/zig/issues/10875
120 if (builtin.os.tag != .freebsd) {120 if (builtin.os.tag != .freebsd) {
...@@ -181,10 +181,6 @@ test "more @sqrt f16 tests" {...@@ -181,10 +181,6 @@ test "more @sqrt f16 tests" {
181}181}
182182
183test "@sin" {183test "@sin" {
184 if (builtin.zig_backend == .stage1) {
185 // stage1 emits an incorrect compile error for `@as(ty, std.math.pi / 2)`
186 return error.SkipZigTest;
187 }
188 if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest; // TODO184 if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest; // TODO
189 if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO185 if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO
190 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO186 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
...@@ -205,7 +201,6 @@ fn testSin() !void {...@@ -205,7 +201,6 @@ fn testSin() !void {
205}201}
206202
207test "@sin with vectors" {203test "@sin with vectors" {
208 if (builtin.zig_backend == .stage1) return error.SkipZigTest;
209 if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest; // TODO204 if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest; // TODO
210 if (builtin.zig_backend == .stage2_c) return error.SkipZigTest; // TODO205 if (builtin.zig_backend == .stage2_c) return error.SkipZigTest; // TODO
211 if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO206 if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO
...@@ -226,10 +221,6 @@ fn testSinWithVectors() !void {...@@ -226,10 +221,6 @@ fn testSinWithVectors() !void {
226}221}
227222
228test "@cos" {223test "@cos" {
229 if (builtin.zig_backend == .stage1) {
230 // stage1 emits an incorrect compile error for `@as(ty, std.math.pi / 2)`
231 return error.SkipZigTest;
232 }
233 if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest; // TODO224 if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest; // TODO
234 if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO225 if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO
235 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO226 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
...@@ -250,7 +241,6 @@ fn testCos() !void {...@@ -250,7 +241,6 @@ fn testCos() !void {
250}241}
251242
252test "@cos with vectors" {243test "@cos with vectors" {
253 if (builtin.zig_backend == .stage1) return error.SkipZigTest;
254 if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest; // TODO244 if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest; // TODO
255 if (builtin.zig_backend == .stage2_c) return error.SkipZigTest; // TODO245 if (builtin.zig_backend == .stage2_c) return error.SkipZigTest; // TODO
256 if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO246 if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO
...@@ -781,7 +771,6 @@ test "f128 at compile time is lossy" {...@@ -781,7 +771,6 @@ test "f128 at compile time is lossy" {
781}771}
782772
783test "comptime fixed-width float zero divided by zero produces NaN" {773test "comptime fixed-width float zero divided by zero produces NaN" {
784 if (builtin.zig_backend == .stage1) return error.SkipZigTest;
785 if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest; // TODO774 if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest; // TODO
786 if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO775 if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO
787 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO776 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
...@@ -793,7 +782,6 @@ test "comptime fixed-width float zero divided by zero produces NaN" {...@@ -793,7 +782,6 @@ test "comptime fixed-width float zero divided by zero produces NaN" {
793}782}
794783
795test "comptime fixed-width float non-zero divided by zero produces signed Inf" {784test "comptime fixed-width float non-zero divided by zero produces signed Inf" {
796 if (builtin.zig_backend == .stage1) return error.SkipZigTest;
797 if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest; // TODO785 if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest; // TODO
798 if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO786 if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO
799 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO787 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
...@@ -810,8 +798,6 @@ test "comptime fixed-width float non-zero divided by zero produces signed Inf" {...@@ -810,8 +798,6 @@ test "comptime fixed-width float non-zero divided by zero produces signed Inf" {
810}798}
811799
812test "comptime_float zero divided by zero produces zero" {800test "comptime_float zero divided by zero produces zero" {
813 if (builtin.zig_backend == .stage1) return error.SkipZigTest;
814
815 try expect((0.0 / 0.0) == 0.0);801 try expect((0.0 / 0.0) == 0.0);
816}802}
817803
test/behavior/fn.zig-10
...@@ -68,8 +68,6 @@ fn outer(y: u32) *const fn (u32) u32 {...@@ -68,8 +68,6 @@ fn outer(y: u32) *const fn (u32) u32 {
68}68}
6969
70test "return inner function which references comptime variable of outer function" {70test "return inner function which references comptime variable of outer function" {
71 if (builtin.zig_backend == .stage1) return error.SkipZigTest;
72
73 var func = outer(10);71 var func = outer(10);
74 try expect(func(3) == 7);72 try expect(func(3) == 7);
75}73}
...@@ -97,7 +95,6 @@ test "discard the result of a function that returns a struct" {...@@ -97,7 +95,6 @@ test "discard the result of a function that returns a struct" {
97}95}
9896
99test "inline function call that calls optional function pointer, return pointer at callsite interacts correctly with callsite return type" {97test "inline function call that calls optional function pointer, return pointer at callsite interacts correctly with callsite return type" {
100 if (builtin.zig_backend == .stage1) return error.SkipZigTest;
101 if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest;98 if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest;
102 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest;99 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest;
103 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;100 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;
...@@ -145,7 +142,6 @@ fn fnWithUnreachable() noreturn {...@@ -145,7 +142,6 @@ fn fnWithUnreachable() noreturn {
145}142}
146143
147test "extern struct with stdcallcc fn pointer" {144test "extern struct with stdcallcc fn pointer" {
148 if (builtin.zig_backend == .stage1) return error.SkipZigTest;
149 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest;145 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest;
150 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;146 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;
151147
...@@ -293,11 +289,6 @@ fn acceptsString(foo: []u8) void {...@@ -293,11 +289,6 @@ fn acceptsString(foo: []u8) void {
293}289}
294290
295test "function pointers" {291test "function pointers" {
296 if (builtin.zig_backend == .stage1) {
297 // stage1 has wrong semantics for function pointers
298 return error.SkipZigTest;
299 }
300
301 if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO292 if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO
302 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO293 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
303 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO294 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
...@@ -415,7 +406,6 @@ test "import passed byref to function in return type" {...@@ -415,7 +406,6 @@ test "import passed byref to function in return type" {
415}406}
416407
417test "implicit cast function to function ptr" {408test "implicit cast function to function ptr" {
418 if (builtin.zig_backend == .stage1) return error.SkipZigTest;
419 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO409 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
420 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO410 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
421 if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest; // TODO411 if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest; // TODO
test/behavior/generics.zig+2-4
...@@ -21,8 +21,8 @@ test "simple generic fn" {...@@ -21,8 +21,8 @@ test "simple generic fn" {
2121
22 try expect(max(i32, 3, -1) == 3);22 try expect(max(i32, 3, -1) == 3);
23 try expect(max(u8, 1, 100) == 100);23 try expect(max(u8, 1, 100) == 100);
24 if (builtin.zig_backend == .stage1) {24 if (false) {
25 // TODO: stage2 is incorrectly emitting the following:25 // TODO: zig is incorrectly emitting the following:
26 // error: cast of value 1.23e-01 to type 'f32' loses information26 // error: cast of value 1.23e-01 to type 'f32' loses information
27 try expect(max(f32, 0.123, 0.456) == 0.456);27 try expect(max(f32, 0.123, 0.456) == 0.456);
28 }28 }
...@@ -342,8 +342,6 @@ test "generic instantiation of tagged union with only one field" {...@@ -342,8 +342,6 @@ test "generic instantiation of tagged union with only one field" {
342}342}
343343
344test "nested generic function" {344test "nested generic function" {
345 if (builtin.zig_backend == .stage1) return error.SkipZigTest;
346
347 const S = struct {345 const S = struct {
348 fn foo(comptime T: type, callback: *const fn (user_data: T) anyerror!void, data: T) anyerror!void {346 fn foo(comptime T: type, callback: *const fn (user_data: T) anyerror!void, data: T) anyerror!void {
349 try callback(data);347 try callback(data);
test/behavior/int128.zig+2-2
...@@ -29,8 +29,8 @@ test "undefined 128 bit int" {...@@ -29,8 +29,8 @@ test "undefined 128 bit int" {
2929
30 @setRuntimeSafety(true);30 @setRuntimeSafety(true);
3131
32 // TODO implement @setRuntimeSafety in stage232 // TODO implement @setRuntimeSafety
33 if (builtin.zig_backend != .stage1 and builtin.mode != .Debug and builtin.mode != .ReleaseSafe) {33 if (builtin.mode != .Debug and builtin.mode != .ReleaseSafe) {
34 return error.SkipZigTest;34 return error.SkipZigTest;
35 }35 }
3636
test/behavior/inttoptr.zig-2
...@@ -1,8 +1,6 @@...@@ -1,8 +1,6 @@
1const builtin = @import("builtin");1const builtin = @import("builtin");
22
3test "casting integer address to function pointer" {3test "casting integer address to function pointer" {
4 if (builtin.zig_backend == .stage1) return error.SkipZigTest;
5
6 addressToFunction();4 addressToFunction();
7 comptime addressToFunction();5 comptime addressToFunction();
8}6}
test/behavior/math.zig+4-13
...@@ -94,7 +94,6 @@ fn testOneClz(comptime T: type, x: T) u32 {...@@ -94,7 +94,6 @@ fn testOneClz(comptime T: type, x: T) u32 {
94}94}
9595
96test "@clz vectors" {96test "@clz vectors" {
97 if (builtin.zig_backend == .stage1) return error.SkipZigTest;
98 if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest; // TODO97 if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest; // TODO
99 if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO98 if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO
100 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO99 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
...@@ -156,7 +155,6 @@ fn testOneCtz(comptime T: type, x: T) u32 {...@@ -156,7 +155,6 @@ fn testOneCtz(comptime T: type, x: T) u32 {
156}155}
157156
158test "@ctz vectors" {157test "@ctz vectors" {
159 if (builtin.zig_backend == .stage1) return error.SkipZigTest;
160 if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest; // TODO158 if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest; // TODO
161 if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO159 if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO
162 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO160 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
...@@ -971,8 +969,6 @@ test "overflow arithmetic with u0 values" {...@@ -971,8 +969,6 @@ test "overflow arithmetic with u0 values" {
971}969}
972970
973test "allow signed integer division/remainder when values are comptime-known and positive or exact" {971test "allow signed integer division/remainder when values are comptime-known and positive or exact" {
974 if (builtin.zig_backend == .stage1) return error.SkipZigTest;
975
976 try expect(5 / 3 == 1);972 try expect(5 / 3 == 1);
977 try expect(-5 / -3 == 1);973 try expect(-5 / -3 == 1);
978 try expect(-6 / 3 == -2);974 try expect(-6 / 3 == -2);
...@@ -1009,14 +1005,8 @@ test "quad hex float literal parsing accurate" {...@@ -1009,14 +1005,8 @@ test "quad hex float literal parsing accurate" {
1009 try expect(@bitCast(u128, f) == 0x40042eab345678439abcdefea5678234);1005 try expect(@bitCast(u128, f) == 0x40042eab345678439abcdefea5678234);
1010 }1006 }
1011 {1007 {
1012 // TODO: modify stage1/parse_f128.c to use round-to-even1008 var f: f128 = 0x1.edcb34a235253948765432134674fp-1;
1013 if (builtin.zig_backend == .stage1) {1009 try expect(@bitCast(u128, f) == 0x3ffeedcb34a235253948765432134675); // round-to-even
1014 var f: f128 = 0x1.edcb34a235253948765432134674fp-1;
1015 try expect(@bitCast(u128, f) == 0x3ffeedcb34a235253948765432134674); // round-down
1016 } else {
1017 var f: f128 = 0x1.edcb34a235253948765432134674fp-1;
1018 try expect(@bitCast(u128, f) == 0x3ffeedcb34a235253948765432134675); // round-to-even
1019 }
1020 }1010 }
1021 {1011 {
1022 var f: f128 = 0x1.353e45674d89abacc3a2ebf3ff4ffp-50;1012 var f: f128 = 0x1.353e45674d89abacc3a2ebf3ff4ffp-50;
...@@ -1270,7 +1260,8 @@ test "@sqrt" {...@@ -1270,7 +1260,8 @@ test "@sqrt" {
1270 try testSqrt(f16, 13.0);1260 try testSqrt(f16, 13.0);
1271 comptime try testSqrt(f16, 13.0);1261 comptime try testSqrt(f16, 13.0);
12721262
1273 if (builtin.zig_backend == .stage1) {1263 // TODO: make this pass
1264 if (false) {
1274 const x = 14.0;1265 const x = 14.0;
1275 const y = x * x;1266 const y = x * x;
1276 const z = @sqrt(y);1267 const z = @sqrt(y);
test/behavior/member_func.zig-2
...@@ -27,7 +27,6 @@ const HasFuncs = struct {...@@ -27,7 +27,6 @@ const HasFuncs = struct {
27};27};
2828
29test "standard field calls" {29test "standard field calls" {
30 if (builtin.zig_backend == .stage1) return error.SkipZigTest;
31 if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest;30 if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest;
32 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest;31 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest;
33 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;32 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;
...@@ -71,7 +70,6 @@ test "standard field calls" {...@@ -71,7 +70,6 @@ test "standard field calls" {
71}70}
7271
73test "@field field calls" {72test "@field field calls" {
74 if (builtin.zig_backend == .stage1) return error.SkipZigTest;
75 if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest;73 if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest;
76 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest;74 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest;
77 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;75 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;
test/behavior/muladd.zig-6
...@@ -47,7 +47,6 @@ test "@mulAdd f80" {...@@ -47,7 +47,6 @@ test "@mulAdd f80" {
47 if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO47 if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO
48 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO48 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
49 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO49 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
50 if (builtin.zig_backend == .stage1) return error.SkipZigTest;
51 if (builtin.zig_backend == .stage2_llvm and builtin.os.tag == .windows) return error.SkipZigTest; // https://github.com/ziglang/zig/issues/1260250 if (builtin.zig_backend == .stage2_llvm and builtin.os.tag == .windows) return error.SkipZigTest; // https://github.com/ziglang/zig/issues/12602
5251
53 comptime try testMulAdd80();52 comptime try testMulAdd80();
...@@ -91,7 +90,6 @@ fn vector16() !void {...@@ -91,7 +90,6 @@ fn vector16() !void {
91}90}
9291
93test "vector f16" {92test "vector f16" {
94 if (builtin.zig_backend == .stage1) return error.SkipZigTest;
95 if (builtin.zig_backend == .stage2_c) return error.SkipZigTest; // TODO93 if (builtin.zig_backend == .stage2_c) return error.SkipZigTest; // TODO
96 if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest; // TODO94 if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest; // TODO
97 if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO95 if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO
...@@ -115,7 +113,6 @@ fn vector32() !void {...@@ -115,7 +113,6 @@ fn vector32() !void {
115}113}
116114
117test "vector f32" {115test "vector f32" {
118 if (builtin.zig_backend == .stage1) return error.SkipZigTest;
119 if (builtin.zig_backend == .stage2_c) return error.SkipZigTest; // TODO116 if (builtin.zig_backend == .stage2_c) return error.SkipZigTest; // TODO
120 if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest; // TODO117 if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest; // TODO
121 if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO118 if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO
...@@ -139,7 +136,6 @@ fn vector64() !void {...@@ -139,7 +136,6 @@ fn vector64() !void {
139}136}
140137
141test "vector f64" {138test "vector f64" {
142 if (builtin.zig_backend == .stage1) return error.SkipZigTest;
143 if (builtin.zig_backend == .stage2_c) return error.SkipZigTest; // TODO139 if (builtin.zig_backend == .stage2_c) return error.SkipZigTest; // TODO
144 if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest; // TODO140 if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest; // TODO
145 if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO141 if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO
...@@ -162,7 +158,6 @@ fn vector80() !void {...@@ -162,7 +158,6 @@ fn vector80() !void {
162}158}
163159
164test "vector f80" {160test "vector f80" {
165 if (builtin.zig_backend == .stage1) return error.SkipZigTest;
166 if (builtin.zig_backend == .stage2_c) return error.SkipZigTest; // TODO161 if (builtin.zig_backend == .stage2_c) return error.SkipZigTest; // TODO
167 if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest; // TODO162 if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest; // TODO
168 if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO163 if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO
...@@ -187,7 +182,6 @@ fn vector128() !void {...@@ -187,7 +182,6 @@ fn vector128() !void {
187}182}
188183
189test "vector f128" {184test "vector f128" {
190 if (builtin.zig_backend == .stage1) return error.SkipZigTest;
191 if (builtin.zig_backend == .stage2_c) return error.SkipZigTest; // TODO185 if (builtin.zig_backend == .stage2_c) return error.SkipZigTest; // TODO
192 if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest; // TODO186 if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest; // TODO
193 if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO187 if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO
test/behavior/optional.zig-5
...@@ -377,8 +377,6 @@ const NoReturn = struct {...@@ -377,8 +377,6 @@ const NoReturn = struct {
377};377};
378378
379test "optional of noreturn used with if" {379test "optional of noreturn used with if" {
380 if (builtin.zig_backend == .stage1) return error.SkipZigTest;
381
382 NoReturn.a = 64;380 NoReturn.a = 64;
383 if (NoReturn.loop()) |_| {381 if (NoReturn.loop()) |_| {
384 @compileError("bad");382 @compileError("bad");
...@@ -388,8 +386,6 @@ test "optional of noreturn used with if" {...@@ -388,8 +386,6 @@ test "optional of noreturn used with if" {
388}386}
389387
390test "optional of noreturn used with orelse" {388test "optional of noreturn used with orelse" {
391 if (builtin.zig_backend == .stage1) return error.SkipZigTest;
392
393 NoReturn.a = 64;389 NoReturn.a = 64;
394 const val = NoReturn.testOrelse();390 const val = NoReturn.testOrelse();
395 try expect(val == 123);391 try expect(val == 123);
...@@ -419,7 +415,6 @@ test "alignment of wrapping an optional payload" {...@@ -419,7 +415,6 @@ test "alignment of wrapping an optional payload" {
419}415}
420416
421test "Optional slice size is optimized" {417test "Optional slice size is optimized" {
422 if (builtin.zig_backend == .stage1) return error.SkipZigTest;
423 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;418 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;
424 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest;419 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest;
425 if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest;420 if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest;
test/behavior/packed-struct.zig-38
...@@ -5,38 +5,7 @@ const expect = std.testing.expect;...@@ -5,38 +5,7 @@ const expect = std.testing.expect;
5const expectEqual = std.testing.expectEqual;5const expectEqual = std.testing.expectEqual;
6const native_endian = builtin.cpu.arch.endian();6const native_endian = builtin.cpu.arch.endian();
77
8test "correct size of packed structs" {
9 // Stage2 has different packed struct semantics.
10 if (builtin.zig_backend != .stage1) return error.SkipZigTest;
11 const T1 = packed struct { one: u8, three: [3]u8 };
12
13 try expectEqual(4, @sizeOf(T1));
14 try expectEqual(4 * 8, @bitSizeOf(T1));
15
16 const T2 = packed struct { three: [3]u8, one: u8 };
17
18 try expectEqual(4, @sizeOf(T2));
19 try expectEqual(4 * 8, @bitSizeOf(T2));
20
21 const T3 = packed struct { _1: u1, x: u7, _: u24 };
22
23 try expectEqual(4, @sizeOf(T3));
24 try expectEqual(4 * 8, @bitSizeOf(T3));
25
26 const T4 = packed struct { _1: u1, x: u7, _2: u8, _3: u16 };
27
28 try expectEqual(4, @sizeOf(T4));
29 try expectEqual(4 * 8, @bitSizeOf(T4));
30
31 const T5 = packed struct { _1: u1, x: u7, _2: u16, _3: u8 };
32
33 try expectEqual(4, @sizeOf(T5));
34 try expectEqual(4 * 8, @bitSizeOf(T5));
35}
36
37test "flags in packed structs" {8test "flags in packed structs" {
38 if (builtin.zig_backend == .stage1) return error.SkipZigTest;
39
40 const Flags1 = packed struct {9 const Flags1 = packed struct {
41 // first 8 bits10 // first 8 bits
42 b0_0: u1,11 b0_0: u1,
...@@ -121,8 +90,6 @@ test "flags in packed structs" {...@@ -121,8 +90,6 @@ test "flags in packed structs" {
121}90}
12291
123test "consistent size of packed structs" {92test "consistent size of packed structs" {
124 if (builtin.zig_backend == .stage1) return error.SkipZigTest;
125
126 const TxData1 = packed struct { data: u8, _23: u23, full: bool = false };93 const TxData1 = packed struct { data: u8, _23: u23, full: bool = false };
127 const TxData2 = packed struct { data: u9, _22: u22, full: bool = false };94 const TxData2 = packed struct { data: u9, _22: u22, full: bool = false };
12895
...@@ -149,7 +116,6 @@ test "consistent size of packed structs" {...@@ -149,7 +116,6 @@ test "consistent size of packed structs" {
149}116}
150117
151test "correct sizeOf and offsets in packed structs" {118test "correct sizeOf and offsets in packed structs" {
152 if (builtin.zig_backend == .stage1) return error.SkipZigTest;
153 if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO119 if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO
154 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO120 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
155 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO121 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
...@@ -218,7 +184,6 @@ test "correct sizeOf and offsets in packed structs" {...@@ -218,7 +184,6 @@ test "correct sizeOf and offsets in packed structs" {
218}184}
219185
220test "nested packed structs" {186test "nested packed structs" {
221 if (builtin.zig_backend == .stage1) return error.SkipZigTest;
222 if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO187 if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO
223 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO188 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
224 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO189 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
...@@ -285,7 +250,6 @@ test "regular in irregular packed struct" {...@@ -285,7 +250,6 @@ test "regular in irregular packed struct" {
285}250}
286251
287test "byte-aligned field pointer offsets" {252test "byte-aligned field pointer offsets" {
288 if (builtin.zig_backend == .stage1) return error.SkipZigTest;
289 if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest;253 if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest;
290 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;254 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;
291 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest;255 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest;
...@@ -387,7 +351,6 @@ test "byte-aligned field pointer offsets" {...@@ -387,7 +351,6 @@ test "byte-aligned field pointer offsets" {
387}351}
388352
389test "load pointer from packed struct" {353test "load pointer from packed struct" {
390 if (builtin.zig_backend == .stage1) return error.SkipZigTest;
391 if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest;354 if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest;
392 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;355 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;
393 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest;356 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest;
...@@ -571,7 +534,6 @@ test "runtime init of unnamed packed struct type" {...@@ -571,7 +534,6 @@ test "runtime init of unnamed packed struct type" {
571}534}
572535
573test "packed struct passed to callconv(.C) function" {536test "packed struct passed to callconv(.C) function" {
574 if (builtin.zig_backend == .stage1) return error.SkipZigTest;
575 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;537 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;
576 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest;538 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest;
577 if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest;539 if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest;
test/behavior/packed_struct_explicit_backing_int.zig-1
...@@ -5,7 +5,6 @@ const expectEqual = std.testing.expectEqual;...@@ -5,7 +5,6 @@ const expectEqual = std.testing.expectEqual;
5const native_endian = builtin.cpu.arch.endian();5const native_endian = builtin.cpu.arch.endian();
66
7test "packed struct explicit backing integer" {7test "packed struct explicit backing integer" {
8 assert(builtin.zig_backend != .stage1);
9 if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest; // TODO8 if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest; // TODO
10 if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO9 if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO
11 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO10 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
test/behavior/pointers.zig-3
...@@ -135,9 +135,6 @@ test "peer type resolution with C pointers" {...@@ -135,9 +135,6 @@ test "peer type resolution with C pointers" {
135}135}
136136
137test "peer type resolution with C pointer and const pointer" {137test "peer type resolution with C pointer and const pointer" {
138 // stage1 incorrectly resolves to [*]u8
139 if (builtin.zig_backend == .stage1) return error.SkipZigTest;
140
141 var ptr_c: [*c]u8 = undefined;138 var ptr_c: [*c]u8 = undefined;
142 const ptr_const: u8 = undefined;139 const ptr_const: u8 = undefined;
143 try expect(@TypeOf(ptr_c, &ptr_const) == [*c]const u8);140 try expect(@TypeOf(ptr_c, &ptr_const) == [*c]const u8);
test/behavior/popcount.zig-1
...@@ -65,7 +65,6 @@ fn testPopCountIntegers() !void {...@@ -65,7 +65,6 @@ fn testPopCountIntegers() !void {
65}65}
6666
67test "@popCount vectors" {67test "@popCount vectors" {
68 if (builtin.zig_backend == .stage1) return error.SkipZigTest;
69 if (builtin.zig_backend == .stage2_c) return error.SkipZigTest; // TODO68 if (builtin.zig_backend == .stage2_c) return error.SkipZigTest; // TODO
70 if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest; // TODO69 if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest; // TODO
71 if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO70 if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO
test/behavior/ptrcast.zig-7
...@@ -20,7 +20,6 @@ fn testReinterpretBytesAsInteger() !void {...@@ -20,7 +20,6 @@ fn testReinterpretBytesAsInteger() !void {
20}20}
2121
22test "reinterpret an array over multiple elements, with no well-defined layout" {22test "reinterpret an array over multiple elements, with no well-defined layout" {
23 if (builtin.zig_backend == .stage1) return error.SkipZigTest;
24 if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO23 if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO
25 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO24 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
26 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO25 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
...@@ -77,8 +76,6 @@ fn testReinterpretBytesAsExternStruct() !void {...@@ -77,8 +76,6 @@ fn testReinterpretBytesAsExternStruct() !void {
77}76}
7877
79test "reinterpret bytes of an extern struct (with under-aligned fields) into another" {78test "reinterpret bytes of an extern struct (with under-aligned fields) into another" {
80 if (builtin.zig_backend == .stage1) return error.SkipZigTest;
81
82 try testReinterpretExternStructAsExternStruct();79 try testReinterpretExternStructAsExternStruct();
83 comptime try testReinterpretExternStructAsExternStruct();80 comptime try testReinterpretExternStructAsExternStruct();
84}81}
...@@ -101,8 +98,6 @@ fn testReinterpretExternStructAsExternStruct() !void {...@@ -101,8 +98,6 @@ fn testReinterpretExternStructAsExternStruct() !void {
101}98}
10299
103test "reinterpret bytes of an extern struct into another" {100test "reinterpret bytes of an extern struct into another" {
104 if (builtin.zig_backend == .stage1) return error.SkipZigTest;
105
106 try testReinterpretOverAlignedExternStructAsExternStruct();101 try testReinterpretOverAlignedExternStructAsExternStruct();
107 comptime try testReinterpretOverAlignedExternStructAsExternStruct();102 comptime try testReinterpretOverAlignedExternStructAsExternStruct();
108}103}
...@@ -127,7 +122,6 @@ fn testReinterpretOverAlignedExternStructAsExternStruct() !void {...@@ -127,7 +122,6 @@ fn testReinterpretOverAlignedExternStructAsExternStruct() !void {
127}122}
128123
129test "lower reinterpreted comptime field ptr (with under-aligned fields)" {124test "lower reinterpreted comptime field ptr (with under-aligned fields)" {
130 if (builtin.zig_backend == .stage1) return error.SkipZigTest;
131 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO125 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
132 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO126 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
133 if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO127 if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO
...@@ -151,7 +145,6 @@ test "lower reinterpreted comptime field ptr (with under-aligned fields)" {...@@ -151,7 +145,6 @@ test "lower reinterpreted comptime field ptr (with under-aligned fields)" {
151}145}
152146
153test "lower reinterpreted comptime field ptr" {147test "lower reinterpreted comptime field ptr" {
154 if (builtin.zig_backend == .stage1) return error.SkipZigTest;
155 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO148 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
156 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO149 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
157 if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO150 if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO
test/behavior/saturating_arithmetic.zig-4
...@@ -149,10 +149,6 @@ test "saturating multiplication" {...@@ -149,10 +149,6 @@ test "saturating multiplication" {
149 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO149 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
150 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO150 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
151151
152 if (builtin.zig_backend == .stage1 and builtin.cpu.arch == .wasm32) {
153 // https://github.com/ziglang/zig/issues/9660
154 return error.SkipZigTest;
155 }
156 if (builtin.zig_backend == .stage2_llvm and builtin.cpu.arch == .wasm32) {152 if (builtin.zig_backend == .stage2_llvm and builtin.cpu.arch == .wasm32) {
157 // https://github.com/ziglang/zig/issues/9660153 // https://github.com/ziglang/zig/issues/9660
158 return error.SkipZigTest;154 return error.SkipZigTest;
test/behavior/select.zig-1
...@@ -32,7 +32,6 @@ fn selectVectors() !void {...@@ -32,7 +32,6 @@ fn selectVectors() !void {
32}32}
3333
34test "@select arrays" {34test "@select arrays" {
35 if (builtin.zig_backend == .stage1) return error.SkipZigTest; // TODO
36 if (builtin.zig_backend == .stage2_c) return error.SkipZigTest; // TODO35 if (builtin.zig_backend == .stage2_c) return error.SkipZigTest; // TODO
37 if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest; // TODO36 if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest; // TODO
38 if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO37 if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO
test/behavior/shuffle.zig+1-1
...@@ -71,7 +71,7 @@ test "@shuffle bool 2" {...@@ -71,7 +71,7 @@ test "@shuffle bool 2" {
71 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO71 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
72 if (builtin.zig_backend == .stage2_c) return error.SkipZigTest; // TODO72 if (builtin.zig_backend == .stage2_c) return error.SkipZigTest; // TODO
7373
74 if (builtin.zig_backend == .stage1 or builtin.zig_backend == .stage2_llvm) {74 if (builtin.zig_backend == .stage2_llvm) {
75 // https://github.com/ziglang/zig/issues/324675 // https://github.com/ziglang/zig/issues/3246
76 return error.SkipZigTest;76 return error.SkipZigTest;
77 }77 }
test/behavior/sizeof_and_typeof.zig-53
...@@ -101,52 +101,6 @@ test "@offsetOf" {...@@ -101,52 +101,6 @@ test "@offsetOf" {
101 try expect(@ptrToInt(&a.i) - @ptrToInt(&a) == @offsetOf(A, "i"));101 try expect(@ptrToInt(&a.i) - @ptrToInt(&a) == @offsetOf(A, "i"));
102}102}
103103
104test "@offsetOf packed struct, array length not power of 2 or multiple of native pointer width in bytes" {
105 // Stage2 has different packed struct semantics.
106 if (builtin.zig_backend != .stage1) return error.SkipZigTest;
107 const p3a_len = 3;
108 const P3 = packed struct {
109 a: [p3a_len]u8,
110 b: usize,
111 };
112 try std.testing.expect(0 == @offsetOf(P3, "a"));
113 try std.testing.expect(p3a_len == @offsetOf(P3, "b"));
114
115 const p5a_len = 5;
116 const P5 = packed struct {
117 a: [p5a_len]u8,
118 b: usize,
119 };
120 try std.testing.expect(0 == @offsetOf(P5, "a"));
121 try std.testing.expect(p5a_len == @offsetOf(P5, "b"));
122
123 const p6a_len = 6;
124 const P6 = packed struct {
125 a: [p6a_len]u8,
126 b: usize,
127 };
128 try std.testing.expect(0 == @offsetOf(P6, "a"));
129 try std.testing.expect(p6a_len == @offsetOf(P6, "b"));
130
131 const p7a_len = 7;
132 const P7 = packed struct {
133 a: [p7a_len]u8,
134 b: usize,
135 };
136 try std.testing.expect(0 == @offsetOf(P7, "a"));
137 try std.testing.expect(p7a_len == @offsetOf(P7, "b"));
138
139 const p9a_len = 9;
140 const P9 = packed struct {
141 a: [p9a_len]u8,
142 b: usize,
143 };
144 try std.testing.expect(0 == @offsetOf(P9, "a"));
145 try std.testing.expect(p9a_len == @offsetOf(P9, "b"));
146
147 // 10, 11, 12, 13, 14, 15, 17, 18, 19, 20, 21, 22, 23, 25 etc. are further cases
148}
149
150test "@bitOffsetOf" {104test "@bitOffsetOf" {
151 // Packed structs have fixed memory layout105 // Packed structs have fixed memory layout
152 try expect(@bitOffsetOf(P, "a") == 0);106 try expect(@bitOffsetOf(P, "a") == 0);
...@@ -211,8 +165,6 @@ test "branching logic inside @TypeOf" {...@@ -211,8 +165,6 @@ test "branching logic inside @TypeOf" {
211}165}
212166
213test "@bitSizeOf" {167test "@bitSizeOf" {
214 if (builtin.zig_backend == .stage1) return error.SkipZigTest;
215
216 try expect(@bitSizeOf(u2) == 2);168 try expect(@bitSizeOf(u2) == 2);
217 try expect(@bitSizeOf(u8) == @sizeOf(u8) * 8);169 try expect(@bitSizeOf(u8) == @sizeOf(u8) * 8);
218 try expect(@bitSizeOf(struct {170 try expect(@bitSizeOf(struct {
...@@ -224,11 +176,6 @@ test "@bitSizeOf" {...@@ -224,11 +176,6 @@ test "@bitSizeOf" {
224}176}
225177
226test "@sizeOf comparison against zero" {178test "@sizeOf comparison against zero" {
227 if (builtin.zig_backend == .stage1) {
228 // stage1 gets the wrong answer for size of pointers to zero bit types
229 return error.SkipZigTest;
230 }
231
232 const S0 = struct {179 const S0 = struct {
233 f: *@This(),180 f: *@This(),
234 };181 };
test/behavior/slice.zig+4-28
...@@ -182,7 +182,6 @@ test "slicing zero length array" {...@@ -182,7 +182,6 @@ test "slicing zero length array" {
182const x = @intToPtr([*]i32, 0x1000)[0..0x500];182const x = @intToPtr([*]i32, 0x1000)[0..0x500];
183const y = x[0x100..];183const y = x[0x100..];
184test "compile time slice of pointer to hard coded address" {184test "compile time slice of pointer to hard coded address" {
185 if (builtin.zig_backend == .stage1) return error.SkipZigTest;
186 if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest;185 if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest;
187186
188 try expect(@ptrToInt(x) == 0x1000);187 try expect(@ptrToInt(x) == 0x1000);
...@@ -444,10 +443,7 @@ test "slice syntax resulting in pointer-to-array" {...@@ -444,10 +443,7 @@ test "slice syntax resulting in pointer-to-array" {
444 var array: [2]u8 = [2]u8{ 1, 2 };443 var array: [2]u8 = [2]u8{ 1, 2 };
445 var slice: ?[]u8 = &array;444 var slice: ?[]u8 = &array;
446 comptime try expect(@TypeOf(&array, slice) == ?[]u8);445 comptime try expect(@TypeOf(&array, slice) == ?[]u8);
447 if (builtin.zig_backend != .stage1) {446 comptime try expect(@TypeOf(slice, &array) == ?[]u8);
448 // stage1 is not passing this case
449 comptime try expect(@TypeOf(slice, &array) == ?[]u8);
450 }
451 comptime try expect(@TypeOf(slice.?[0..2]) == *[2]u8);447 comptime try expect(@TypeOf(slice.?[0..2]) == *[2]u8);
452 }448 }
453449
...@@ -479,13 +475,7 @@ test "slice pointer-to-array null terminated" {...@@ -479,13 +475,7 @@ test "slice pointer-to-array null terminated" {
479 var slice: [:0]u8 = &array;475 var slice: [:0]u8 = &array;
480 try expect(@TypeOf(slice[1..3]) == *[2]u8);476 try expect(@TypeOf(slice[1..3]) == *[2]u8);
481 try expect(@TypeOf(slice[1..3 :4]) == *[2:4]u8);477 try expect(@TypeOf(slice[1..3 :4]) == *[2:4]u8);
482478 try expect(@TypeOf(slice[1..]) == *[4:0]u8);
483 if (builtin.zig_backend == .stage1) {
484 try expect(@TypeOf(slice[1..]) == [:0]u8);
485 } else {
486 // stage2 gives a more accurate, correct answer
487 try expect(@TypeOf(slice[1..]) == *[4:0]u8);
488 }
489 }479 }
490480
491 var array = [5:0]u8{ 1, 2, 3, 4, 5 };481 var array = [5:0]u8{ 1, 2, 3, 4, 5 };
...@@ -509,12 +499,7 @@ test "slice pointer-to-array zero length" {...@@ -509,12 +499,7 @@ test "slice pointer-to-array zero length" {
509 var array = [0:0]u8{};499 var array = [0:0]u8{};
510 var src_slice: [:0]u8 = &array;500 var src_slice: [:0]u8 = &array;
511 var slice = src_slice[0..0];501 var slice = src_slice[0..0];
512 if (builtin.zig_backend == .stage1) {502 try expect(@TypeOf(slice) == *[0:0]u8);
513 try expect(@TypeOf(slice) == *[0]u8);
514 } else {
515 // stage2 gives a more accurate, correct answer
516 try expect(@TypeOf(slice) == *[0:0]u8);
517 }
518 }503 }
519 }504 }
520505
...@@ -573,16 +558,11 @@ test "array concat of slices gives ptr to array" {...@@ -573,16 +558,11 @@ test "array concat of slices gives ptr to array" {
573 var b: []const u8 = "asdf";558 var b: []const u8 = "asdf";
574 const c = a ++ b;559 const c = a ++ b;
575 try expect(std.mem.eql(u8, c, "aoeuasdf"));560 try expect(std.mem.eql(u8, c, "aoeuasdf"));
576 if (builtin.zig_backend != .stage1) {561 try expect(@TypeOf(c) == *const [8]u8);
577 // spec change: array concat now returns pointer-to-array for slices
578 try expect(@TypeOf(c) == *const [8]u8);
579 }
580 }562 }
581}563}
582564
583test "array mult of slice gives ptr to array" {565test "array mult of slice gives ptr to array" {
584 if (builtin.zig_backend == .stage1) return error.SkipZigTest; // Stage 1 does not support multiplying slices
585
586 comptime {566 comptime {
587 var a: []const u8 = "aoeu";567 var a: []const u8 = "aoeu";
588 const c = a ** 2;568 const c = a ** 2;
...@@ -626,8 +606,6 @@ test "slice sentinel access at comptime" {...@@ -626,8 +606,6 @@ test "slice sentinel access at comptime" {
626}606}
627607
628test "slicing array with sentinel as end index" {608test "slicing array with sentinel as end index" {
629 // Doesn't work in stage1
630 if (builtin.zig_backend == .stage1) return error.SkipZigTest;
631 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;609 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;
632610
633 const S = struct {611 const S = struct {
...@@ -645,8 +623,6 @@ test "slicing array with sentinel as end index" {...@@ -645,8 +623,6 @@ test "slicing array with sentinel as end index" {
645}623}
646624
647test "slicing slice with sentinel as end index" {625test "slicing slice with sentinel as end index" {
648 // Doesn't work in stage1
649 if (builtin.zig_backend == .stage1) return error.SkipZigTest;
650 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;626 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;
651627
652 const S = struct {628 const S = struct {
test/behavior/struct.zig+2-40
...@@ -419,11 +419,8 @@ test "packed struct 24bits" {...@@ -419,11 +419,8 @@ test "packed struct 24bits" {
419 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO419 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
420420
421 comptime {421 comptime {
422 // stage1 gets the wrong answer for sizeof422 std.debug.assert(@sizeOf(Foo24Bits) == @sizeOf(u24));
423 if (builtin.zig_backend != .stage1) {423 std.debug.assert(@sizeOf(Foo96Bits) == @sizeOf(u96));
424 std.debug.assert(@sizeOf(Foo24Bits) == @sizeOf(u24));
425 std.debug.assert(@sizeOf(Foo96Bits) == @sizeOf(u96));
426 }
427 }424 }
428425
429 var value = Foo96Bits{426 var value = Foo96Bits{
...@@ -497,10 +494,6 @@ const Bitfields = packed struct {...@@ -497,10 +494,6 @@ const Bitfields = packed struct {
497};494};
498495
499test "packed struct fields are ordered from LSB to MSB" {496test "packed struct fields are ordered from LSB to MSB" {
500 if (builtin.zig_backend == .stage1) {
501 // stage1 gets the wrong answer for a lot of targets
502 return error.SkipZigTest;
503 }
504 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO497 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
505 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO498 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
506 if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO499 if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO
...@@ -640,7 +633,6 @@ test "default struct initialization fields" {...@@ -640,7 +633,6 @@ test "default struct initialization fields" {
640}633}
641634
642test "packed array 24bits" {635test "packed array 24bits" {
643 if (builtin.zig_backend == .stage1) return error.SkipZigTest;
644 if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest;636 if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest;
645 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest;637 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest;
646 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;638 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;
...@@ -698,25 +690,6 @@ const FooArray24Bits = packed struct {...@@ -698,25 +690,6 @@ const FooArray24Bits = packed struct {
698 c: u16,690 c: u16,
699};691};
700692
701test "aligned array of packed struct" {
702 // Stage2 has different packed struct semantics.
703 if (builtin.zig_backend != .stage1) return error.SkipZigTest;
704 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
705
706 comptime {
707 try expect(@sizeOf(FooStructAligned) == 2);
708 try expect(@sizeOf(FooArrayOfAligned) == 2 * 2);
709 }
710
711 var bytes = [_]u8{0xbb} ** @sizeOf(FooArrayOfAligned);
712 const ptr = &std.mem.bytesAsSlice(FooArrayOfAligned, bytes[0..])[0];
713
714 try expect(ptr.a[0].a == 0xbb);
715 try expect(ptr.a[0].b == 0xbb);
716 try expect(ptr.a[1].a == 0xbb);
717 try expect(ptr.a[1].b == 0xbb);
718}
719
720const FooStructAligned = packed struct {693const FooStructAligned = packed struct {
721 a: u8,694 a: u8,
722 b: u8,695 b: u8,
...@@ -1150,7 +1123,6 @@ test "for loop over pointers to struct, getting field from struct pointer" {...@@ -1150,7 +1123,6 @@ test "for loop over pointers to struct, getting field from struct pointer" {
1150}1123}
11511124
1152test "anon init through error unions and optionals" {1125test "anon init through error unions and optionals" {
1153 if (builtin.zig_backend == .stage1) return error.SkipZigTest;
1154 if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO1126 if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO
1155 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO1127 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
1156 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO1128 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
...@@ -1178,7 +1150,6 @@ test "anon init through error unions and optionals" {...@@ -1178,7 +1150,6 @@ test "anon init through error unions and optionals" {
1178}1150}
11791151
1180test "anon init through optional" {1152test "anon init through optional" {
1181 if (builtin.zig_backend == .stage1) return error.SkipZigTest;
1182 if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO1153 if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO
1183 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO1154 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
1184 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO1155 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
...@@ -1199,7 +1170,6 @@ test "anon init through optional" {...@@ -1199,7 +1170,6 @@ test "anon init through optional" {
1199}1170}
12001171
1201test "anon init through error union" {1172test "anon init through error union" {
1202 if (builtin.zig_backend == .stage1) return error.SkipZigTest;
1203 if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO1173 if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO
1204 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO1174 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
1205 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO1175 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
...@@ -1220,7 +1190,6 @@ test "anon init through error union" {...@@ -1220,7 +1190,6 @@ test "anon init through error union" {
1220}1190}
12211191
1222test "typed init through error unions and optionals" {1192test "typed init through error unions and optionals" {
1223 if (builtin.zig_backend == .stage1) return error.SkipZigTest;
1224 if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO1193 if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO
1225 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO1194 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
1226 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO1195 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
...@@ -1283,10 +1252,6 @@ test "loading a struct pointer perfoms a copy" {...@@ -1283,10 +1252,6 @@ test "loading a struct pointer perfoms a copy" {
1283}1252}
12841253
1285test "packed struct aggregate init" {1254test "packed struct aggregate init" {
1286 if (builtin.zig_backend == .stage1) {
1287 // stage1 fails this test on mips
1288 return error.SkipZigTest;
1289 }
1290 if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO1255 if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO
1291 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO1256 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
1292 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO1257 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
...@@ -1328,8 +1293,6 @@ test "packed struct field access via pointer" {...@@ -1328,8 +1293,6 @@ test "packed struct field access via pointer" {
1328}1293}
13291294
1330test "store to comptime field" {1295test "store to comptime field" {
1331 if (builtin.zig_backend == .stage1) return error.SkipZigTest;
1332
1333 {1296 {
1334 const S = struct {1297 const S = struct {
1335 comptime a: [2]u32 = [2]u32{ 1, 2 },1298 comptime a: [2]u32 = [2]u32{ 1, 2 },
...@@ -1364,7 +1327,6 @@ test "struct field init value is size of the struct" {...@@ -1364,7 +1327,6 @@ test "struct field init value is size of the struct" {
1364}1327}
13651328
1366test "under-aligned struct field" {1329test "under-aligned struct field" {
1367 if (builtin.zig_backend == .stage1) return error.SkipZigTest;
1368 if (builtin.zig_backend == .stage2_c) return error.SkipZigTest; // TODO1330 if (builtin.zig_backend == .stage2_c) return error.SkipZigTest; // TODO
1369 if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO1331 if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO
1370 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO1332 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
test/behavior/truncate.zig-5
...@@ -60,11 +60,6 @@ test "truncate on comptime integer" {...@@ -60,11 +60,6 @@ test "truncate on comptime integer" {
60}60}
6161
62test "truncate on vectors" {62test "truncate on vectors" {
63 if (builtin.zig_backend == .stage1) {
64 // stage1 fails the comptime test
65 return error.SkipZigTest;
66 }
67
68 if (builtin.zig_backend == .stage2_c) return error.SkipZigTest;63 if (builtin.zig_backend == .stage2_c) return error.SkipZigTest;
69 if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest;64 if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest;
70 if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest;65 if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest;
test/behavior/type.zig+2-11
...@@ -229,7 +229,7 @@ test "Type.Vector" {...@@ -229,7 +229,7 @@ test "Type.Vector" {
229}229}
230230
231test "Type.AnyFrame" {231test "Type.AnyFrame" {
232 if (builtin.zig_backend != .stage1) {232 if (true) {
233 // https://github.com/ziglang/zig/issues/6025233 // https://github.com/ziglang/zig/issues/6025
234 return error.SkipZigTest;234 return error.SkipZigTest;
235 }235 }
...@@ -246,8 +246,6 @@ fn add(a: i32, b: i32) i32 {...@@ -246,8 +246,6 @@ fn add(a: i32, b: i32) i32 {
246}246}
247247
248test "Type.ErrorSet" {248test "Type.ErrorSet" {
249 if (builtin.zig_backend == .stage1) return error.SkipZigTest;
250
251 try testing.expect(@Type(.{ .ErrorSet = null }) == anyerror);249 try testing.expect(@Type(.{ .ErrorSet = null }) == anyerror);
252250
253 // error sets don't compare equal so just check if they compile251 // error sets don't compare equal so just check if they compile
...@@ -369,12 +367,7 @@ test "Type.Enum" {...@@ -369,12 +367,7 @@ test "Type.Enum" {
369 try testing.expectEqual(@as(u8, 5), @enumToInt(Foo.b));367 try testing.expectEqual(@as(u8, 5), @enumToInt(Foo.b));
370 const Bar = @Type(.{368 const Bar = @Type(.{
371 .Enum = .{369 .Enum = .{
372 // stage2 only has auto layouts370 .layout = .Auto,
373 .layout = if (builtin.zig_backend == .stage1)
374 .Extern
375 else
376 .Auto,
377
378 .tag_type = u32,371 .tag_type = u32,
379 .fields = &.{372 .fields = &.{
380 .{ .name = "a", .value = 1 },373 .{ .name = "a", .value = 1 },
...@@ -501,8 +494,6 @@ test "Type.Union from regular enum" {...@@ -501,8 +494,6 @@ test "Type.Union from regular enum" {
501}494}
502495
503test "Type.Fn" {496test "Type.Fn" {
504 if (builtin.zig_backend == .stage1) return error.SkipZigTest;
505
506 if (true) {497 if (true) {
507 // https://github.com/ziglang/zig/issues/12360498 // https://github.com/ziglang/zig/issues/12360
508 return error.SkipZigTest;499 return error.SkipZigTest;
test/behavior/type_info.zig+17-26
...@@ -201,9 +201,6 @@ test "type info: error set single value" {...@@ -201,9 +201,6 @@ test "type info: error set single value" {
201}201}
202202
203test "type info: error set merged" {203test "type info: error set merged" {
204 // #11022 forces ordering of error sets in stage2
205 if (builtin.zig_backend == .stage1) return error.SkipZigTest;
206
207 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;204 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;
208 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO205 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
209 if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO206 if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO
...@@ -305,8 +302,6 @@ const TestStruct = struct {...@@ -305,8 +302,6 @@ const TestStruct = struct {
305};302};
306303
307test "type info: packed struct info" {304test "type info: packed struct info" {
308 if (builtin.zig_backend == .stage1) return error.SkipZigTest;
309
310 try testPackedStruct();305 try testPackedStruct();
311 comptime try testPackedStruct();306 comptime try testPackedStruct();
312}307}
...@@ -376,25 +371,21 @@ extern fn typeInfoFoo(a: usize, b: bool, ...) callconv(.C) usize;...@@ -376,25 +371,21 @@ extern fn typeInfoFoo(a: usize, b: bool, ...) callconv(.C) usize;
376extern fn typeInfoFooAligned(a: usize, b: bool, ...) align(4) callconv(.C) usize;371extern fn typeInfoFooAligned(a: usize, b: bool, ...) align(4) callconv(.C) usize;
377372
378test "type info: generic function types" {373test "type info: generic function types" {
379 if (builtin.zig_backend != .stage1) {374 const G1 = @typeInfo(@TypeOf(generic1));
380 // stage1 marks all args/return types as null if the function375 try expect(G1.Fn.args.len == 1);
381 // is generic at all. stage2 is more specific.376 try expect(G1.Fn.args[0].is_generic == true);
382 const G1 = @typeInfo(@TypeOf(generic1));377 try expect(G1.Fn.args[0].arg_type == null);
383 try expect(G1.Fn.args.len == 1);378 try expect(G1.Fn.return_type == void);
384 try expect(G1.Fn.args[0].is_generic == true);379
385 try expect(G1.Fn.args[0].arg_type == null);380 const G2 = @typeInfo(@TypeOf(generic2));
386 try expect(G1.Fn.return_type == void);381 try expect(G2.Fn.args.len == 3);
387382 try expect(G2.Fn.args[0].is_generic == false);
388 const G2 = @typeInfo(@TypeOf(generic2));383 try expect(G2.Fn.args[0].arg_type == type);
389 try expect(G2.Fn.args.len == 3);384 try expect(G2.Fn.args[1].is_generic == true);
390 try expect(G2.Fn.args[0].is_generic == false);385 try expect(G2.Fn.args[1].arg_type == null);
391 try expect(G2.Fn.args[0].arg_type == type);386 try expect(G2.Fn.args[2].is_generic == false);
392 try expect(G2.Fn.args[1].is_generic == true);387 try expect(G2.Fn.args[2].arg_type == u8);
393 try expect(G2.Fn.args[1].arg_type == null);388 try expect(G2.Fn.return_type == void);
394 try expect(G2.Fn.args[2].is_generic == false);
395 try expect(G2.Fn.args[2].arg_type == u8);
396 try expect(G2.Fn.return_type == void);
397 }
398389
399 const G3 = @typeInfo(@TypeOf(generic3));390 const G3 = @typeInfo(@TypeOf(generic3));
400 try expect(G3.Fn.args.len == 1);391 try expect(G3.Fn.args.len == 1);
...@@ -442,7 +433,7 @@ fn testVector() !void {...@@ -442,7 +433,7 @@ fn testVector() !void {
442}433}
443434
444test "type info: anyframe and anyframe->T" {435test "type info: anyframe and anyframe->T" {
445 if (builtin.zig_backend != .stage1) {436 if (true) {
446 // https://github.com/ziglang/zig/issues/6025437 // https://github.com/ziglang/zig/issues/6025
447 return error.SkipZigTest;438 return error.SkipZigTest;
448 }439 }
...@@ -501,7 +492,7 @@ fn add(a: i32, b: i32) i32 {...@@ -501,7 +492,7 @@ fn add(a: i32, b: i32) i32 {
501}492}
502493
503test "type info for async frames" {494test "type info for async frames" {
504 if (builtin.zig_backend != .stage1) {495 if (true) {
505 // https://github.com/ziglang/zig/issues/6025496 // https://github.com/ziglang/zig/issues/6025
506 return error.SkipZigTest;497 return error.SkipZigTest;
507 }498 }
test/behavior/typename.zig-29
...@@ -12,12 +12,6 @@ const expectStringStartsWith = std.testing.expectStringStartsWith;...@@ -12,12 +12,6 @@ const expectStringStartsWith = std.testing.expectStringStartsWith;
12// failures.12// failures.
1313
14test "anon fn param" {14test "anon fn param" {
15 if (builtin.zig_backend == .stage1) {
16 // stage1 uses line/column for the names but we're moving away from that for
17 // incremental compilation purposes.
18 return error.SkipZigTest;
19 }
20
21 if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO15 if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO
22 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO16 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
23 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO17 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
...@@ -43,12 +37,6 @@ test "anon fn param" {...@@ -43,12 +37,6 @@ test "anon fn param" {
43}37}
4438
45test "anon field init" {39test "anon field init" {
46 if (builtin.zig_backend == .stage1) {
47 // stage1 uses line/column for the names but we're moving away from that for
48 // incremental compilation purposes.
49 return error.SkipZigTest;
50 }
51
52 if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO40 if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO
53 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO41 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
54 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO42 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
...@@ -84,11 +72,6 @@ test "basic" {...@@ -84,11 +72,6 @@ test "basic" {
84}72}
8573
86test "top level decl" {74test "top level decl" {
87 if (builtin.zig_backend == .stage1) {
88 // stage1 fails to return fully qualified namespaces.
89 return error.SkipZigTest;
90 }
91
92 if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO75 if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO
93 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO76 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
94 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO77 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
...@@ -208,11 +191,6 @@ pub fn expectEqualStringsIgnoreDigits(expected: []const u8, actual: []const u8)...@@ -208,11 +191,6 @@ pub fn expectEqualStringsIgnoreDigits(expected: []const u8, actual: []const u8)
208}191}
209192
210test "local variable" {193test "local variable" {
211 if (builtin.zig_backend == .stage1) {
212 // stage1 fails to return fully qualified namespaces.
213 return error.SkipZigTest;
214 }
215
216 if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO194 if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO
217 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO195 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
218 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO196 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
...@@ -231,7 +209,6 @@ test "local variable" {...@@ -231,7 +209,6 @@ test "local variable" {
231}209}
232210
233test "comptime parameters not converted to anytype in function type" {211test "comptime parameters not converted to anytype in function type" {
234 if (builtin.zig_backend == .stage1) return error.SkipZigTest;
235 if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO212 if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO
236 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO213 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
237 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO214 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
...@@ -241,12 +218,6 @@ test "comptime parameters not converted to anytype in function type" {...@@ -241,12 +218,6 @@ test "comptime parameters not converted to anytype in function type" {
241}218}
242219
243test "anon name strategy used in sub expression" {220test "anon name strategy used in sub expression" {
244 if (builtin.zig_backend == .stage1) {
245 // stage1 uses line/column for the names but we're moving away from that for
246 // incremental compilation purposes.
247 return error.SkipZigTest;
248 }
249
250 if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO221 if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO
251 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO222 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
252 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO223 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
test/behavior/undefined.zig-4
...@@ -76,10 +76,6 @@ test "assign undefined to struct with method" {...@@ -76,10 +76,6 @@ test "assign undefined to struct with method" {
76}76}
7777
78test "type name of undefined" {78test "type name of undefined" {
79 if (builtin.zig_backend == .stage1) {
80 // stage1 gets the type name wrong
81 return error.SkipZigTest;
82 }
83 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;79 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;
8480
85 const x = undefined;81 const x = undefined;
test/behavior/union.zig-5
...@@ -221,7 +221,6 @@ test "packed union generates correctly aligned type" {...@@ -221,7 +221,6 @@ test "packed union generates correctly aligned type" {
221 if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest;221 if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest;
222 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest;222 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest;
223 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;223 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;
224 if (builtin.zig_backend == .stage1) return error.SkipZigTest;
225224
226 const U = packed union {225 const U = packed union {
227 f1: *const fn () error{TestUnexpectedResult}!void,226 f1: *const fn () error{TestUnexpectedResult}!void,
...@@ -1002,7 +1001,6 @@ test "cast from pointer to anonymous struct to pointer to union" {...@@ -1002,7 +1001,6 @@ test "cast from pointer to anonymous struct to pointer to union" {
1002}1001}
10031002
1004test "switching on non exhaustive union" {1003test "switching on non exhaustive union" {
1005 if (builtin.zig_backend == .stage1) return error.SkipZigTest;
1006 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO1004 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
1007 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO1005 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
10081006
...@@ -1197,7 +1195,6 @@ test "union tag is set when initiated as a temporary value at runtime" {...@@ -1197,7 +1195,6 @@ test "union tag is set when initiated as a temporary value at runtime" {
1197}1195}
11981196
1199test "extern union most-aligned field is smaller" {1197test "extern union most-aligned field is smaller" {
1200 if (builtin.zig_backend == .stage1) return error.SkipZigTest;
1201 if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO1198 if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO
1202 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO1199 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
1203 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO1200 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
...@@ -1246,7 +1243,6 @@ test "return an extern union from C calling convention" {...@@ -1246,7 +1243,6 @@ test "return an extern union from C calling convention" {
1246}1243}
12471244
1248test "noreturn field in union" {1245test "noreturn field in union" {
1249 if (builtin.zig_backend == .stage1) return error.SkipZigTest;
1250 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO1246 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
1251 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO1247 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
1252 if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO1248 if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO
...@@ -1298,7 +1294,6 @@ test "noreturn field in union" {...@@ -1298,7 +1294,6 @@ test "noreturn field in union" {
1298}1294}
12991295
1300test "union and enum field order doesn't match" {1296test "union and enum field order doesn't match" {
1301 if (builtin.zig_backend == .stage1) return error.SkipZigTest;
1302 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO1297 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
1303 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO1298 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
13041299
test/behavior/vector.zig+2-39
...@@ -6,12 +6,6 @@ const expect = std.testing.expect;...@@ -6,12 +6,6 @@ const expect = std.testing.expect;
6const expectEqual = std.testing.expectEqual;6const expectEqual = std.testing.expectEqual;
77
8test "implicit cast vector to array - bool" {8test "implicit cast vector to array - bool" {
9 if (builtin.zig_backend == .stage1) {
10 // Regressed in LLVM 14:
11 // https://github.com/llvm/llvm-project/issues/55522
12 return error.SkipZigTest;
13 }
14
15 if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest; // TODO9 if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest; // TODO
16 if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO10 if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO
17 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO11 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
...@@ -180,9 +174,7 @@ test "tuple to vector" {...@@ -180,9 +174,7 @@ test "tuple to vector" {
180 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO174 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
181 if (builtin.zig_backend == .stage2_c) return error.SkipZigTest; // TODO175 if (builtin.zig_backend == .stage2_c) return error.SkipZigTest; // TODO
182176
183 if ((builtin.zig_backend == .stage1 or builtin.zig_backend == .stage2_llvm) and177 if (builtin.zig_backend == .stage2_llvm and builtin.cpu.arch == .aarch64) {
184 builtin.cpu.arch == .aarch64)
185 {
186 // Regressed with LLVM 14:178 // Regressed with LLVM 14:
187 // https://github.com/ziglang/zig/issues/12012179 // https://github.com/ziglang/zig/issues/12012
188 return error.SkipZigTest;180 return error.SkipZigTest;
...@@ -197,9 +189,7 @@ test "tuple to vector" {...@@ -197,9 +189,7 @@ test "tuple to vector" {
197 }189 }
198190
199 try std.testing.expectEqual(v, Vec3{ 1, 1, 1 });191 try std.testing.expectEqual(v, Vec3{ 1, 1, 1 });
200 if (builtin.zig_backend != .stage1) {192 try std.testing.expectEqual(v, .{ 1, 1, 1 });
201 try std.testing.expectEqual(v, .{ 1, 1, 1 });
202 }
203 }193 }
204 };194 };
205 try S.doTheTest();195 try S.doTheTest();
...@@ -406,12 +396,6 @@ test "initialize vector which is a struct field" {...@@ -406,12 +396,6 @@ test "initialize vector which is a struct field" {
406}396}
407397
408test "vector comparison operators" {398test "vector comparison operators" {
409 if (builtin.zig_backend == .stage1) {
410 // Regressed in LLVM 14:
411 // https://github.com/llvm/llvm-project/issues/55522
412 return error.SkipZigTest;
413 }
414
415 if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest; // TODO399 if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest; // TODO
416 if (builtin.zig_backend == .stage2_c) return error.SkipZigTest; // TODO400 if (builtin.zig_backend == .stage2_c) return error.SkipZigTest; // TODO
417 if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO401 if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO
...@@ -801,7 +785,6 @@ test "vector reduce operation" {...@@ -801,7 +785,6 @@ test "vector reduce operation" {
801}785}
802786
803test "vector @reduce comptime" {787test "vector @reduce comptime" {
804 if (builtin.zig_backend == .stage1) return error.SkipZigTest;
805 if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest; // TODO788 if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest; // TODO
806 if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO789 if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO
807 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO790 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
...@@ -937,10 +920,6 @@ test "saturating shift-left" {...@@ -937,10 +920,6 @@ test "saturating shift-left" {
937}920}
938921
939test "multiplication-assignment operator with an array operand" {922test "multiplication-assignment operator with an array operand" {
940 if (builtin.zig_backend == .stage1) {
941 // stage1 emits a compile error
942 return error.SkipZigTest;
943 }
944 if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest; // TODO923 if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest; // TODO
945 if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO924 if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO
946 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO925 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
...@@ -961,10 +940,6 @@ test "multiplication-assignment operator with an array operand" {...@@ -961,10 +940,6 @@ test "multiplication-assignment operator with an array operand" {
961}940}
962941
963test "@addWithOverflow" {942test "@addWithOverflow" {
964 if (builtin.zig_backend == .stage1) {
965 // stage1 doesn't support vector args
966 return error.SkipZigTest;
967 }
968 if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest; // TODO943 if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest; // TODO
969 if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO944 if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO
970 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO945 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
...@@ -1011,10 +986,6 @@ test "@addWithOverflow" {...@@ -1011,10 +986,6 @@ test "@addWithOverflow" {
1011}986}
1012987
1013test "@subWithOverflow" {988test "@subWithOverflow" {
1014 if (builtin.zig_backend == .stage1) {
1015 // stage1 doesn't support vector args
1016 return error.SkipZigTest;
1017 }
1018 if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest; // TODO989 if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest; // TODO
1019 if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO990 if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO
1020 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO991 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
...@@ -1045,10 +1016,6 @@ test "@subWithOverflow" {...@@ -1045,10 +1016,6 @@ test "@subWithOverflow" {
1045}1016}
10461017
1047test "@mulWithOverflow" {1018test "@mulWithOverflow" {
1048 if (builtin.zig_backend == .stage1) {
1049 // stage1 doesn't support vector args
1050 return error.SkipZigTest;
1051 }
1052 if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest; // TODO1019 if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest; // TODO
1053 if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO1020 if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO
1054 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO1021 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
...@@ -1069,10 +1036,6 @@ test "@mulWithOverflow" {...@@ -1069,10 +1036,6 @@ test "@mulWithOverflow" {
1069}1036}
10701037
1071test "@shlWithOverflow" {1038test "@shlWithOverflow" {
1072 if (builtin.zig_backend == .stage1) {
1073 // stage1 doesn't support vector args
1074 return error.SkipZigTest;
1075 }
1076 if (builtin.zig_backend == .stage2_c) return error.SkipZigTest; // TODO1039 if (builtin.zig_backend == .stage2_c) return error.SkipZigTest; // TODO
1077 if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest; // TODO1040 if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest; // TODO
1078 if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO1041 if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO