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 {
9494 _ = @import("behavior/bugs/12551.zig");
9595 _ = @import("behavior/bugs/12644.zig");
9696 _ = @import("behavior/bugs/12680.zig");
97 _ = @import("behavior/bugs/12723.zig");
98 _ = @import("behavior/bugs/12776.zig");
9799 _ = @import("behavior/bugs/12786.zig");
98100 _ = @import("behavior/bugs/12794.zig");
99101 _ = @import("behavior/bugs/12801-1.zig");
......@@ -112,8 +114,8 @@ test {
112114 _ = @import("behavior/bugs/13069.zig");
113115 _ = @import("behavior/bugs/13112.zig");
114116 _ = @import("behavior/bugs/13128.zig");
115 _ = @import("behavior/bugs/13164.zig");
116117 _ = @import("behavior/bugs/13159.zig");
118 _ = @import("behavior/bugs/13164.zig");
117119 _ = @import("behavior/bugs/13171.zig");
118120 _ = @import("behavior/bugs/13285.zig");
119121 _ = @import("behavior/bugs/13435.zig");
......@@ -126,7 +128,9 @@ test {
126128 _ = @import("behavior/cast_int.zig");
127129 _ = @import("behavior/comptime_memory.zig");
128130 _ = @import("behavior/const_slice_child.zig");
131 _ = @import("behavior/decltest.zig");
129132 _ = @import("behavior/defer.zig");
133 _ = @import("behavior/empty_union.zig");
130134 _ = @import("behavior/enum.zig");
131135 _ = @import("behavior/error.zig");
132136 _ = @import("behavior/eval.zig");
......@@ -142,6 +146,7 @@ test {
142146 _ = @import("behavior/if.zig");
143147 _ = @import("behavior/import.zig");
144148 _ = @import("behavior/incomplete_struct_param_tld.zig");
149 _ = @import("behavior/inline_switch.zig");
145150 _ = @import("behavior/int128.zig");
146151 _ = @import("behavior/int_div.zig");
147152 _ = @import("behavior/inttoptr.zig");
......@@ -154,6 +159,8 @@ test {
154159 _ = @import("behavior/namespace_depends_on_compile_var.zig");
155160 _ = @import("behavior/null.zig");
156161 _ = @import("behavior/optional.zig");
162 _ = @import("behavior/packed-struct.zig");
163 _ = @import("behavior/packed_struct_explicit_backing_int.zig");
157164 _ = @import("behavior/pointers.zig");
158165 _ = @import("behavior/popcount.zig");
159166 _ = @import("behavior/prefetch.zig");
......@@ -169,7 +176,6 @@ test {
169176 _ = @import("behavior/slice_sentinel_comptime.zig");
170177 _ = @import("behavior/src.zig");
171178 _ = @import("behavior/struct.zig");
172 _ = @import("behavior/packed-struct.zig");
173179 _ = @import("behavior/struct_contains_null_ptr_itself.zig");
174180 _ = @import("behavior/struct_contains_slice_of_itself.zig");
175181 _ = @import("behavior/switch.zig");
......@@ -180,6 +186,7 @@ test {
180186 _ = @import("behavior/truncate.zig");
181187 _ = @import("behavior/try.zig");
182188 _ = @import("behavior/tuple.zig");
189 _ = @import("behavior/tuple_declarations.zig");
183190 _ = @import("behavior/type.zig");
184191 _ = @import("behavior/type_info.zig");
185192 _ = @import("behavior/typename.zig");
......@@ -198,16 +205,6 @@ test {
198205 _ = @import("behavior/wasm.zig");
199206 }
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
211208 if (builtin.os.tag != .wasi) {
212209 _ = @import("behavior/asm.zig");
213210 }
test/behavior/align.zig+1-15
......@@ -16,7 +16,6 @@ test "global variable alignment" {
1616}
1717
1818test "slicing array of length 1 can not assume runtime index is always zero" {
19 if (builtin.zig_backend == .stage1) return error.SkipZigTest;
2019 if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest; // TODO
2120 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" {
6160}
6261
6362test "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 }
6863 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
6964 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
7065
......@@ -313,7 +308,6 @@ test "function alignment" {
313308}
314309
315310test "implicitly decreasing fn alignment" {
316 if (builtin.zig_backend == .stage1) return error.SkipZigTest;
317311 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;
318312 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest;
319313
......@@ -337,7 +331,6 @@ fn alignedBig() align(16) i32 {
337331
338332test "@alignCast functions" {
339333 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;
340 if (builtin.zig_backend == .stage1) return error.SkipZigTest;
341334 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest;
342335
343336 // function alignment is a compile error on wasm32/wasm64
......@@ -380,8 +373,6 @@ test "function align expression depends on generic parameter" {
380373}
381374
382375test "function callconv expression depends on generic parameter" {
383 if (builtin.zig_backend == .stage1) return error.SkipZigTest;
384
385376 const S = struct {
386377 fn doTheTest() !void {
387378 try expect(foobar(.C, 1) == 2);
......@@ -435,8 +426,6 @@ fn testIndex2(ptr: [*]align(4) u8, index: usize, comptime T: type) !void {
435426}
436427
437428test "alignment of function with c calling convention" {
438 if (builtin.zig_backend == .stage1) return error.SkipZigTest;
439
440429 var runtime_nothing = &nothing;
441430 const casted1 = @ptrCast(*const u8, runtime_nothing);
442431 const casted2 = @ptrCast(*const fn () callconv(.C) void, casted1);
......@@ -495,7 +484,7 @@ test "struct field explicit alignment" {
495484}
496485
497486test "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
500489 const S = struct {
501490 const A = struct {
......@@ -519,7 +508,6 @@ test "align(@alignOf(T)) T does not force resolution of T" {
519508}
520509
521510test "align(N) on functions" {
522 if (builtin.zig_backend == .stage1) return error.SkipZigTest;
523511 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
524512 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
525513 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
......@@ -557,8 +545,6 @@ test "@alignCast null" {
557545}
558546
559547test "alignment of slice element" {
560 if (builtin.zig_backend == .stage1) return error.SkipZigTest;
561
562548 const a: []align(1024) const u8 = undefined;
563549 try expect(@TypeOf(&a[0]) == *align(1024) const u8);
564550}
test/behavior/array.zig-6
......@@ -102,12 +102,6 @@ test "array len field" {
102102}
103103
104104test "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
111105 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;
112106
113107 const S = struct {
test/behavior/async_fn.zig+66-66
......@@ -8,7 +8,7 @@ const expectError = std.testing.expectError;
88var global_x: i32 = 1;
99
1010test "simple coroutine suspend and resume" {
11 if (builtin.zig_backend != .stage1) return error.SkipZigTest; // TODO
11 if (true) return error.SkipZigTest; // TODO
1212 if (builtin.os.tag == .wasi) return error.SkipZigTest; // TODO
1313
1414 var frame = async simpleAsyncFn();
......@@ -31,7 +31,7 @@ fn simpleAsyncFn() void {
3131var global_y: i32 = 1;
3232
3333test "pass parameter to coroutine" {
34 if (builtin.zig_backend != .stage1) return error.SkipZigTest; // TODO
34 if (true) return error.SkipZigTest; // TODO
3535 if (builtin.os.tag == .wasi) return error.SkipZigTest; // TODO
3636
3737 var p = async simpleAsyncFnWithArg(2);
......@@ -46,7 +46,7 @@ fn simpleAsyncFnWithArg(delta: i32) void {
4646}
4747
4848test "suspend at end of function" {
49 if (builtin.zig_backend != .stage1) return error.SkipZigTest; // TODO
49 if (true) return error.SkipZigTest; // TODO
5050 if (builtin.os.tag == .wasi) return error.SkipZigTest; // TODO
5151
5252 const S = struct {
......@@ -68,7 +68,7 @@ test "suspend at end of function" {
6868}
6969
7070test "local variable in async function" {
71 if (builtin.zig_backend != .stage1) return error.SkipZigTest; // TODO
71 if (true) return error.SkipZigTest; // TODO
7272 if (builtin.os.tag == .wasi) return error.SkipZigTest; // TODO
7373
7474 const S = struct {
......@@ -100,7 +100,7 @@ test "local variable in async function" {
100100}
101101
102102test "calling an inferred async function" {
103 if (builtin.zig_backend != .stage1) return error.SkipZigTest; // TODO
103 if (true) return error.SkipZigTest; // TODO
104104 if (builtin.os.tag == .wasi) return error.SkipZigTest; // TODO
105105
106106 const S = struct {
......@@ -127,7 +127,7 @@ test "calling an inferred async function" {
127127}
128128
129129test "@frameSize" {
130 if (builtin.zig_backend != .stage1) return error.SkipZigTest; // TODO
130 if (true) return error.SkipZigTest; // TODO
131131 if (builtin.os.tag == .wasi) return error.SkipZigTest; // TODO
132132
133133 if (builtin.target.cpu.arch == .thumb or builtin.target.cpu.arch == .thumbeb)
......@@ -161,7 +161,7 @@ test "@frameSize" {
161161}
162162
163163test "coroutine suspend, resume" {
164 if (builtin.zig_backend != .stage1) return error.SkipZigTest; // TODO
164 if (true) return error.SkipZigTest; // TODO
165165 if (builtin.os.tag == .wasi) return error.SkipZigTest; // TODO
166166
167167 const S = struct {
......@@ -205,7 +205,7 @@ test "coroutine suspend, resume" {
205205}
206206
207207test "coroutine suspend with block" {
208 if (builtin.zig_backend != .stage1) return error.SkipZigTest; // TODO
208 if (true) return error.SkipZigTest; // TODO
209209 if (builtin.os.tag == .wasi) return error.SkipZigTest; // TODO
210210
211211 const p = async testSuspendBlock();
......@@ -234,7 +234,7 @@ var await_a_promise: anyframe = undefined;
234234var await_final_result: i32 = 0;
235235
236236test "coroutine await" {
237 if (builtin.zig_backend != .stage1) return error.SkipZigTest; // TODO
237 if (true) return error.SkipZigTest; // TODO
238238 if (builtin.os.tag == .wasi) return error.SkipZigTest; // TODO
239239
240240 await_seq('a');
......@@ -274,7 +274,7 @@ fn await_seq(c: u8) void {
274274var early_final_result: i32 = 0;
275275
276276test "coroutine await early return" {
277 if (builtin.zig_backend != .stage1) return error.SkipZigTest; // TODO
277 if (true) return error.SkipZigTest; // TODO
278278 if (builtin.os.tag == .wasi) return error.SkipZigTest; // TODO
279279
280280 early_seq('a');
......@@ -305,7 +305,7 @@ fn early_seq(c: u8) void {
305305}
306306
307307test "async function with dot syntax" {
308 if (builtin.zig_backend != .stage1) return error.SkipZigTest; // TODO
308 if (true) return error.SkipZigTest; // TODO
309309 if (builtin.os.tag == .wasi) return error.SkipZigTest; // TODO
310310
311311 const S = struct {
......@@ -321,7 +321,7 @@ test "async function with dot syntax" {
321321}
322322
323323test "async fn pointer in a struct field" {
324 if (builtin.zig_backend != .stage1) return error.SkipZigTest; // TODO
324 if (true) return error.SkipZigTest; // TODO
325325 if (builtin.os.tag == .wasi) return error.SkipZigTest; // TODO
326326
327327 var data: i32 = 1;
......@@ -349,7 +349,7 @@ fn simpleAsyncFn2(y: *i32) callconv(.Async) void {
349349}
350350
351351test "@asyncCall with return type" {
352 if (builtin.zig_backend != .stage1) return error.SkipZigTest; // TODO
352 if (true) return error.SkipZigTest; // TODO
353353 if (builtin.os.tag == .wasi) return error.SkipZigTest; // TODO
354354
355355 const Foo = struct {
......@@ -376,7 +376,7 @@ test "@asyncCall with return type" {
376376}
377377
378378test "async fn with inferred error set" {
379 if (builtin.zig_backend != .stage1) return error.SkipZigTest; // TODO
379 if (true) return error.SkipZigTest; // TODO
380380 if (builtin.os.tag == .wasi) return error.SkipZigTest; // TODO
381381
382382 const S = struct {
......@@ -409,7 +409,7 @@ test "async fn with inferred error set" {
409409}
410410
411411test "error return trace across suspend points - early return" {
412 if (builtin.zig_backend != .stage1) return error.SkipZigTest; // TODO
412 if (true) return error.SkipZigTest; // TODO
413413 if (builtin.os.tag == .wasi) return error.SkipZigTest; // TODO
414414
415415 const p = nonFailing();
......@@ -419,7 +419,7 @@ test "error return trace across suspend points - early return" {
419419}
420420
421421test "error return trace across suspend points - async return" {
422 if (builtin.zig_backend != .stage1) return error.SkipZigTest; // TODO
422 if (true) return error.SkipZigTest; // TODO
423423 if (builtin.os.tag == .wasi) return error.SkipZigTest; // TODO
424424
425425 const p = nonFailing();
......@@ -452,7 +452,7 @@ fn printTrace(p: anyframe->(anyerror!void)) callconv(.Async) void {
452452}
453453
454454test "break from suspend" {
455 if (builtin.zig_backend != .stage1) return error.SkipZigTest; // TODO
455 if (true) return error.SkipZigTest; // TODO
456456 if (builtin.os.tag == .wasi) return error.SkipZigTest; // TODO
457457
458458 var my_result: i32 = 1;
......@@ -470,7 +470,7 @@ fn testBreakFromSuspend(my_result: *i32) callconv(.Async) void {
470470}
471471
472472test "heap allocated async function frame" {
473 if (builtin.zig_backend != .stage1) return error.SkipZigTest; // TODO
473 if (true) return error.SkipZigTest; // TODO
474474 if (builtin.os.tag == .wasi) return error.SkipZigTest; // TODO
475475
476476 const S = struct {
......@@ -497,7 +497,7 @@ test "heap allocated async function frame" {
497497}
498498
499499test "async function call return value" {
500 if (builtin.zig_backend != .stage1) return error.SkipZigTest; // TODO
500 if (true) return error.SkipZigTest; // TODO
501501 if (builtin.os.tag == .wasi) return error.SkipZigTest; // TODO
502502
503503 const S = struct {
......@@ -541,7 +541,7 @@ test "async function call return value" {
541541}
542542
543543test "suspension points inside branching control flow" {
544 if (builtin.zig_backend != .stage1) return error.SkipZigTest; // TODO
544 if (true) return error.SkipZigTest; // TODO
545545 if (builtin.os.tag == .wasi) return error.SkipZigTest; // TODO
546546
547547 const S = struct {
......@@ -570,7 +570,7 @@ test "suspension points inside branching control flow" {
570570}
571571
572572test "call async function which has struct return type" {
573 if (builtin.zig_backend != .stage1) return error.SkipZigTest; // TODO
573 if (true) return error.SkipZigTest; // TODO
574574 if (builtin.os.tag == .wasi) return error.SkipZigTest; // TODO
575575
576576 const S = struct {
......@@ -606,7 +606,7 @@ test "call async function which has struct return type" {
606606}
607607
608608test "pass string literal to async function" {
609 if (builtin.zig_backend != .stage1) return error.SkipZigTest; // TODO
609 if (true) return error.SkipZigTest; // TODO
610610 if (builtin.os.tag == .wasi) return error.SkipZigTest; // TODO
611611
612612 const S = struct {
......@@ -630,7 +630,7 @@ test "pass string literal to async function" {
630630}
631631
632632test "await inside an errdefer" {
633 if (builtin.zig_backend != .stage1) return error.SkipZigTest; // TODO
633 if (true) return error.SkipZigTest; // TODO
634634 if (builtin.os.tag == .wasi) return error.SkipZigTest; // TODO
635635
636636 const S = struct {
......@@ -656,7 +656,7 @@ test "await inside an errdefer" {
656656}
657657
658658test "try in an async function with error union and non-zero-bit payload" {
659 if (builtin.zig_backend != .stage1) return error.SkipZigTest; // TODO
659 if (true) return error.SkipZigTest; // TODO
660660 if (builtin.os.tag == .wasi) return error.SkipZigTest; // TODO
661661
662662 const S = struct {
......@@ -689,7 +689,7 @@ test "try in an async function with error union and non-zero-bit payload" {
689689}
690690
691691test "returning a const error from async function" {
692 if (builtin.zig_backend != .stage1) return error.SkipZigTest; // TODO
692 if (true) return error.SkipZigTest; // TODO
693693 if (builtin.os.tag == .wasi) return error.SkipZigTest; // TODO
694694
695695 const S = struct {
......@@ -723,7 +723,7 @@ test "returning a const error from async function" {
723723}
724724
725725test "async/await typical usage" {
726 if (builtin.zig_backend != .stage1) return error.SkipZigTest; // TODO
726 if (true) return error.SkipZigTest; // TODO
727727 if (builtin.os.tag == .wasi) return error.SkipZigTest; // TODO
728728
729729 inline for ([_]bool{ false, true }) |b1| {
......@@ -821,7 +821,7 @@ fn testAsyncAwaitTypicalUsage(
821821}
822822
823823test "alignment of local variables in async functions" {
824 if (builtin.zig_backend != .stage1) return error.SkipZigTest; // TODO
824 if (true) return error.SkipZigTest; // TODO
825825 if (builtin.os.tag == .wasi) return error.SkipZigTest; // TODO
826826
827827 const S = struct {
......@@ -836,7 +836,7 @@ test "alignment of local variables in async functions" {
836836}
837837
838838test "no reason to resolve frame still works" {
839 if (builtin.zig_backend != .stage1) return error.SkipZigTest; // TODO
839 if (true) return error.SkipZigTest; // TODO
840840 if (builtin.os.tag == .wasi) return error.SkipZigTest; // TODO
841841
842842 _ = async simpleNothing();
......@@ -847,7 +847,7 @@ fn simpleNothing() void {
847847}
848848
849849test "async call a generic function" {
850 if (builtin.zig_backend != .stage1) return error.SkipZigTest; // TODO
850 if (true) return error.SkipZigTest; // TODO
851851 if (builtin.os.tag == .wasi) return error.SkipZigTest; // TODO
852852
853853 const S = struct {
......@@ -870,7 +870,7 @@ test "async call a generic function" {
870870}
871871
872872test "return from suspend block" {
873 if (builtin.zig_backend != .stage1) return error.SkipZigTest; // TODO
873 if (true) return error.SkipZigTest; // TODO
874874 if (builtin.os.tag == .wasi) return error.SkipZigTest; // TODO
875875
876876 const S = struct {
......@@ -887,7 +887,7 @@ test "return from suspend block" {
887887}
888888
889889test "struct parameter to async function is copied to the frame" {
890 if (builtin.zig_backend != .stage1) return error.SkipZigTest; // TODO
890 if (true) return error.SkipZigTest; // TODO
891891 if (builtin.os.tag == .wasi) return error.SkipZigTest; // TODO
892892
893893 const S = struct {
......@@ -934,7 +934,7 @@ test "struct parameter to async function is copied to the frame" {
934934}
935935
936936test "cast fn to async fn when it is inferred to be async" {
937 if (builtin.zig_backend != .stage1) return error.SkipZigTest; // TODO
937 if (true) return error.SkipZigTest; // TODO
938938 if (builtin.os.tag == .wasi) return error.SkipZigTest; // TODO
939939
940940 const S = struct {
......@@ -965,7 +965,7 @@ test "cast fn to async fn when it is inferred to be async" {
965965}
966966
967967test "cast fn to async fn when it is inferred to be async, awaited directly" {
968 if (builtin.zig_backend != .stage1) return error.SkipZigTest; // TODO
968 if (true) return error.SkipZigTest; // TODO
969969 if (builtin.os.tag == .wasi) return error.SkipZigTest; // TODO
970970
971971 const S = struct {
......@@ -995,7 +995,7 @@ test "cast fn to async fn when it is inferred to be async, awaited directly" {
995995}
996996
997997test "await does not force async if callee is blocking" {
998 if (builtin.zig_backend != .stage1) return error.SkipZigTest; // TODO
998 if (true) return error.SkipZigTest; // TODO
999999 if (builtin.os.tag == .wasi) return error.SkipZigTest; // TODO
10001000
10011001 const S = struct {
......@@ -1008,7 +1008,7 @@ test "await does not force async if callee is blocking" {
10081008}
10091009
10101010test "recursive async function" {
1011 if (builtin.zig_backend != .stage1) return error.SkipZigTest; // TODO
1011 if (true) return error.SkipZigTest; // TODO
10121012 if (builtin.os.tag == .wasi) return error.SkipZigTest; // TODO
10131013
10141014 try expect(recursiveAsyncFunctionTest(false).doTheTest() == 55);
......@@ -1073,7 +1073,7 @@ fn recursiveAsyncFunctionTest(comptime suspending_implementation: bool) type {
10731073}
10741074
10751075test "@asyncCall with comptime-known function, but not awaited directly" {
1076 if (builtin.zig_backend != .stage1) return error.SkipZigTest; // TODO
1076 if (true) return error.SkipZigTest; // TODO
10771077 if (builtin.os.tag == .wasi) return error.SkipZigTest; // TODO
10781078
10791079 const S = struct {
......@@ -1105,7 +1105,7 @@ test "@asyncCall with comptime-known function, but not awaited directly" {
11051105}
11061106
11071107test "@asyncCall with actual frame instead of byte buffer" {
1108 if (builtin.zig_backend != .stage1) return error.SkipZigTest; // TODO
1108 if (true) return error.SkipZigTest; // TODO
11091109 if (builtin.os.tag == .wasi) return error.SkipZigTest; // TODO
11101110
11111111 const S = struct {
......@@ -1122,7 +1122,7 @@ test "@asyncCall with actual frame instead of byte buffer" {
11221122}
11231123
11241124test "@asyncCall using the result location inside the frame" {
1125 if (builtin.zig_backend != .stage1) return error.SkipZigTest; // TODO
1125 if (true) return error.SkipZigTest; // TODO
11261126 if (builtin.os.tag == .wasi) return error.SkipZigTest; // TODO
11271127
11281128 const S = struct {
......@@ -1152,7 +1152,7 @@ test "@asyncCall using the result location inside the frame" {
11521152}
11531153
11541154test "@TypeOf an async function call of generic fn with error union type" {
1155 if (builtin.zig_backend != .stage1) return error.SkipZigTest; // TODO
1155 if (true) return error.SkipZigTest; // TODO
11561156 if (builtin.os.tag == .wasi) return error.SkipZigTest; // TODO
11571157
11581158 const S = struct {
......@@ -1166,7 +1166,7 @@ test "@TypeOf an async function call of generic fn with error union type" {
11661166}
11671167
11681168test "using @TypeOf on a generic function call" {
1169 if (builtin.zig_backend != .stage1) return error.SkipZigTest; // TODO
1169 if (true) return error.SkipZigTest; // TODO
11701170 if (builtin.os.tag == .wasi) return error.SkipZigTest; // TODO
11711171
11721172 const S = struct {
......@@ -1194,7 +1194,7 @@ test "using @TypeOf on a generic function call" {
11941194}
11951195
11961196test "recursive call of await @asyncCall with struct return type" {
1197 if (builtin.zig_backend != .stage1) return error.SkipZigTest; // TODO
1197 if (true) return error.SkipZigTest; // TODO
11981198 if (builtin.os.tag == .wasi) return error.SkipZigTest; // TODO
11991199
12001200 const S = struct {
......@@ -1233,7 +1233,7 @@ test "recursive call of await @asyncCall with struct return type" {
12331233}
12341234
12351235test "nosuspend function call" {
1236 if (builtin.zig_backend != .stage1) return error.SkipZigTest; // TODO
1236 if (true) return error.SkipZigTest; // TODO
12371237 if (builtin.os.tag == .wasi) return error.SkipZigTest; // TODO
12381238
12391239 const S = struct {
......@@ -1252,7 +1252,7 @@ test "nosuspend function call" {
12521252}
12531253
12541254test "await used in expression and awaiting fn with no suspend but async calling convention" {
1255 if (builtin.zig_backend != .stage1) return error.SkipZigTest; // TODO
1255 if (true) return error.SkipZigTest; // TODO
12561256 if (builtin.os.tag == .wasi) return error.SkipZigTest; // TODO
12571257
12581258 const S = struct {
......@@ -1271,7 +1271,7 @@ test "await used in expression and awaiting fn with no suspend but async calling
12711271}
12721272
12731273test "await used in expression after a fn call" {
1274 if (builtin.zig_backend != .stage1) return error.SkipZigTest; // TODO
1274 if (true) return error.SkipZigTest; // TODO
12751275 if (builtin.os.tag == .wasi) return error.SkipZigTest; // TODO
12761276
12771277 const S = struct {
......@@ -1292,7 +1292,7 @@ test "await used in expression after a fn call" {
12921292}
12931293
12941294test "async fn call used in expression after a fn call" {
1295 if (builtin.zig_backend != .stage1) return error.SkipZigTest; // TODO
1295 if (true) return error.SkipZigTest; // TODO
12961296 if (builtin.os.tag == .wasi) return error.SkipZigTest; // TODO
12971297
12981298 const S = struct {
......@@ -1312,7 +1312,7 @@ test "async fn call used in expression after a fn call" {
13121312}
13131313
13141314test "suspend in for loop" {
1315 if (builtin.zig_backend != .stage1) return error.SkipZigTest; // TODO
1315 if (true) return error.SkipZigTest; // TODO
13161316 if (builtin.os.tag == .wasi) return error.SkipZigTest; // TODO
13171317
13181318 const S = struct {
......@@ -1341,7 +1341,7 @@ test "suspend in for loop" {
13411341}
13421342
13431343test "suspend in while loop" {
1344 if (builtin.zig_backend != .stage1) return error.SkipZigTest; // TODO
1344 if (true) return error.SkipZigTest; // TODO
13451345 if (builtin.os.tag == .wasi) return error.SkipZigTest; // TODO
13461346
13471347 const S = struct {
......@@ -1381,7 +1381,7 @@ test "suspend in while loop" {
13811381}
13821382
13831383test "correctly spill when returning the error union result of another async fn" {
1384 if (builtin.zig_backend != .stage1) return error.SkipZigTest; // TODO
1384 if (true) return error.SkipZigTest; // TODO
13851385 if (builtin.os.tag == .wasi) return error.SkipZigTest; // TODO
13861386
13871387 const S = struct {
......@@ -1407,7 +1407,7 @@ test "correctly spill when returning the error union result of another async fn"
14071407}
14081408
14091409test "spill target expr in a for loop" {
1410 if (builtin.zig_backend != .stage1) return error.SkipZigTest; // TODO
1410 if (true) return error.SkipZigTest; // TODO
14111411 if (builtin.os.tag == .wasi) return error.SkipZigTest; // TODO
14121412
14131413 const S = struct {
......@@ -1441,7 +1441,7 @@ test "spill target expr in a for loop" {
14411441}
14421442
14431443test "spill target expr in a for loop, with a var decl in the loop body" {
1444 if (builtin.zig_backend != .stage1) return error.SkipZigTest; // TODO
1444 if (true) return error.SkipZigTest; // TODO
14451445 if (builtin.os.tag == .wasi) return error.SkipZigTest; // TODO
14461446
14471447 const S = struct {
......@@ -1480,7 +1480,7 @@ test "spill target expr in a for loop, with a var decl in the loop body" {
14801480}
14811481
14821482test "async call with @call" {
1483 if (builtin.zig_backend != .stage1) return error.SkipZigTest; // TODO
1483 if (true) return error.SkipZigTest; // TODO
14841484 if (builtin.os.tag == .wasi) return error.SkipZigTest; // TODO
14851485
14861486 const S = struct {
......@@ -1505,7 +1505,7 @@ test "async call with @call" {
15051505}
15061506
15071507test "async function passed 0-bit arg after non-0-bit arg" {
1508 if (builtin.zig_backend != .stage1) return error.SkipZigTest; // TODO
1508 if (true) return error.SkipZigTest; // TODO
15091509 if (builtin.os.tag == .wasi) return error.SkipZigTest; // TODO
15101510
15111511 const S = struct {
......@@ -1529,7 +1529,7 @@ test "async function passed 0-bit arg after non-0-bit arg" {
15291529}
15301530
15311531test "async function passed align(16) arg after align(8) arg" {
1532 if (builtin.zig_backend != .stage1) return error.SkipZigTest; // TODO
1532 if (true) return error.SkipZigTest; // TODO
15331533 if (builtin.os.tag == .wasi) return error.SkipZigTest; // TODO
15341534
15351535 const S = struct {
......@@ -1554,7 +1554,7 @@ test "async function passed align(16) arg after align(8) arg" {
15541554}
15551555
15561556test "async function call resolves target fn frame, comptime func" {
1557 if (builtin.zig_backend != .stage1) return error.SkipZigTest; // TODO
1557 if (true) return error.SkipZigTest; // TODO
15581558 if (builtin.os.tag == .wasi) return error.SkipZigTest; // TODO
15591559
15601560 const S = struct {
......@@ -1579,7 +1579,7 @@ test "async function call resolves target fn frame, comptime func" {
15791579}
15801580
15811581test "async function call resolves target fn frame, runtime func" {
1582 if (builtin.zig_backend != .stage1) return error.SkipZigTest; // TODO
1582 if (true) return error.SkipZigTest; // TODO
15831583 if (builtin.os.tag == .wasi) return error.SkipZigTest; // TODO
15841584
15851585 const S = struct {
......@@ -1605,7 +1605,7 @@ test "async function call resolves target fn frame, runtime func" {
16051605}
16061606
16071607test "properly spill optional payload capture value" {
1608 if (builtin.zig_backend != .stage1) return error.SkipZigTest; // TODO
1608 if (true) return error.SkipZigTest; // TODO
16091609 if (builtin.os.tag == .wasi) return error.SkipZigTest; // TODO
16101610
16111611 const S = struct {
......@@ -1632,7 +1632,7 @@ test "properly spill optional payload capture value" {
16321632}
16331633
16341634test "handle defer interfering with return value spill" {
1635 if (builtin.zig_backend != .stage1) return error.SkipZigTest; // TODO
1635 if (true) return error.SkipZigTest; // TODO
16361636 if (builtin.os.tag == .wasi) return error.SkipZigTest; // TODO
16371637
16381638 const S = struct {
......@@ -1675,7 +1675,7 @@ test "handle defer interfering with return value spill" {
16751675}
16761676
16771677test "take address of temporary async frame" {
1678 if (builtin.zig_backend != .stage1) return error.SkipZigTest; // TODO
1678 if (true) return error.SkipZigTest; // TODO
16791679 if (builtin.os.tag == .wasi) return error.SkipZigTest; // TODO
16801680
16811681 const S = struct {
......@@ -1707,7 +1707,7 @@ test "take address of temporary async frame" {
17071707}
17081708
17091709test "nosuspend await" {
1710 if (builtin.zig_backend != .stage1) return error.SkipZigTest; // TODO
1710 if (true) return error.SkipZigTest; // TODO
17111711 if (builtin.os.tag == .wasi) return error.SkipZigTest; // TODO
17121712
17131713 const S = struct {
......@@ -1731,7 +1731,7 @@ test "nosuspend await" {
17311731}
17321732
17331733test "nosuspend on function calls" {
1734 if (builtin.zig_backend != .stage1) return error.SkipZigTest; // TODO
1734 if (true) return error.SkipZigTest; // TODO
17351735 if (builtin.os.tag == .wasi) return error.SkipZigTest; // TODO
17361736
17371737 const S0 = struct {
......@@ -1750,7 +1750,7 @@ test "nosuspend on function calls" {
17501750}
17511751
17521752test "nosuspend on async function calls" {
1753 if (builtin.zig_backend != .stage1) return error.SkipZigTest; // TODO
1753 if (true) return error.SkipZigTest; // TODO
17541754 if (builtin.os.tag == .wasi) return error.SkipZigTest; // TODO
17551755
17561756 const S0 = struct {
......@@ -1771,7 +1771,7 @@ test "nosuspend on async function calls" {
17711771}
17721772
17731773// test "resume nosuspend async function calls" {
1774// if (builtin.zig_backend != .stage1) return error.SkipZigTest; // if (builtin.os.tag == .wasi) return error.SkipZigTest; // TODO
1774// if (true) return error.SkipZigTest; // if (builtin.os.tag == .wasi) return error.SkipZigTest; // TODO
17751775// const S0 = struct {
17761776// b: i32 = 42,
17771777// };
......@@ -1794,7 +1794,7 @@ test "nosuspend on async function calls" {
17941794// }
17951795
17961796test "nosuspend resume async function calls" {
1797 if (builtin.zig_backend != .stage1) return error.SkipZigTest; // TODO
1797 if (true) return error.SkipZigTest; // TODO
17981798 if (builtin.os.tag == .wasi) return error.SkipZigTest; // TODO
17991799
18001800 const S0 = struct {
......@@ -1819,7 +1819,7 @@ test "nosuspend resume async function calls" {
18191819}
18201820
18211821test "avoid forcing frame alignment resolution implicit cast to *anyopaque" {
1822 if (builtin.zig_backend != .stage1) return error.SkipZigTest; // TODO
1822 if (true) return error.SkipZigTest; // TODO
18231823 if (builtin.os.tag == .wasi) return error.SkipZigTest; // TODO
18241824
18251825 const S = struct {
......@@ -1838,7 +1838,7 @@ test "avoid forcing frame alignment resolution implicit cast to *anyopaque" {
18381838}
18391839
18401840test "@asyncCall with pass-by-value arguments" {
1841 if (builtin.zig_backend != .stage1) return error.SkipZigTest; // TODO
1841 if (true) return error.SkipZigTest; // TODO
18421842 if (builtin.os.tag == .wasi) return error.SkipZigTest; // TODO
18431843
18441844 const F0: u64 = 0xbeefbeefbeefbeef;
......@@ -1874,7 +1874,7 @@ test "@asyncCall with pass-by-value arguments" {
18741874}
18751875
18761876test "@asyncCall with arguments having non-standard alignment" {
1877 if (builtin.zig_backend != .stage1) return error.SkipZigTest; // TODO
1877 if (true) return error.SkipZigTest; // TODO
18781878 if (builtin.os.tag == .wasi) return error.SkipZigTest; // TODO
18791879
18801880 const F0: u64 = 0xbeefbeef;
test/behavior/atomics.zig+3-5
......@@ -151,9 +151,7 @@ test "cmpxchg on a global variable" {
151151 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
152152 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
153153
154 if ((builtin.zig_backend == .stage1 or builtin.zig_backend == .stage2_llvm) and
155 builtin.cpu.arch == .aarch64)
156 {
154 if (builtin.zig_backend == .stage2_llvm and builtin.cpu.arch == .aarch64) {
157155 // https://github.com/ziglang/zig/issues/10627
158156 return error.SkipZigTest;
159157 }
......@@ -220,8 +218,8 @@ test "atomicrmw with floats" {
220218 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
221219 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
222220
223 if ((builtin.zig_backend == .stage1 or builtin.zig_backend == .stage2_llvm or
224 builtin.zig_backend == .stage2_c) and builtin.cpu.arch == .aarch64)
221 if ((builtin.zig_backend == .stage2_llvm or builtin.zig_backend == .stage2_c) and
222 builtin.cpu.arch == .aarch64)
225223 {
226224 // https://github.com/ziglang/zig/issues/10627
227225 return error.SkipZigTest;
test/behavior/await_struct.zig+1-1
......@@ -10,7 +10,7 @@ var await_a_promise: anyframe = undefined;
1010var await_final_result = Foo{ .x = 0 };
1111
1212test "coroutine await struct" {
13 if (builtin.zig_backend != .stage1) return error.SkipZigTest; // TODO
13 if (true) return error.SkipZigTest; // TODO
1414
1515 await_seq('a');
1616 var p = async await_amain();
test/behavior/basic.zig+1-19
......@@ -198,11 +198,6 @@ const OpaqueA = opaque {};
198198const OpaqueB = opaque {};
199199
200200test "opaque types" {
201 if (builtin.zig_backend == .stage1) {
202 // stage1 gets the type names wrong
203 return error.SkipZigTest;
204 }
205
206201 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
207202
208203 try expect(*OpaqueA != *OpaqueB);
......@@ -290,7 +285,6 @@ fn fB() []const u8 {
290285
291286test "call function pointer in struct" {
292287 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;
293 if (builtin.zig_backend == .stage1) return error.SkipZigTest;
294288
295289 try expect(mem.eql(u8, f3(true), "a"));
296290 try expect(mem.eql(u8, f3(false), "b"));
......@@ -329,7 +323,6 @@ fn copy(src: *const u64, dst: *u64) void {
329323}
330324
331325test "call result of if else expression" {
332 if (builtin.zig_backend == .stage1) return error.SkipZigTest; // stage1 has different function pointers
333326 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;
334327 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest;
335328 if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest;
......@@ -573,22 +566,16 @@ fn emptyFn() void {}
573566
574567const addr1 = @ptrCast(*const u8, &emptyFn);
575568test "comptime cast fn to ptr" {
576 if (builtin.zig_backend == .stage1) return error.SkipZigTest;
577
578569 const addr2 = @ptrCast(*const u8, &emptyFn);
579570 comptime try expect(addr1 == addr2);
580571}
581572
582573test "equality compare fn ptrs" {
583 if (builtin.zig_backend == .stage1) return error.SkipZigTest;
584
585574 var a = &emptyFn;
586575 try expect(a == a);
587576}
588577
589578test "self reference through fn ptr field" {
590 if (builtin.zig_backend == .stage1) return error.SkipZigTest;
591
592579 const S = struct {
593580 const A = struct {
594581 f: *const fn (A) u8,
......@@ -783,10 +770,6 @@ test "auto created variables have correct alignment" {
783770}
784771
785772test "extern variable with non-pointer opaque type" {
786 if (builtin.zig_backend == .stage1) {
787 // Regressed with LLVM 14
788 return error.SkipZigTest;
789 }
790773 if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest; // TODO
791774 if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO
792775 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
......@@ -963,7 +946,7 @@ test "array type comes from generic function" {
963946}
964947
965948test "generic function uses return type of other generic function" {
966 if (builtin.zig_backend != .stage1) {
949 if (true) {
967950 // This test has been failing sporadically on the CI.
968951 // It's not enough to verify that it works locally; we need to diagnose why
969952 // 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" {
10671050}
10681051
10691052test "namespace lookup ignores decl causing the lookup" {
1070 if (builtin.zig_backend == .stage1) return error.SkipZigTest;
10711053 if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest; // TODO
10721054 if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO
10731055 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" {
155155}
156156
157157test "@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 }
162158 if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest;
163159 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;
164160 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest;
......@@ -323,7 +319,6 @@ test "@bitCast packed struct of floats" {
323319}
324320
325321test "comptime @bitCast packed struct to int and back" {
326 if (builtin.zig_backend == .stage1) return error.SkipZigTest;
327322 if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest;
328323 if (builtin.zig_backend == .stage2_c) return error.SkipZigTest;
329324 if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest;
......@@ -377,8 +372,7 @@ test "comptime bitcast with fields following f80" {
377372}
378373
379374test "bitcast vector to integer and back" {
380 if (builtin.zig_backend != .stage1) 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
375 if (true) return error.SkipZigTest; // TODO: https://github.com/ziglang/zig/issues/13220
382376
383377 const arr: [16]bool = [_]bool{ true, false } ++ [_]bool{true} ** 14;
384378 var x = @splat(16, true);
test/behavior/bitreverse.zig-6
......@@ -5,8 +5,6 @@ const minInt = std.math.minInt;
55
66test "@bitReverse large exotic integer" {
77 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
119 try expect(@bitReverse(@as(u95, 0x123456789abcdef111213141)) == 0x4146424447bd9eac8f351624);
1210}
......@@ -96,7 +94,6 @@ fn vector8() !void {
9694}
9795
9896test "bitReverse vectors u8" {
99 if (builtin.zig_backend == .stage1) return error.SkipZigTest;
10097 if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest;
10198 if (builtin.zig_backend == .stage2_c) return error.SkipZigTest;
10299 if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest;
......@@ -115,7 +112,6 @@ fn vector16() !void {
115112}
116113
117114test "bitReverse vectors u16" {
118 if (builtin.zig_backend == .stage1) return error.SkipZigTest;
119115 if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest;
120116 if (builtin.zig_backend == .stage2_c) return error.SkipZigTest;
121117 if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest;
......@@ -134,7 +130,6 @@ fn vector24() !void {
134130}
135131
136132test "bitReverse vectors u24" {
137 if (builtin.zig_backend == .stage1) return error.SkipZigTest;
138133 if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest;
139134 if (builtin.zig_backend == .stage2_c) return error.SkipZigTest;
140135 if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest;
......@@ -153,7 +148,6 @@ fn vector0() !void {
153148}
154149
155150test "bitReverse vectors u0" {
156 if (builtin.zig_backend == .stage1) return error.SkipZigTest;
157151 if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest;
158152 if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest;
159153
test/behavior/bugs/10147.zig+1-4
......@@ -1,8 +1,7 @@
11const builtin = @import("builtin");
22const std = @import("std");
33
4test "uses correct LLVM builtin" {
5 if (builtin.zig_backend == .stage1) return error.SkipZigTest;
4test "test calling @clz on both vector and scalar inputs" {
65 if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest; // TODO
76 if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO
87 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
......@@ -11,8 +10,6 @@ test "uses correct LLVM builtin" {
1110
1211 var x: u32 = 0x1;
1312 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.
1613 var a = @clz(x);
1714 var b = @clz(y);
1815 try std.testing.expectEqual(@as(u6, 31), a);
test/behavior/bugs/11159.zig-2
......@@ -8,8 +8,6 @@ test {
88}
99
1010test {
11 if (builtin.zig_backend == .stage1) return error.SkipZigTest; // TODO
12
1311 const S = struct {
1412 comptime x: i32 = 0,
1513 comptime y: u32 = 0,
test/behavior/bugs/11162.zig+2-3
......@@ -2,9 +2,8 @@ const std = @import("std");
22const builtin = @import("builtin");
33const expect = std.testing.expect;
44
5test "aggregate initializers should allow initializing comptime fields, verifying equality (stage2 only)" {
6 if (builtin.zig_backend == .stage1) return error.SkipZigTest; // TODO
7 if (builtin.zig_backend != .stage1) return error.SkipZigTest; // TODO
5test "aggregate initializers should allow initializing comptime fields, verifying equality" {
6 if (true) return error.SkipZigTest; // TODO
87
98 var x: u32 = 15;
109 const T = @TypeOf(.{ @as(i32, -1234), @as(u32, 5678), x });
test/behavior/bugs/11227.zig-2
......@@ -6,8 +6,6 @@ fn foo() u32 {
66}
77const bar = foo;
88test "pointer to alias behaves same as pointer to function" {
9 if (builtin.zig_backend == .stage1) return error.SkipZigTest; // stage1 has different function pointers
10
119 var a = &bar;
1210 try std.testing.expect(foo() == a());
1311}
test/behavior/bugs/11816.zig-1
......@@ -3,7 +3,6 @@ const builtin = @import("builtin");
33
44test {
55 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
6 if (builtin.zig_backend == .stage1) return error.SkipZigTest;
76
87 var x: u32 = 3;
98 const val: usize = while (true) switch (x) {
test/behavior/bugs/12486.zig-2
......@@ -23,8 +23,6 @@ const ErrStruct = struct {
2323};
2424
2525test {
26 if (@import("builtin").zig_backend == .stage1) return error.SkipZigTest;
27
2826 _ = OptEnum{
2927 .opt_enum = .{
3028 .EnumVariant = 1,
test/behavior/bugs/12723.zig-3
......@@ -1,8 +1,5 @@
11const 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.
63test "Non-exhaustive enum backed by comptime_int" {
74 const E = enum(comptime_int) { a, b, c, _ };
85 comptime var e: E = .a;
test/behavior/bugs/1277.zig-1
......@@ -12,7 +12,6 @@ fn f() i32 {
1212}
1313
1414test "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
1615 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
1716 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
1817 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 {
88
99test {
1010 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
11 if (builtin.zig_backend == .stage1) return error.SkipZigTest;
1211
1312 try std.testing.expect((@This(){}).capacity() == 64);
1413}
test/behavior/bugs/12801-2.zig-1
......@@ -14,7 +14,6 @@ const Auto = struct {
1414 }
1515};
1616test {
17 if (builtin.zig_backend == .stage1) return error.SkipZigTest;
1817 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
1918 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
2019 if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO
test/behavior/bugs/12885.zig-2
......@@ -11,8 +11,6 @@ const Foo = @Type(.{
1111 .ErrorSet = &info.args,
1212});
1313test "ErrorSet comptime_field_ptr" {
14 if (@import("builtin").zig_backend == .stage1) return error.SkipZigTest;
15
1614 try expect(Foo == error{bar});
1715}
1816
test/behavior/bugs/12891.zig-2
......@@ -7,8 +7,6 @@ test "issue12891" {
77 try std.testing.expect(i < f);
88}
99test "nan" {
10 if (builtin.zig_backend == .stage1) return error.SkipZigTest; // TODO
11
1210 const f = comptime std.math.nan(f64);
1311 var i: usize = 0;
1412 try std.testing.expect(!(f < i));
test/behavior/bugs/12911.zig-2
......@@ -5,7 +5,5 @@ const Thing = struct {
55 array: [1]Item,
66};
77test {
8 if (builtin.zig_backend == .stage1) return error.SkipZigTest;
9
108 _ = Thing{ .array = undefined };
119}
test/behavior/bugs/1310.zig+1-2
......@@ -22,7 +22,6 @@ fn agent_callback(_vm: [*]VM, options: [*]u8) callconv(.C) i32 {
2222 return 11;
2323}
2424
25test "fixed" {
26 if (builtin.zig_backend == .stage1) return error.SkipZigTest;
25test {
2726 try expect(agent_callback(undefined, undefined) == 11);
2827}
test/behavior/bugs/2006.zig+1-8
......@@ -9,12 +9,5 @@ test "bug 2006" {
99 var a: S = undefined;
1010 a = S{ .p = undefined };
1111 try expect(@sizeOf(S) != 0);
12 if (@import("builtin").zig_backend != .stage1) {
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 }
12 try expect(@sizeOf(*void) == @sizeOf(*i32));
2013}
test/behavior/bugs/3112.zig-1
......@@ -13,7 +13,6 @@ fn prev(p: ?State) void {
1313
1414test "zig test crash" {
1515 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;
16 if (builtin.zig_backend == .stage1) return error.SkipZigTest;
1716 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest;
1817 var global: State = undefined;
1918 global.enter = prev;
test/behavior/bugs/3779.zig-3
......@@ -6,7 +6,6 @@ const tag_name = @tagName(TestEnum.TestEnumValue);
66const ptr_tag_name: [*:0]const u8 = tag_name;
77
88test "@tagName() returns a string literal" {
9 if (builtin.zig_backend == .stage1) return error.SkipZigTest; // stage1 gets the type wrong
109 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
1110
1211 try std.testing.expect(*const [13:0]u8 == @TypeOf(tag_name));
......@@ -19,7 +18,6 @@ const error_name = @errorName(TestError.TestErrorCode);
1918const ptr_error_name: [*:0]const u8 = error_name;
2019
2120test "@errorName() returns a string literal" {
22 if (builtin.zig_backend == .stage1) return error.SkipZigTest; // stage1 gets the type wrong
2321 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
2422
2523 try std.testing.expect(*const [13:0]u8 == @TypeOf(error_name));
......@@ -32,7 +30,6 @@ const type_name = @typeName(TestType);
3230const ptr_type_name: [*:0]const u8 = type_name;
3331
3432test "@typeName() returns a string literal" {
35 if (builtin.zig_backend == .stage1) return error.SkipZigTest; // stage1 gets the type wrong
3633 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
3734
3835 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" {
88}
99
1010fn hasNoBits(comptime T: type) bool {
11 if (@import("builtin").zig_backend != .stage1) {
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;
11 return @sizeOf(T) == @sizeOf(*i32);
1812}
test/behavior/bugs/920.zig+2-11
......@@ -2,23 +2,14 @@ const builtin = @import("builtin");
22const std = @import("std");
33const 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
145const ZigTable = struct {
156 r: f64,
167 x: [257]f64,
178 f: [257]f64,
189
19 pdf: pdfFn,
10 pdf: *const fn (f64) f64,
2011 is_symmetric: bool,
21 zero_case: zeroCaseFn,
12 zero_case: *const fn (*Random, f64) f64,
2213};
2314
2415fn 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");
33const expect = std.testing.expect;
44
55test "@byteSwap integers" {
6 if (builtin.zig_backend == .stage1) return error.SkipZigTest;
76 if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest;
87 if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest;
98 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest;
......@@ -62,7 +61,6 @@ fn vector8() !void {
6261}
6362
6463test "@byteSwap vectors u8" {
65 if (builtin.zig_backend == .stage1) return error.SkipZigTest;
6664 if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest;
6765 if (builtin.zig_backend == .stage2_c) return error.SkipZigTest;
6866 if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest;
......@@ -81,7 +79,6 @@ fn vector16() !void {
8179}
8280
8381test "@byteSwap vectors u16" {
84 if (builtin.zig_backend == .stage1) return error.SkipZigTest;
8582 if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest;
8683 if (builtin.zig_backend == .stage2_c) return error.SkipZigTest;
8784 if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest;
......@@ -100,7 +97,6 @@ fn vector24() !void {
10097}
10198
10299test "@byteSwap vectors u24" {
103 if (builtin.zig_backend == .stage1) return error.SkipZigTest;
104100 if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest;
105101 if (builtin.zig_backend == .stage2_c) return error.SkipZigTest;
106102 if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest;
......@@ -119,7 +115,6 @@ fn vector0() !void {
119115}
120116
121117test "@byteSwap vectors u0" {
122 if (builtin.zig_backend == .stage1) return error.SkipZigTest;
123118 if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest;
124119 if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest;
125120
test/behavior/call.zig+4-10
......@@ -45,10 +45,7 @@ test "basic invocations" {
4545 }
4646 {
4747 // call of non comptime-known function
48 var alias_foo = switch (builtin.zig_backend) {
49 .stage1 => foo,
50 else => &foo,
51 };
48 var alias_foo = &foo;
5249 try expect(@call(.{ .modifier = .no_async }, alias_foo, .{}) == 1234);
5350 try expect(@call(.{ .modifier = .never_tail }, alias_foo, .{}) == 1234);
5451 try expect(@call(.{ .modifier = .never_inline }, alias_foo, .{}) == 1234);
......@@ -71,7 +68,9 @@ test "tuple parameters" {
7168 try expect(@call(.{}, add, .{ 12, b }) == 46);
7269 try expect(@call(.{}, add, .{ a, b }) == 46);
7370 try expect(@call(.{}, add, .{ 12, 34 }) == 46);
74 if (builtin.zig_backend == .stage1) comptime try expect(@call(.{}, add, .{ 12, 34 }) == 46); // TODO
71 if (false) {
72 comptime try expect(@call(.{}, add, .{ 12, 34 }) == 46); // TODO
73 }
7574 try expect(comptime @call(.{}, add, .{ 12, 34 }) == 46);
7675 {
7776 const separate_args0 = .{ a, b };
......@@ -246,8 +245,6 @@ test "function call with 40 arguments" {
246245}
247246
248247test "arguments to comptime parameters generated in comptime blocks" {
249 if (builtin.zig_backend == .stage1) return error.SkipZigTest;
250
251248 const S = struct {
252249 fn fortyTwo() i32 {
253250 return 42;
......@@ -261,7 +258,6 @@ test "arguments to comptime parameters generated in comptime blocks" {
261258}
262259
263260test "forced tail call" {
264 if (builtin.zig_backend == .stage1) return error.SkipZigTest;
265261 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
266262 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
267263 if (builtin.zig_backend == .stage2_c) return error.SkipZigTest; // TODO
......@@ -294,7 +290,6 @@ test "forced tail call" {
294290}
295291
296292test "inline call preserves tail call" {
297 if (builtin.zig_backend == .stage1) return error.SkipZigTest;
298293 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
299294 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
300295 if (builtin.zig_backend == .stage2_c) return error.SkipZigTest; // TODO
......@@ -329,7 +324,6 @@ test "inline call preserves tail call" {
329324}
330325
331326test "inline call doesn't re-evaluate non generic struct" {
332 if (builtin.zig_backend == .stage1) return error.SkipZigTest;
333327 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
334328 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
335329 if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO
test/behavior/cast.zig-15
......@@ -113,8 +113,6 @@ test "@intToFloat" {
113113}
114114
115115test "@intToFloat(f80)" {
116 if (builtin.zig_backend == .stage1) return error.SkipZigTest;
117
118116 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
119117 if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO
120118 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
......@@ -699,11 +697,6 @@ test "peer type resolution: error set supersets" {
699697}
700698
701699test "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
707700 if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO
708701 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
709702 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
......@@ -733,11 +726,6 @@ test "peer type resolution: disjoint error sets" {
733726}
734727
735728test "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
741729 if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO
742730 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
743731 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
......@@ -1080,7 +1068,6 @@ fn incrementVoidPtrArray(array: ?*anyopaque, len: usize) void {
10801068}
10811069
10821070test "compile time int to ptr of function" {
1083 if (builtin.zig_backend == .stage1) return error.SkipZigTest;
10841071 if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO
10851072
10861073 try foobar(FUNCTION_CONSTANT);
......@@ -1421,8 +1408,6 @@ test "floatToInt to zero-bit int" {
14211408}
14221409
14231410test "peer type resolution of function pointer and function body" {
1424 if (builtin.zig_backend == .stage1) return error.SkipZigTest;
1425
14261411 const T = fn () u32;
14271412 const a: T = undefined;
14281413 const b: *const T = undefined;
test/behavior/comptime_memory.zig+11-32
......@@ -4,8 +4,6 @@ const testing = @import("std").testing;
44const ptr_size = @sizeOf(usize);
55
66test "type pun signed and unsigned as single pointer" {
7 if (builtin.zig_backend == .stage1) return error.SkipZigTest;
8
97 comptime {
108 var x: u32 = 0;
119 const y = @ptrCast(*i32, &x);
......@@ -15,8 +13,6 @@ test "type pun signed and unsigned as single pointer" {
1513}
1614
1715test "type pun signed and unsigned as many pointer" {
18 if (builtin.zig_backend == .stage1) return error.SkipZigTest;
19
2016 comptime {
2117 var x: u32 = 0;
2218 const y = @ptrCast([*]i32, &x);
......@@ -26,8 +22,6 @@ test "type pun signed and unsigned as many pointer" {
2622}
2723
2824test "type pun signed and unsigned as array pointer" {
29 if (builtin.zig_backend == .stage1) return error.SkipZigTest;
30
3125 comptime {
3226 var x: u32 = 0;
3327 const y = @ptrCast(*[1]i32, &x);
......@@ -37,8 +31,7 @@ test "type pun signed and unsigned as array pointer" {
3731}
3832
3933test "type pun signed and unsigned as offset many pointer" {
40 if (builtin.zig_backend == .stage1) return error.SkipZigTest;
41 if (builtin.zig_backend != .stage1) {
34 if (true) {
4235 // TODO https://github.com/ziglang/zig/issues/9646
4336 return error.SkipZigTest;
4437 }
......@@ -53,8 +46,7 @@ test "type pun signed and unsigned as offset many pointer" {
5346}
5447
5548test "type pun signed and unsigned as array pointer" {
56 if (builtin.zig_backend == .stage1) return error.SkipZigTest;
57 if (builtin.zig_backend != .stage1) {
49 if (true) {
5850 // TODO https://github.com/ziglang/zig/issues/9646
5951 return error.SkipZigTest;
6052 }
......@@ -69,8 +61,6 @@ test "type pun signed and unsigned as array pointer" {
6961}
7062
7163test "type pun value and struct" {
72 if (builtin.zig_backend == .stage1) return error.SkipZigTest;
73
7464 comptime {
7565 const StructOfU32 = extern struct { x: u32 };
7666 var inst: StructOfU32 = .{ .x = 0 };
......@@ -85,7 +75,6 @@ fn bigToNativeEndian(comptime T: type, v: T) T {
8575 return if (endian == .Big) v else @byteSwap(v);
8676}
8777test "type pun endianness" {
88 if (builtin.zig_backend == .stage1) return error.SkipZigTest;
8978 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
9079
9180 comptime {
......@@ -179,8 +168,7 @@ fn doTypePunBitsTest(as_bits: *Bits) !void {
179168}
180169
181170test "type pun bits" {
182 if (builtin.zig_backend == .stage1) return error.SkipZigTest;
183 if (builtin.zig_backend != .stage1) {
171 if (true) {
184172 // TODO https://github.com/ziglang/zig/issues/9646
185173 return error.SkipZigTest;
186174 }
......@@ -197,8 +185,7 @@ const imports = struct {
197185
198186// Make sure lazy values work on their own, before getting into more complex tests
199187test "basic pointer preservation" {
200 if (builtin.zig_backend == .stage1) return error.SkipZigTest;
201 if (builtin.zig_backend != .stage1) {
188 if (true) {
202189 // TODO https://github.com/ziglang/zig/issues/9646
203190 return error.SkipZigTest;
204191 }
......@@ -211,8 +198,7 @@ test "basic pointer preservation" {
211198}
212199
213200test "byte copy preserves linker value" {
214 if (builtin.zig_backend == .stage1) return error.SkipZigTest;
215 if (builtin.zig_backend != .stage1) {
201 if (true) {
216202 // TODO https://github.com/ziglang/zig/issues/9646
217203 return error.SkipZigTest;
218204 }
......@@ -235,8 +221,7 @@ test "byte copy preserves linker value" {
235221}
236222
237223test "unordered byte copy preserves linker value" {
238 if (builtin.zig_backend == .stage1) return error.SkipZigTest;
239 if (builtin.zig_backend != .stage1) {
224 if (true) {
240225 // TODO https://github.com/ziglang/zig/issues/9646
241226 return error.SkipZigTest;
242227 }
......@@ -260,8 +245,7 @@ test "unordered byte copy preserves linker value" {
260245}
261246
262247test "shuffle chunks of linker value" {
263 if (builtin.zig_backend == .stage1) return error.SkipZigTest;
264 if (builtin.zig_backend != .stage1) {
248 if (true) {
265249 // TODO https://github.com/ziglang/zig/issues/9646
266250 return error.SkipZigTest;
267251 }
......@@ -279,8 +263,7 @@ test "shuffle chunks of linker value" {
279263}
280264
281265test "dance on linker values" {
282 if (builtin.zig_backend == .stage1) return error.SkipZigTest;
283 if (builtin.zig_backend != .stage1) {
266 if (true) {
284267 // TODO https://github.com/ziglang/zig/issues/9646
285268 return error.SkipZigTest;
286269 }
......@@ -311,8 +294,7 @@ test "dance on linker values" {
311294}
312295
313296test "offset array ptr by element size" {
314 if (builtin.zig_backend == .stage1) return error.SkipZigTest;
315 if (builtin.zig_backend != .stage1) {
297 if (true) {
316298 // TODO https://github.com/ziglang/zig/issues/9646
317299 return error.SkipZigTest;
318300 }
......@@ -339,8 +321,7 @@ test "offset array ptr by element size" {
339321}
340322
341323test "offset instance by field size" {
342 if (builtin.zig_backend == .stage1) return error.SkipZigTest;
343 if (builtin.zig_backend != .stage1) {
324 if (true) {
344325 // TODO https://github.com/ziglang/zig/issues/9646
345326 return error.SkipZigTest;
346327 }
......@@ -365,8 +346,7 @@ test "offset instance by field size" {
365346}
366347
367348test "offset field ptr by enclosing array element size" {
368 if (builtin.zig_backend == .stage1) return error.SkipZigTest;
369 if (builtin.zig_backend != .stage1) {
349 if (true) {
370350 // TODO https://github.com/ziglang/zig/issues/9646
371351 return error.SkipZigTest;
372352 }
......@@ -395,7 +375,6 @@ test "offset field ptr by enclosing array element size" {
395375}
396376
397377test "accessing reinterpreted memory of parent object" {
398 if (builtin.zig_backend == .stage1) return error.SkipZigTest;
399378 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
400379 const S = extern struct {
401380 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" {
151151}
152152
153153test "fn returning empty error set can be passed as fn returning any error - pointer" {
154 if (builtin.zig_backend == .stage1) return error.SkipZigTest;
155154 if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO
156155 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
157156
......@@ -465,11 +464,6 @@ test "nested catch" {
465464}
466465
467466test "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
473467 if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO
474468 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
475469
......@@ -582,9 +576,6 @@ pub fn testBuiltinErrorName(err: anyerror) [:0]const u8 {
582576}
583577
584578test "error set equality" {
585 // This tests using stage2 logic (#11022)
586 if (builtin.zig_backend == .stage1) return error.SkipZigTest;
587
588579 const a = error{One};
589580 const b = error{One};
590581
......@@ -752,7 +743,6 @@ const NoReturn = struct {
752743};
753744
754745test "error union of noreturn used with if" {
755 if (builtin.zig_backend == .stage1) return error.SkipZigTest;
756746 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
757747 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
758748 if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest; // TODO
......@@ -767,7 +757,6 @@ test "error union of noreturn used with if" {
767757}
768758
769759test "error union of noreturn used with try" {
770 if (builtin.zig_backend == .stage1) return error.SkipZigTest;
771760 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
772761 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
773762 if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest; // TODO
......@@ -779,7 +768,6 @@ test "error union of noreturn used with try" {
779768}
780769
781770test "error union of noreturn used with catch" {
782 if (builtin.zig_backend == .stage1) return error.SkipZigTest;
783771 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
784772 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
785773 if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest; // TODO
......@@ -807,7 +795,6 @@ test "alignment of wrapping an error union payload" {
807795}
808796
809797test "compare error union and error set" {
810 if (builtin.zig_backend == .stage1) return error.SkipZigTest;
811798 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;
812799
813800 var a: anyerror = error.Foo;
......@@ -857,8 +844,6 @@ test "error from comptime string" {
857844}
858845
859846test "field access of anyerror results in smaller error set" {
860 if (builtin.zig_backend == .stage1) return error.SkipZigTest;
861
862847 const E1 = @TypeOf(error.Foo);
863848 try expect(@TypeOf(E1.Foo) == E1);
864849 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 {
606606
607607// This one is still up for debate in the language specification.
608608// 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 literals
610// but it does not work if the values are constructed with comptime code, or if
609// Historically, stage1 had special case code to make this pass for string literals
610// but it did not work if the values are constructed with comptime code, or if
611611// arrays of non-u8 elements are used instead.
612612// The official language specification might not make this guarantee. However, if
613613// 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 for
615// string literals, to match stage1 and pass this test, however the end-game once
616// the lang spec issue is settled would be to use a global InternPool for comptime
617// memoized objects, making this behavior consistent across all types.
614// only string literals. This is why Zig currently has a string table for
615// string literals, to match legacy stage1 behavior and pass this test, however
616// the end-game once the lang spec issue is settled would be to use a global
617// InternPool for comptime memoized objects, making this behavior consistent
618// across all types.
618619test "string literal used as comptime slice is memoized" {
619620 const a = "link";
620621 const b = "link";
......@@ -742,7 +743,6 @@ fn scalar(x: u32) u32 {
742743}
743744
744745test "array concatenation peer resolves element types - value" {
745 if (builtin.zig_backend == .stage1) return error.SkipZigTest;
746746 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest;
747747 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;
748748
......@@ -758,7 +758,6 @@ test "array concatenation peer resolves element types - value" {
758758}
759759
760760test "array concatenation peer resolves element types - pointer" {
761 if (builtin.zig_backend == .stage1) return error.SkipZigTest;
762761 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest;
763762 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;
764763
......@@ -774,7 +773,6 @@ test "array concatenation peer resolves element types - pointer" {
774773}
775774
776775test "array concatenation sets the sentinel - value" {
777 if (builtin.zig_backend == .stage1) return error.SkipZigTest;
778776 if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest;
779777 if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest;
780778 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest;
......@@ -794,7 +792,6 @@ test "array concatenation sets the sentinel - value" {
794792}
795793
796794test "array concatenation sets the sentinel - pointer" {
797 if (builtin.zig_backend == .stage1) return error.SkipZigTest;
798795 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;
799796
800797 var a = [2]u3{ 1, 7 };
......@@ -811,7 +808,6 @@ test "array concatenation sets the sentinel - pointer" {
811808}
812809
813810test "array multiplication sets the sentinel - value" {
814 if (builtin.zig_backend == .stage1) return error.SkipZigTest;
815811 if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest;
816812 if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest;
817813 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest;
......@@ -829,7 +825,6 @@ test "array multiplication sets the sentinel - value" {
829825}
830826
831827test "array multiplication sets the sentinel - pointer" {
832 if (builtin.zig_backend == .stage1) return error.SkipZigTest;
833828 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest;
834829 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
894889}
895890
896891test "comptime pointer load through elem_ptr" {
897 if (builtin.zig_backend == .stage1) return error.SkipZigTest; // stage1 fails this test
898
899892 const S = struct {
900893 x: usize,
901894 };
......@@ -1038,7 +1031,6 @@ test "comptime break operand passing through runtime condition converted to runt
10381031}
10391032
10401033test "comptime break operand passing through runtime switch converted to runtime break" {
1041 if (builtin.zig_backend == .stage1) return error.SkipZigTest;
10421034 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
10431035
10441036 const S = struct {
......@@ -1294,8 +1286,6 @@ test "repeated value is correctly expanded" {
12941286}
12951287
12961288test "value in if block is comptime-known" {
1297 if (builtin.zig_backend == .stage1) return error.SkipZigTest;
1298
12991289 const first = blk: {
13001290 const s = if (false) "a" else "b";
13011291 break :blk "foo" ++ s;
......@@ -1330,8 +1320,6 @@ test "lazy value is resolved as slice operand" {
13301320}
13311321
13321322test "break from inline loop depends on runtime condition" {
1333 if (builtin.zig_backend == .stage1) return error.SkipZigTest;
1334
13351323 const S = struct {
13361324 fn foo(a: u8) bool {
13371325 return a == 4;
......@@ -1405,7 +1393,7 @@ test "length of global array is determinable at comptime" {
14051393
14061394test "continue nested inline for loop" {
14071395 // TODO: https://github.com/ziglang/zig/issues/13175
1408 if (builtin.zig_backend != .stage1) return error.SkipZigTest;
1396 if (true) return error.SkipZigTest;
14091397
14101398 var a: u8 = 0;
14111399 loop: inline for ([_]u8{ 1, 2 }) |x| {
......@@ -1422,7 +1410,7 @@ test "continue nested inline for loop" {
14221410
14231411test "continue nested inline for loop in named block expr" {
14241412 // TODO: https://github.com/ziglang/zig/issues/13175
1425 if (builtin.zig_backend != .stage1) return error.SkipZigTest;
1413 if (true) return error.SkipZigTest;
14261414
14271415 var a: u8 = 0;
14281416 loop: inline for ([_]u8{ 1, 2 }) |x| {
test/behavior/floatop.zig+1-15
......@@ -114,7 +114,7 @@ fn testSqrt() !void {
114114 try expect(math.approxEqAbs(f32, @sqrt(@as(f32, 1.1)), 1.0488088481701516, epsilon));
115115 try expect(math.approxEqAbs(f32, @sqrt(@as(f32, 2.0)), 1.4142135623730950, epsilon));
116116
117 if (builtin.zig_backend == .stage1) {
117 if (false) {
118118 if (has_f80_rt) {
119119 // TODO https://github.com/ziglang/zig/issues/10875
120120 if (builtin.os.tag != .freebsd) {
......@@ -181,10 +181,6 @@ test "more @sqrt f16 tests" {
181181}
182182
183183test "@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 }
188184 if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest; // TODO
189185 if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO
190186 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
......@@ -205,7 +201,6 @@ fn testSin() !void {
205201}
206202
207203test "@sin with vectors" {
208 if (builtin.zig_backend == .stage1) return error.SkipZigTest;
209204 if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest; // TODO
210205 if (builtin.zig_backend == .stage2_c) return error.SkipZigTest; // TODO
211206 if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO
......@@ -226,10 +221,6 @@ fn testSinWithVectors() !void {
226221}
227222
228223test "@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 }
233224 if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest; // TODO
234225 if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO
235226 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
......@@ -250,7 +241,6 @@ fn testCos() !void {
250241}
251242
252243test "@cos with vectors" {
253 if (builtin.zig_backend == .stage1) return error.SkipZigTest;
254244 if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest; // TODO
255245 if (builtin.zig_backend == .stage2_c) return error.SkipZigTest; // TODO
256246 if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO
......@@ -781,7 +771,6 @@ test "f128 at compile time is lossy" {
781771}
782772
783773test "comptime fixed-width float zero divided by zero produces NaN" {
784 if (builtin.zig_backend == .stage1) return error.SkipZigTest;
785774 if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest; // TODO
786775 if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO
787776 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" {
793782}
794783
795784test "comptime fixed-width float non-zero divided by zero produces signed Inf" {
796 if (builtin.zig_backend == .stage1) return error.SkipZigTest;
797785 if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest; // TODO
798786 if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO
799787 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" {
810798}
811799
812800test "comptime_float zero divided by zero produces zero" {
813 if (builtin.zig_backend == .stage1) return error.SkipZigTest;
814
815801 try expect((0.0 / 0.0) == 0.0);
816802}
817803
test/behavior/fn.zig-10
......@@ -68,8 +68,6 @@ fn outer(y: u32) *const fn (u32) u32 {
6868}
6969
7070test "return inner function which references comptime variable of outer function" {
71 if (builtin.zig_backend == .stage1) return error.SkipZigTest;
72
7371 var func = outer(10);
7472 try expect(func(3) == 7);
7573}
......@@ -97,7 +95,6 @@ test "discard the result of a function that returns a struct" {
9795}
9896
9997test "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;
10198 if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest;
10299 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest;
103100 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;
......@@ -145,7 +142,6 @@ fn fnWithUnreachable() noreturn {
145142}
146143
147144test "extern struct with stdcallcc fn pointer" {
148 if (builtin.zig_backend == .stage1) return error.SkipZigTest;
149145 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest;
150146 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;
151147
......@@ -293,11 +289,6 @@ fn acceptsString(foo: []u8) void {
293289}
294290
295291test "function pointers" {
296 if (builtin.zig_backend == .stage1) {
297 // stage1 has wrong semantics for function pointers
298 return error.SkipZigTest;
299 }
300
301292 if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO
302293 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
303294 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
......@@ -415,7 +406,6 @@ test "import passed byref to function in return type" {
415406}
416407
417408test "implicit cast function to function ptr" {
418 if (builtin.zig_backend == .stage1) return error.SkipZigTest;
419409 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
420410 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
421411 if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest; // TODO
test/behavior/generics.zig+2-4
......@@ -21,8 +21,8 @@ test "simple generic fn" {
2121
2222 try expect(max(i32, 3, -1) == 3);
2323 try expect(max(u8, 1, 100) == 100);
24 if (builtin.zig_backend == .stage1) {
25 // TODO: stage2 is incorrectly emitting the following:
24 if (false) {
25 // TODO: zig is incorrectly emitting the following:
2626 // error: cast of value 1.23e-01 to type 'f32' loses information
2727 try expect(max(f32, 0.123, 0.456) == 0.456);
2828 }
......@@ -342,8 +342,6 @@ test "generic instantiation of tagged union with only one field" {
342342}
343343
344344test "nested generic function" {
345 if (builtin.zig_backend == .stage1) return error.SkipZigTest;
346
347345 const S = struct {
348346 fn foo(comptime T: type, callback: *const fn (user_data: T) anyerror!void, data: T) anyerror!void {
349347 try callback(data);
test/behavior/int128.zig+2-2
......@@ -29,8 +29,8 @@ test "undefined 128 bit int" {
2929
3030 @setRuntimeSafety(true);
3131
32 // TODO implement @setRuntimeSafety in stage2
33 if (builtin.zig_backend != .stage1 and builtin.mode != .Debug and builtin.mode != .ReleaseSafe) {
32 // TODO implement @setRuntimeSafety
33 if (builtin.mode != .Debug and builtin.mode != .ReleaseSafe) {
3434 return error.SkipZigTest;
3535 }
3636
test/behavior/inttoptr.zig-2
......@@ -1,8 +1,6 @@
11const builtin = @import("builtin");
22
33test "casting integer address to function pointer" {
4 if (builtin.zig_backend == .stage1) return error.SkipZigTest;
5
64 addressToFunction();
75 comptime addressToFunction();
86}
test/behavior/math.zig+4-13
......@@ -94,7 +94,6 @@ fn testOneClz(comptime T: type, x: T) u32 {
9494}
9595
9696test "@clz vectors" {
97 if (builtin.zig_backend == .stage1) return error.SkipZigTest;
9897 if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest; // TODO
9998 if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO
10099 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
......@@ -156,7 +155,6 @@ fn testOneCtz(comptime T: type, x: T) u32 {
156155}
157156
158157test "@ctz vectors" {
159 if (builtin.zig_backend == .stage1) return error.SkipZigTest;
160158 if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest; // TODO
161159 if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO
162160 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
......@@ -971,8 +969,6 @@ test "overflow arithmetic with u0 values" {
971969}
972970
973971test "allow signed integer division/remainder when values are comptime-known and positive or exact" {
974 if (builtin.zig_backend == .stage1) return error.SkipZigTest;
975
976972 try expect(5 / 3 == 1);
977973 try expect(-5 / -3 == 1);
978974 try expect(-6 / 3 == -2);
......@@ -1009,14 +1005,8 @@ test "quad hex float literal parsing accurate" {
10091005 try expect(@bitCast(u128, f) == 0x40042eab345678439abcdefea5678234);
10101006 }
10111007 {
1012 // TODO: modify stage1/parse_f128.c to use round-to-even
1013 if (builtin.zig_backend == .stage1) {
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 }
1008 var f: f128 = 0x1.edcb34a235253948765432134674fp-1;
1009 try expect(@bitCast(u128, f) == 0x3ffeedcb34a235253948765432134675); // round-to-even
10201010 }
10211011 {
10221012 var f: f128 = 0x1.353e45674d89abacc3a2ebf3ff4ffp-50;
......@@ -1270,7 +1260,8 @@ test "@sqrt" {
12701260 try testSqrt(f16, 13.0);
12711261 comptime try testSqrt(f16, 13.0);
12721262
1273 if (builtin.zig_backend == .stage1) {
1263 // TODO: make this pass
1264 if (false) {
12741265 const x = 14.0;
12751266 const y = x * x;
12761267 const z = @sqrt(y);
test/behavior/member_func.zig-2
......@@ -27,7 +27,6 @@ const HasFuncs = struct {
2727};
2828
2929test "standard field calls" {
30 if (builtin.zig_backend == .stage1) return error.SkipZigTest;
3130 if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest;
3231 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest;
3332 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;
......@@ -71,7 +70,6 @@ test "standard field calls" {
7170}
7271
7372test "@field field calls" {
74 if (builtin.zig_backend == .stage1) return error.SkipZigTest;
7573 if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest;
7674 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest;
7775 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;
test/behavior/muladd.zig-6
......@@ -47,7 +47,6 @@ test "@mulAdd f80" {
4747 if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO
4848 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
4949 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
50 if (builtin.zig_backend == .stage1) return error.SkipZigTest;
5150 if (builtin.zig_backend == .stage2_llvm and builtin.os.tag == .windows) return error.SkipZigTest; // https://github.com/ziglang/zig/issues/12602
5251
5352 comptime try testMulAdd80();
......@@ -91,7 +90,6 @@ fn vector16() !void {
9190}
9291
9392test "vector f16" {
94 if (builtin.zig_backend == .stage1) return error.SkipZigTest;
9593 if (builtin.zig_backend == .stage2_c) return error.SkipZigTest; // TODO
9694 if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest; // TODO
9795 if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO
......@@ -115,7 +113,6 @@ fn vector32() !void {
115113}
116114
117115test "vector f32" {
118 if (builtin.zig_backend == .stage1) return error.SkipZigTest;
119116 if (builtin.zig_backend == .stage2_c) return error.SkipZigTest; // TODO
120117 if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest; // TODO
121118 if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO
......@@ -139,7 +136,6 @@ fn vector64() !void {
139136}
140137
141138test "vector f64" {
142 if (builtin.zig_backend == .stage1) return error.SkipZigTest;
143139 if (builtin.zig_backend == .stage2_c) return error.SkipZigTest; // TODO
144140 if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest; // TODO
145141 if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO
......@@ -162,7 +158,6 @@ fn vector80() !void {
162158}
163159
164160test "vector f80" {
165 if (builtin.zig_backend == .stage1) return error.SkipZigTest;
166161 if (builtin.zig_backend == .stage2_c) return error.SkipZigTest; // TODO
167162 if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest; // TODO
168163 if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO
......@@ -187,7 +182,6 @@ fn vector128() !void {
187182}
188183
189184test "vector f128" {
190 if (builtin.zig_backend == .stage1) return error.SkipZigTest;
191185 if (builtin.zig_backend == .stage2_c) return error.SkipZigTest; // TODO
192186 if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest; // TODO
193187 if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO
test/behavior/optional.zig-5
......@@ -377,8 +377,6 @@ const NoReturn = struct {
377377};
378378
379379test "optional of noreturn used with if" {
380 if (builtin.zig_backend == .stage1) return error.SkipZigTest;
381
382380 NoReturn.a = 64;
383381 if (NoReturn.loop()) |_| {
384382 @compileError("bad");
......@@ -388,8 +386,6 @@ test "optional of noreturn used with if" {
388386}
389387
390388test "optional of noreturn used with orelse" {
391 if (builtin.zig_backend == .stage1) return error.SkipZigTest;
392
393389 NoReturn.a = 64;
394390 const val = NoReturn.testOrelse();
395391 try expect(val == 123);
......@@ -419,7 +415,6 @@ test "alignment of wrapping an optional payload" {
419415}
420416
421417test "Optional slice size is optimized" {
422 if (builtin.zig_backend == .stage1) return error.SkipZigTest;
423418 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;
424419 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest;
425420 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;
55const expectEqual = std.testing.expectEqual;
66const 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
378test "flags in packed structs" {
38 if (builtin.zig_backend == .stage1) return error.SkipZigTest;
39
409 const Flags1 = packed struct {
4110 // first 8 bits
4211 b0_0: u1,
......@@ -121,8 +90,6 @@ test "flags in packed structs" {
12190}
12291
12392test "consistent size of packed structs" {
124 if (builtin.zig_backend == .stage1) return error.SkipZigTest;
125
12693 const TxData1 = packed struct { data: u8, _23: u23, full: bool = false };
12794 const TxData2 = packed struct { data: u9, _22: u22, full: bool = false };
12895
......@@ -149,7 +116,6 @@ test "consistent size of packed structs" {
149116}
150117
151118test "correct sizeOf and offsets in packed structs" {
152 if (builtin.zig_backend == .stage1) return error.SkipZigTest;
153119 if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO
154120 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
155121 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
......@@ -218,7 +184,6 @@ test "correct sizeOf and offsets in packed structs" {
218184}
219185
220186test "nested packed structs" {
221 if (builtin.zig_backend == .stage1) return error.SkipZigTest;
222187 if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO
223188 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
224189 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
......@@ -285,7 +250,6 @@ test "regular in irregular packed struct" {
285250}
286251
287252test "byte-aligned field pointer offsets" {
288 if (builtin.zig_backend == .stage1) return error.SkipZigTest;
289253 if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest;
290254 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;
291255 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest;
......@@ -387,7 +351,6 @@ test "byte-aligned field pointer offsets" {
387351}
388352
389353test "load pointer from packed struct" {
390 if (builtin.zig_backend == .stage1) return error.SkipZigTest;
391354 if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest;
392355 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;
393356 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest;
......@@ -571,7 +534,6 @@ test "runtime init of unnamed packed struct type" {
571534}
572535
573536test "packed struct passed to callconv(.C) function" {
574 if (builtin.zig_backend == .stage1) return error.SkipZigTest;
575537 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;
576538 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest;
577539 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;
55const native_endian = builtin.cpu.arch.endian();
66
77test "packed struct explicit backing integer" {
8 assert(builtin.zig_backend != .stage1);
98 if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest; // TODO
109 if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO
1110 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" {
135135}
136136
137137test "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
141138 var ptr_c: [*c]u8 = undefined;
142139 const ptr_const: u8 = undefined;
143140 try expect(@TypeOf(ptr_c, &ptr_const) == [*c]const u8);
test/behavior/popcount.zig-1
......@@ -65,7 +65,6 @@ fn testPopCountIntegers() !void {
6565}
6666
6767test "@popCount vectors" {
68 if (builtin.zig_backend == .stage1) return error.SkipZigTest;
6968 if (builtin.zig_backend == .stage2_c) return error.SkipZigTest; // TODO
7069 if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest; // TODO
7170 if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO
test/behavior/ptrcast.zig-7
......@@ -20,7 +20,6 @@ fn testReinterpretBytesAsInteger() !void {
2020}
2121
2222test "reinterpret an array over multiple elements, with no well-defined layout" {
23 if (builtin.zig_backend == .stage1) return error.SkipZigTest;
2423 if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO
2524 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
2625 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
......@@ -77,8 +76,6 @@ fn testReinterpretBytesAsExternStruct() !void {
7776}
7877
7978test "reinterpret bytes of an extern struct (with under-aligned fields) into another" {
80 if (builtin.zig_backend == .stage1) return error.SkipZigTest;
81
8279 try testReinterpretExternStructAsExternStruct();
8380 comptime try testReinterpretExternStructAsExternStruct();
8481}
......@@ -101,8 +98,6 @@ fn testReinterpretExternStructAsExternStruct() !void {
10198}
10299
103100test "reinterpret bytes of an extern struct into another" {
104 if (builtin.zig_backend == .stage1) return error.SkipZigTest;
105
106101 try testReinterpretOverAlignedExternStructAsExternStruct();
107102 comptime try testReinterpretOverAlignedExternStructAsExternStruct();
108103}
......@@ -127,7 +122,6 @@ fn testReinterpretOverAlignedExternStructAsExternStruct() !void {
127122}
128123
129124test "lower reinterpreted comptime field ptr (with under-aligned fields)" {
130 if (builtin.zig_backend == .stage1) return error.SkipZigTest;
131125 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
132126 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
133127 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)" {
151145}
152146
153147test "lower reinterpreted comptime field ptr" {
154 if (builtin.zig_backend == .stage1) return error.SkipZigTest;
155148 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
156149 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
157150 if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO
test/behavior/saturating_arithmetic.zig-4
......@@ -149,10 +149,6 @@ test "saturating multiplication" {
149149 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
150150 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 }
156152 if (builtin.zig_backend == .stage2_llvm and builtin.cpu.arch == .wasm32) {
157153 // https://github.com/ziglang/zig/issues/9660
158154 return error.SkipZigTest;
test/behavior/select.zig-1
......@@ -32,7 +32,6 @@ fn selectVectors() !void {
3232}
3333
3434test "@select arrays" {
35 if (builtin.zig_backend == .stage1) return error.SkipZigTest; // TODO
3635 if (builtin.zig_backend == .stage2_c) return error.SkipZigTest; // TODO
3736 if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest; // TODO
3837 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" {
7171 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
7272 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) {
7575 // https://github.com/ziglang/zig/issues/3246
7676 return error.SkipZigTest;
7777 }
test/behavior/sizeof_and_typeof.zig-53
......@@ -101,52 +101,6 @@ test "@offsetOf" {
101101 try expect(@ptrToInt(&a.i) - @ptrToInt(&a) == @offsetOf(A, "i"));
102102}
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
150104test "@bitOffsetOf" {
151105 // Packed structs have fixed memory layout
152106 try expect(@bitOffsetOf(P, "a") == 0);
......@@ -211,8 +165,6 @@ test "branching logic inside @TypeOf" {
211165}
212166
213167test "@bitSizeOf" {
214 if (builtin.zig_backend == .stage1) return error.SkipZigTest;
215
216168 try expect(@bitSizeOf(u2) == 2);
217169 try expect(@bitSizeOf(u8) == @sizeOf(u8) * 8);
218170 try expect(@bitSizeOf(struct {
......@@ -224,11 +176,6 @@ test "@bitSizeOf" {
224176}
225177
226178test "@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
232179 const S0 = struct {
233180 f: *@This(),
234181 };
test/behavior/slice.zig+4-28
......@@ -182,7 +182,6 @@ test "slicing zero length array" {
182182const x = @intToPtr([*]i32, 0x1000)[0..0x500];
183183const y = x[0x100..];
184184test "compile time slice of pointer to hard coded address" {
185 if (builtin.zig_backend == .stage1) return error.SkipZigTest;
186185 if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest;
187186
188187 try expect(@ptrToInt(x) == 0x1000);
......@@ -444,10 +443,7 @@ test "slice syntax resulting in pointer-to-array" {
444443 var array: [2]u8 = [2]u8{ 1, 2 };
445444 var slice: ?[]u8 = &array;
446445 comptime try expect(@TypeOf(&array, slice) == ?[]u8);
447 if (builtin.zig_backend != .stage1) {
448 // stage1 is not passing this case
449 comptime try expect(@TypeOf(slice, &array) == ?[]u8);
450 }
446 comptime try expect(@TypeOf(slice, &array) == ?[]u8);
451447 comptime try expect(@TypeOf(slice.?[0..2]) == *[2]u8);
452448 }
453449
......@@ -479,13 +475,7 @@ test "slice pointer-to-array null terminated" {
479475 var slice: [:0]u8 = &array;
480476 try expect(@TypeOf(slice[1..3]) == *[2]u8);
481477 try expect(@TypeOf(slice[1..3 :4]) == *[2:4]u8);
482
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 }
478 try expect(@TypeOf(slice[1..]) == *[4:0]u8);
489479 }
490480
491481 var array = [5:0]u8{ 1, 2, 3, 4, 5 };
......@@ -509,12 +499,7 @@ test "slice pointer-to-array zero length" {
509499 var array = [0:0]u8{};
510500 var src_slice: [:0]u8 = &array;
511501 var slice = src_slice[0..0];
512 if (builtin.zig_backend == .stage1) {
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 }
502 try expect(@TypeOf(slice) == *[0:0]u8);
518503 }
519504 }
520505
......@@ -573,16 +558,11 @@ test "array concat of slices gives ptr to array" {
573558 var b: []const u8 = "asdf";
574559 const c = a ++ b;
575560 try expect(std.mem.eql(u8, c, "aoeuasdf"));
576 if (builtin.zig_backend != .stage1) {
577 // spec change: array concat now returns pointer-to-array for slices
578 try expect(@TypeOf(c) == *const [8]u8);
579 }
561 try expect(@TypeOf(c) == *const [8]u8);
580562 }
581563}
582564
583565test "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
586566 comptime {
587567 var a: []const u8 = "aoeu";
588568 const c = a ** 2;
......@@ -626,8 +606,6 @@ test "slice sentinel access at comptime" {
626606}
627607
628608test "slicing array with sentinel as end index" {
629 // Doesn't work in stage1
630 if (builtin.zig_backend == .stage1) return error.SkipZigTest;
631609 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;
632610
633611 const S = struct {
......@@ -645,8 +623,6 @@ test "slicing array with sentinel as end index" {
645623}
646624
647625test "slicing slice with sentinel as end index" {
648 // Doesn't work in stage1
649 if (builtin.zig_backend == .stage1) return error.SkipZigTest;
650626 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;
651627
652628 const S = struct {
test/behavior/struct.zig+2-40
......@@ -419,11 +419,8 @@ test "packed struct 24bits" {
419419 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
420420
421421 comptime {
422 // stage1 gets the wrong answer for sizeof
423 if (builtin.zig_backend != .stage1) {
424 std.debug.assert(@sizeOf(Foo24Bits) == @sizeOf(u24));
425 std.debug.assert(@sizeOf(Foo96Bits) == @sizeOf(u96));
426 }
422 std.debug.assert(@sizeOf(Foo24Bits) == @sizeOf(u24));
423 std.debug.assert(@sizeOf(Foo96Bits) == @sizeOf(u96));
427424 }
428425
429426 var value = Foo96Bits{
......@@ -497,10 +494,6 @@ const Bitfields = packed struct {
497494};
498495
499496test "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 }
504497 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
505498 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
506499 if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO
......@@ -640,7 +633,6 @@ test "default struct initialization fields" {
640633}
641634
642635test "packed array 24bits" {
643 if (builtin.zig_backend == .stage1) return error.SkipZigTest;
644636 if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest;
645637 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest;
646638 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;
......@@ -698,25 +690,6 @@ const FooArray24Bits = packed struct {
698690 c: u16,
699691};
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
720693const FooStructAligned = packed struct {
721694 a: u8,
722695 b: u8,
......@@ -1150,7 +1123,6 @@ test "for loop over pointers to struct, getting field from struct pointer" {
11501123}
11511124
11521125test "anon init through error unions and optionals" {
1153 if (builtin.zig_backend == .stage1) return error.SkipZigTest;
11541126 if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO
11551127 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
11561128 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
......@@ -1178,7 +1150,6 @@ test "anon init through error unions and optionals" {
11781150}
11791151
11801152test "anon init through optional" {
1181 if (builtin.zig_backend == .stage1) return error.SkipZigTest;
11821153 if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO
11831154 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
11841155 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
......@@ -1199,7 +1170,6 @@ test "anon init through optional" {
11991170}
12001171
12011172test "anon init through error union" {
1202 if (builtin.zig_backend == .stage1) return error.SkipZigTest;
12031173 if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO
12041174 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
12051175 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
......@@ -1220,7 +1190,6 @@ test "anon init through error union" {
12201190}
12211191
12221192test "typed init through error unions and optionals" {
1223 if (builtin.zig_backend == .stage1) return error.SkipZigTest;
12241193 if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO
12251194 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
12261195 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
......@@ -1283,10 +1252,6 @@ test "loading a struct pointer perfoms a copy" {
12831252}
12841253
12851254test "packed struct aggregate init" {
1286 if (builtin.zig_backend == .stage1) {
1287 // stage1 fails this test on mips
1288 return error.SkipZigTest;
1289 }
12901255 if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO
12911256 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
12921257 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
......@@ -1328,8 +1293,6 @@ test "packed struct field access via pointer" {
13281293}
13291294
13301295test "store to comptime field" {
1331 if (builtin.zig_backend == .stage1) return error.SkipZigTest;
1332
13331296 {
13341297 const S = struct {
13351298 comptime a: [2]u32 = [2]u32{ 1, 2 },
......@@ -1364,7 +1327,6 @@ test "struct field init value is size of the struct" {
13641327}
13651328
13661329test "under-aligned struct field" {
1367 if (builtin.zig_backend == .stage1) return error.SkipZigTest;
13681330 if (builtin.zig_backend == .stage2_c) return error.SkipZigTest; // TODO
13691331 if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO
13701332 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
test/behavior/truncate.zig-5
......@@ -60,11 +60,6 @@ test "truncate on comptime integer" {
6060}
6161
6262test "truncate on vectors" {
63 if (builtin.zig_backend == .stage1) {
64 // stage1 fails the comptime test
65 return error.SkipZigTest;
66 }
67
6863 if (builtin.zig_backend == .stage2_c) return error.SkipZigTest;
6964 if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest;
7065 if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest;
test/behavior/type.zig+2-11
......@@ -229,7 +229,7 @@ test "Type.Vector" {
229229}
230230
231231test "Type.AnyFrame" {
232 if (builtin.zig_backend != .stage1) {
232 if (true) {
233233 // https://github.com/ziglang/zig/issues/6025
234234 return error.SkipZigTest;
235235 }
......@@ -246,8 +246,6 @@ fn add(a: i32, b: i32) i32 {
246246}
247247
248248test "Type.ErrorSet" {
249 if (builtin.zig_backend == .stage1) return error.SkipZigTest;
250
251249 try testing.expect(@Type(.{ .ErrorSet = null }) == anyerror);
252250
253251 // error sets don't compare equal so just check if they compile
......@@ -369,12 +367,7 @@ test "Type.Enum" {
369367 try testing.expectEqual(@as(u8, 5), @enumToInt(Foo.b));
370368 const Bar = @Type(.{
371369 .Enum = .{
372 // stage2 only has auto layouts
373 .layout = if (builtin.zig_backend == .stage1)
374 .Extern
375 else
376 .Auto,
377
370 .layout = .Auto,
378371 .tag_type = u32,
379372 .fields = &.{
380373 .{ .name = "a", .value = 1 },
......@@ -501,8 +494,6 @@ test "Type.Union from regular enum" {
501494}
502495
503496test "Type.Fn" {
504 if (builtin.zig_backend == .stage1) return error.SkipZigTest;
505
506497 if (true) {
507498 // https://github.com/ziglang/zig/issues/12360
508499 return error.SkipZigTest;
test/behavior/type_info.zig+17-26
......@@ -201,9 +201,6 @@ test "type info: error set single value" {
201201}
202202
203203test "type info: error set merged" {
204 // #11022 forces ordering of error sets in stage2
205 if (builtin.zig_backend == .stage1) return error.SkipZigTest;
206
207204 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;
208205 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
209206 if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO
......@@ -305,8 +302,6 @@ const TestStruct = struct {
305302};
306303
307304test "type info: packed struct info" {
308 if (builtin.zig_backend == .stage1) return error.SkipZigTest;
309
310305 try testPackedStruct();
311306 comptime try testPackedStruct();
312307}
......@@ -376,25 +371,21 @@ extern fn typeInfoFoo(a: usize, b: bool, ...) callconv(.C) usize;
376371extern fn typeInfoFooAligned(a: usize, b: bool, ...) align(4) callconv(.C) usize;
377372
378373test "type info: generic function types" {
379 if (builtin.zig_backend != .stage1) {
380 // stage1 marks all args/return types as null if the function
381 // is generic at all. stage2 is more specific.
382 const G1 = @typeInfo(@TypeOf(generic1));
383 try expect(G1.Fn.args.len == 1);
384 try expect(G1.Fn.args[0].is_generic == true);
385 try expect(G1.Fn.args[0].arg_type == null);
386 try expect(G1.Fn.return_type == void);
387
388 const G2 = @typeInfo(@TypeOf(generic2));
389 try expect(G2.Fn.args.len == 3);
390 try expect(G2.Fn.args[0].is_generic == false);
391 try expect(G2.Fn.args[0].arg_type == type);
392 try expect(G2.Fn.args[1].is_generic == true);
393 try expect(G2.Fn.args[1].arg_type == null);
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 }
374 const G1 = @typeInfo(@TypeOf(generic1));
375 try expect(G1.Fn.args.len == 1);
376 try expect(G1.Fn.args[0].is_generic == true);
377 try expect(G1.Fn.args[0].arg_type == null);
378 try expect(G1.Fn.return_type == void);
379
380 const G2 = @typeInfo(@TypeOf(generic2));
381 try expect(G2.Fn.args.len == 3);
382 try expect(G2.Fn.args[0].is_generic == false);
383 try expect(G2.Fn.args[0].arg_type == type);
384 try expect(G2.Fn.args[1].is_generic == true);
385 try expect(G2.Fn.args[1].arg_type == null);
386 try expect(G2.Fn.args[2].is_generic == false);
387 try expect(G2.Fn.args[2].arg_type == u8);
388 try expect(G2.Fn.return_type == void);
398389
399390 const G3 = @typeInfo(@TypeOf(generic3));
400391 try expect(G3.Fn.args.len == 1);
......@@ -442,7 +433,7 @@ fn testVector() !void {
442433}
443434
444435test "type info: anyframe and anyframe->T" {
445 if (builtin.zig_backend != .stage1) {
436 if (true) {
446437 // https://github.com/ziglang/zig/issues/6025
447438 return error.SkipZigTest;
448439 }
......@@ -501,7 +492,7 @@ fn add(a: i32, b: i32) i32 {
501492}
502493
503494test "type info for async frames" {
504 if (builtin.zig_backend != .stage1) {
495 if (true) {
505496 // https://github.com/ziglang/zig/issues/6025
506497 return error.SkipZigTest;
507498 }
test/behavior/typename.zig-29
......@@ -12,12 +12,6 @@ const expectStringStartsWith = std.testing.expectStringStartsWith;
1212// failures.
1313
1414test "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
2115 if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO
2216 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
2317 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
......@@ -43,12 +37,6 @@ test "anon fn param" {
4337}
4438
4539test "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
5240 if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO
5341 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
5442 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
......@@ -84,11 +72,6 @@ test "basic" {
8472}
8573
8674test "top level decl" {
87 if (builtin.zig_backend == .stage1) {
88 // stage1 fails to return fully qualified namespaces.
89 return error.SkipZigTest;
90 }
91
9275 if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO
9376 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
9477 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
......@@ -208,11 +191,6 @@ pub fn expectEqualStringsIgnoreDigits(expected: []const u8, actual: []const u8)
208191}
209192
210193test "local variable" {
211 if (builtin.zig_backend == .stage1) {
212 // stage1 fails to return fully qualified namespaces.
213 return error.SkipZigTest;
214 }
215
216194 if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO
217195 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
218196 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
......@@ -231,7 +209,6 @@ test "local variable" {
231209}
232210
233211test "comptime parameters not converted to anytype in function type" {
234 if (builtin.zig_backend == .stage1) return error.SkipZigTest;
235212 if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO
236213 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
237214 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
......@@ -241,12 +218,6 @@ test "comptime parameters not converted to anytype in function type" {
241218}
242219
243220test "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
250221 if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO
251222 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
252223 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" {
7676}
7777
7878test "type name of undefined" {
79 if (builtin.zig_backend == .stage1) {
80 // stage1 gets the type name wrong
81 return error.SkipZigTest;
82 }
8379 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;
8480
8581 const x = undefined;
test/behavior/union.zig-5
......@@ -221,7 +221,6 @@ test "packed union generates correctly aligned type" {
221221 if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest;
222222 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest;
223223 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;
224 if (builtin.zig_backend == .stage1) return error.SkipZigTest;
225224
226225 const U = packed union {
227226 f1: *const fn () error{TestUnexpectedResult}!void,
......@@ -1002,7 +1001,6 @@ test "cast from pointer to anonymous struct to pointer to union" {
10021001}
10031002
10041003test "switching on non exhaustive union" {
1005 if (builtin.zig_backend == .stage1) return error.SkipZigTest;
10061004 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
10071005 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" {
11971195}
11981196
11991197test "extern union most-aligned field is smaller" {
1200 if (builtin.zig_backend == .stage1) return error.SkipZigTest;
12011198 if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO
12021199 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
12031200 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
......@@ -1246,7 +1243,6 @@ test "return an extern union from C calling convention" {
12461243}
12471244
12481245test "noreturn field in union" {
1249 if (builtin.zig_backend == .stage1) return error.SkipZigTest;
12501246 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
12511247 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
12521248 if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO
......@@ -1298,7 +1294,6 @@ test "noreturn field in union" {
12981294}
12991295
13001296test "union and enum field order doesn't match" {
1301 if (builtin.zig_backend == .stage1) return error.SkipZigTest;
13021297 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
13031298 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;
66const expectEqual = std.testing.expectEqual;
77
88test "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
159 if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest; // TODO
1610 if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO
1711 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
......@@ -180,9 +174,7 @@ test "tuple to vector" {
180174 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
181175 if (builtin.zig_backend == .stage2_c) return error.SkipZigTest; // TODO
182176
183 if ((builtin.zig_backend == .stage1 or builtin.zig_backend == .stage2_llvm) and
184 builtin.cpu.arch == .aarch64)
185 {
177 if (builtin.zig_backend == .stage2_llvm and builtin.cpu.arch == .aarch64) {
186178 // Regressed with LLVM 14:
187179 // https://github.com/ziglang/zig/issues/12012
188180 return error.SkipZigTest;
......@@ -197,9 +189,7 @@ test "tuple to vector" {
197189 }
198190
199191 try std.testing.expectEqual(v, Vec3{ 1, 1, 1 });
200 if (builtin.zig_backend != .stage1) {
201 try std.testing.expectEqual(v, .{ 1, 1, 1 });
202 }
192 try std.testing.expectEqual(v, .{ 1, 1, 1 });
203193 }
204194 };
205195 try S.doTheTest();
......@@ -406,12 +396,6 @@ test "initialize vector which is a struct field" {
406396}
407397
408398test "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
415399 if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest; // TODO
416400 if (builtin.zig_backend == .stage2_c) return error.SkipZigTest; // TODO
417401 if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO
......@@ -801,7 +785,6 @@ test "vector reduce operation" {
801785}
802786
803787test "vector @reduce comptime" {
804 if (builtin.zig_backend == .stage1) return error.SkipZigTest;
805788 if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest; // TODO
806789 if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO
807790 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
......@@ -937,10 +920,6 @@ test "saturating shift-left" {
937920}
938921
939922test "multiplication-assignment operator with an array operand" {
940 if (builtin.zig_backend == .stage1) {
941 // stage1 emits a compile error
942 return error.SkipZigTest;
943 }
944923 if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest; // TODO
945924 if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO
946925 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
......@@ -961,10 +940,6 @@ test "multiplication-assignment operator with an array operand" {
961940}
962941
963942test "@addWithOverflow" {
964 if (builtin.zig_backend == .stage1) {
965 // stage1 doesn't support vector args
966 return error.SkipZigTest;
967 }
968943 if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest; // TODO
969944 if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO
970945 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
......@@ -1011,10 +986,6 @@ test "@addWithOverflow" {
1011986}
1012987
1013988test "@subWithOverflow" {
1014 if (builtin.zig_backend == .stage1) {
1015 // stage1 doesn't support vector args
1016 return error.SkipZigTest;
1017 }
1018989 if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest; // TODO
1019990 if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO
1020991 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
......@@ -1045,10 +1016,6 @@ test "@subWithOverflow" {
10451016}
10461017
10471018test "@mulWithOverflow" {
1048 if (builtin.zig_backend == .stage1) {
1049 // stage1 doesn't support vector args
1050 return error.SkipZigTest;
1051 }
10521019 if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest; // TODO
10531020 if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO
10541021 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
......@@ -1069,10 +1036,6 @@ test "@mulWithOverflow" {
10691036}
10701037
10711038test "@shlWithOverflow" {
1072 if (builtin.zig_backend == .stage1) {
1073 // stage1 doesn't support vector args
1074 return error.SkipZigTest;
1075 }
10761039 if (builtin.zig_backend == .stage2_c) return error.SkipZigTest; // TODO
10771040 if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest; // TODO
10781041 if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO