authorgravatar for alichraghi@proton.meAli Chraghi <alichraghi@proton.me> 2025-02-19 00:07:07+03:30
committergravatar for robin@voetter.nlRobin Voetter <robin@voetter.nl> 2025-02-24 19:39:42+01:00
logaec0f9b3e7790c2e3b66d519e4d8e438208b5406
tree1e96f489e6738b43351a2207d5dfe90c9ab65376
parent94af47d28c83efa3dc26ee0b47b224b823c9b333
signaturebadge-check Signed by SSH key SHA256:ZS52FNyUv2WUXvO4njmVaFVO46RHojFuOrxRc4LuKzg

test: skip failing tests with spirv-vulkan


66 files changed, 554 insertions(+), 52 deletions(-)

test/behavior.zig+3-3
...@@ -112,11 +112,11 @@ test {...@@ -112,11 +112,11 @@ test {
112112
113 _ = @import("behavior/x86_64.zig");113 _ = @import("behavior/x86_64.zig");
114114
115 if (builtin.cpu.arch == .wasm32) {115 if (builtin.zig_backend != .stage2_spirv64 and builtin.cpu.arch == .wasm32) {
116 _ = @import("behavior/wasm.zig");116 _ = @import("behavior/wasm.zig");
117 }117 }
118118
119 if (builtin.os.tag != .wasi) {119 if (builtin.zig_backend != .stage2_spirv64 and builtin.os.tag != .wasi) {
120 _ = @import("behavior/asm.zig");120 _ = @import("behavior/asm.zig");
121 }121 }
122122
...@@ -127,7 +127,7 @@ test {...@@ -127,7 +127,7 @@ test {
127 _ = @import("behavior/export_keyword.zig");127 _ = @import("behavior/export_keyword.zig");
128 }128 }
129129
130 if (!builtin.cpu.arch.isWasm()) {130 if (builtin.zig_backend != .stage2_spirv64 and !builtin.cpu.arch.isWasm()) {
131 // Due to lack of import/export of global support131 // Due to lack of import/export of global support
132 // (https://github.com/ziglang/zig/issues/4866), these tests correctly132 // (https://github.com/ziglang/zig/issues/4866), these tests correctly
133 // cause linker errors, since a data symbol cannot be exported when133 // cause linker errors, since a data symbol cannot be exported when
test/behavior/abs.zig+3
...@@ -7,6 +7,7 @@ test "@abs integers" {...@@ -7,6 +7,7 @@ test "@abs integers" {
7 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO7 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
8 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO8 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
9 if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest;9 if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest;
10 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
1011
11 try comptime testAbsIntegers();12 try comptime testAbsIntegers();
12 try testAbsIntegers();13 try testAbsIntegers();
...@@ -215,6 +216,7 @@ test "@abs int vectors" {...@@ -215,6 +216,7 @@ test "@abs int vectors" {
215 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO216 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
216 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO217 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
217 if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest;218 if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest;
219 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
218220
219 try comptime testAbsIntVectors(1);221 try comptime testAbsIntVectors(1);
220 try testAbsIntVectors(1);222 try testAbsIntVectors(1);
...@@ -281,6 +283,7 @@ test "@abs unsigned int vectors" {...@@ -281,6 +283,7 @@ test "@abs unsigned int vectors" {
281 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO283 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
282 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO284 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
283 if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest;285 if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest;
286 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
284287
285 try comptime testAbsUnsignedIntVectors(1);288 try comptime testAbsUnsignedIntVectors(1);
286 try testAbsUnsignedIntVectors(1);289 try testAbsUnsignedIntVectors(1);
test/behavior/addrspace_and_linksection.zig+2
...@@ -79,6 +79,8 @@ test "addrspace and linksection on container-level var" {...@@ -79,6 +79,8 @@ test "addrspace and linksection on container-level var" {
79}79}
8080
81test "addrspace on fn" {81test "addrspace on fn" {
82 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
83
82 const S = struct {84 const S = struct {
83 fn f() addrspace(.generic) u32 {85 fn f() addrspace(.generic) u32 {
84 return 123;86 return 123;
test/behavior/align.zig+11
...@@ -52,6 +52,8 @@ fn addUnaligned(a: *align(1) const u32, b: *align(1) const u32) u32 {...@@ -52,6 +52,8 @@ fn addUnaligned(a: *align(1) const u32, b: *align(1) const u32) u32 {
52}52}
5353
54test "@alignCast pointers" {54test "@alignCast pointers" {
55 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
56
55 var x: u32 align(4) = 1;57 var x: u32 align(4) = 1;
56 expectsOnly1(&x);58 expectsOnly1(&x);
57 try expect(x == 2);59 try expect(x == 2);
...@@ -199,6 +201,7 @@ test "alignment and size of structs with 128-bit fields" {...@@ -199,6 +201,7 @@ test "alignment and size of structs with 128-bit fields" {
199test "implicitly decreasing slice alignment" {201test "implicitly decreasing slice alignment" {
200 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;202 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;
201 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO203 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
204 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
202205
203 const a: u32 align(4) = 3;206 const a: u32 align(4) = 3;
204 const b: u32 align(8) = 4;207 const b: u32 align(8) = 4;
...@@ -211,6 +214,7 @@ fn addUnalignedSlice(a: []align(1) const u32, b: []align(1) const u32) u32 {...@@ -211,6 +214,7 @@ fn addUnalignedSlice(a: []align(1) const u32, b: []align(1) const u32) u32 {
211test "specifying alignment allows pointer cast" {214test "specifying alignment allows pointer cast" {
212 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;215 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;
213 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO216 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
217 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
214218
215 try testBytesAlign(0x33);219 try testBytesAlign(0x33);
216}220}
...@@ -276,6 +280,7 @@ test "function alignment" {...@@ -276,6 +280,7 @@ test "function alignment" {
276 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;280 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;
277 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest;281 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest;
278 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO282 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
283 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
279284
280 // function alignment is a compile error on wasm285 // function alignment is a compile error on wasm
281 if (native_arch.isWasm()) return error.SkipZigTest;286 if (native_arch.isWasm()) return error.SkipZigTest;
...@@ -349,6 +354,7 @@ fn simple4() align(4) i32 {...@@ -349,6 +354,7 @@ fn simple4() align(4) i32 {
349354
350test "runtime-known array index has best alignment possible" {355test "runtime-known array index has best alignment possible" {
351 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO356 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
357 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
352358
353 // take full advantage of over-alignment359 // take full advantage of over-alignment
354 var array align(4) = [_]u8{ 1, 2, 3, 4 };360 var array align(4) = [_]u8{ 1, 2, 3, 4 };
...@@ -485,6 +491,7 @@ test "align(N) on functions" {...@@ -485,6 +491,7 @@ test "align(N) on functions" {
485 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO491 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
486 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO492 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
487 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO493 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
494 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
488495
489 if (builtin.zig_backend == .stage2_c) {496 if (builtin.zig_backend == .stage2_c) {
490 // https://github.com/ziglang/zig/issues/16845497 // https://github.com/ziglang/zig/issues/16845
...@@ -525,6 +532,7 @@ test "comptime alloc alignment" {...@@ -525,6 +532,7 @@ test "comptime alloc alignment" {
525test "@alignCast null" {532test "@alignCast null" {
526 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;533 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;
527 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO534 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
535 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
528536
529 var ptr: ?*anyopaque = null;537 var ptr: ?*anyopaque = null;
530 _ = &ptr;538 _ = &ptr;
...@@ -541,6 +549,7 @@ test "sub-aligned pointer field access" {...@@ -541,6 +549,7 @@ test "sub-aligned pointer field access" {
541 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;549 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;
542 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest;550 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest;
543 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest;551 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest;
552 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
544553
545 // Originally reported at https://github.com/ziglang/zig/issues/14904554 // Originally reported at https://github.com/ziglang/zig/issues/14904
546555
...@@ -615,6 +624,8 @@ test "zero-bit fields in extern struct pad fields appropriately" {...@@ -615,6 +624,8 @@ test "zero-bit fields in extern struct pad fields appropriately" {
615}624}
616625
617test "function pointer @intFromPtr/@ptrFromInt roundtrip" {626test "function pointer @intFromPtr/@ptrFromInt roundtrip" {
627 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
628
618 // This only succeeds on Thumb if we handle the Thumb bit correctly; if not, the `@ptrFromInt`629 // This only succeeds on Thumb if we handle the Thumb bit correctly; if not, the `@ptrFromInt`
619 // will incorrectly trip an alignment safety check.630 // will incorrectly trip an alignment safety check.
620631
test/behavior/alignof.zig+2
...@@ -29,6 +29,8 @@ test "comparison of @alignOf(T) against zero" {...@@ -29,6 +29,8 @@ test "comparison of @alignOf(T) against zero" {
29}29}
3030
31test "correct alignment for elements and slices of aligned array" {31test "correct alignment for elements and slices of aligned array" {
32 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
33
32 var buf: [1024]u8 align(64) = undefined;34 var buf: [1024]u8 align(64) = undefined;
33 var start: usize = 1;35 var start: usize = 1;
34 var end: usize = undefined;36 var end: usize = undefined;
test/behavior/array.zig+40
...@@ -49,6 +49,7 @@ fn getArrayLen(a: []const u32) usize {...@@ -49,6 +49,7 @@ fn getArrayLen(a: []const u32) usize {
49test "array concat with undefined" {49test "array concat with undefined" {
50 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO50 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
51 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO51 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
52 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
5253
53 const S = struct {54 const S = struct {
54 fn doTheTest() !void {55 fn doTheTest() !void {
...@@ -70,6 +71,7 @@ test "array concat with undefined" {...@@ -70,6 +71,7 @@ test "array concat with undefined" {
70}71}
7172
72test "array concat with tuple" {73test "array concat with tuple" {
74 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
73 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO75 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
74 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO76 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
75 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO77 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
...@@ -86,6 +88,7 @@ test "array concat with tuple" {...@@ -86,6 +88,7 @@ test "array concat with tuple" {
86}88}
8789
88test "array init with concat" {90test "array init with concat" {
91 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
89 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO92 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
9093
91 const a = 'a';94 const a = 'a';
...@@ -94,6 +97,7 @@ test "array init with concat" {...@@ -94,6 +97,7 @@ test "array init with concat" {
94}97}
9598
96test "array init with mult" {99test "array init with mult" {
100 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
97 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;101 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;
98 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO102 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
99103
...@@ -157,6 +161,7 @@ test "array len field" {...@@ -157,6 +161,7 @@ test "array len field" {
157}161}
158162
159test "array with sentinels" {163test "array with sentinels" {
164 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
160 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;165 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;
161 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO166 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
162167
...@@ -194,6 +199,7 @@ test "void arrays" {...@@ -194,6 +199,7 @@ test "void arrays" {
194}199}
195200
196test "nested arrays of strings" {201test "nested arrays of strings" {
202 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
197 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;203 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;
198 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest;204 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest;
199 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO205 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
...@@ -239,6 +245,7 @@ fn plusOne(x: u32) u32 {...@@ -239,6 +245,7 @@ fn plusOne(x: u32) u32 {
239test "single-item pointer to array indexing and slicing" {245test "single-item pointer to array indexing and slicing" {
240 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;246 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;
241 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO247 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
248 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
242249
243 try testSingleItemPtrArrayIndexSlice();250 try testSingleItemPtrArrayIndexSlice();
244 try comptime testSingleItemPtrArrayIndexSlice();251 try comptime testSingleItemPtrArrayIndexSlice();
...@@ -300,6 +307,7 @@ var s_array: [8]Sub = undefined;...@@ -300,6 +307,7 @@ var s_array: [8]Sub = undefined;
300const Sub = struct { b: u8 };307const Sub = struct { b: u8 };
301const Str = struct { a: []Sub };308const Str = struct { a: []Sub };
302test "set global var array via slice embedded in struct" {309test "set global var array via slice embedded in struct" {
310 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
303 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;311 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;
304 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO312 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
305313
...@@ -336,6 +344,7 @@ test "read/write through global variable array of struct fields initialized via...@@ -336,6 +344,7 @@ test "read/write through global variable array of struct fields initialized via
336}344}
337345
338test "implicit cast single-item pointer" {346test "implicit cast single-item pointer" {
347 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
339 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;348 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;
340 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO349 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
341350
...@@ -366,6 +375,7 @@ test "comptime evaluating function that takes array by value" {...@@ -366,6 +375,7 @@ test "comptime evaluating function that takes array by value" {
366}375}
367376
368test "runtime initialize array elem and then implicit cast to slice" {377test "runtime initialize array elem and then implicit cast to slice" {
378 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
369 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;379 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;
370 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO380 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
371381
...@@ -376,6 +386,7 @@ test "runtime initialize array elem and then implicit cast to slice" {...@@ -376,6 +386,7 @@ test "runtime initialize array elem and then implicit cast to slice" {
376}386}
377387
378test "array literal as argument to function" {388test "array literal as argument to function" {
389 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
379 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;390 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;
380 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO391 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
381392
...@@ -403,6 +414,7 @@ test "array literal as argument to function" {...@@ -403,6 +414,7 @@ test "array literal as argument to function" {
403}414}
404415
405test "double nested array to const slice cast in array literal" {416test "double nested array to const slice cast in array literal" {
417 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
406 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;418 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;
407 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO419 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
408 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO420 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
...@@ -527,6 +539,7 @@ test "type deduction for array subscript expression" {...@@ -527,6 +539,7 @@ test "type deduction for array subscript expression" {
527}539}
528540
529test "sentinel element count towards the ABI size calculation" {541test "sentinel element count towards the ABI size calculation" {
542 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
530 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO543 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
531 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO544 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
532 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO545 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
...@@ -574,6 +587,7 @@ test "zero-sized array with recursive type definition" {...@@ -574,6 +587,7 @@ test "zero-sized array with recursive type definition" {
574}587}
575588
576test "type coercion of anon struct literal to array" {589test "type coercion of anon struct literal to array" {
590 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
577 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO591 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
578 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO592 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
579 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO593 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
...@@ -626,6 +640,7 @@ test "tuple to array handles sentinel" {...@@ -626,6 +640,7 @@ test "tuple to array handles sentinel" {
626}640}
627641
628test "array init of container level array variable" {642test "array init of container level array variable" {
643 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
629 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO644 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
630 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO645 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
631 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO646 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
...@@ -649,6 +664,8 @@ test "array init of container level array variable" {...@@ -649,6 +664,8 @@ test "array init of container level array variable" {
649}664}
650665
651test "runtime initialized sentinel-terminated array literal" {666test "runtime initialized sentinel-terminated array literal" {
667 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
668
652 var c: u16 = 300;669 var c: u16 = 300;
653 _ = &c;670 _ = &c;
654 const f = &[_:0x9999]u16{c};671 const f = &[_:0x9999]u16{c};
...@@ -735,6 +752,8 @@ test "array init with no result pointer sets field result types" {...@@ -735,6 +752,8 @@ test "array init with no result pointer sets field result types" {
735}752}
736753
737test "runtime side-effects in comptime-known array init" {754test "runtime side-effects in comptime-known array init" {
755 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
756
738 var side_effects: u4 = 0;757 var side_effects: u4 = 0;
739 const init = [4]u4{758 const init = [4]u4{
740 blk: {759 blk: {
...@@ -759,6 +778,8 @@ test "runtime side-effects in comptime-known array init" {...@@ -759,6 +778,8 @@ test "runtime side-effects in comptime-known array init" {
759}778}
760779
761test "slice initialized through reference to anonymous array init provides result types" {780test "slice initialized through reference to anonymous array init provides result types" {
781 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
782
762 var my_u32: u32 = 123;783 var my_u32: u32 = 123;
763 var my_u64: u64 = 456;784 var my_u64: u64 = 456;
764 _ = .{ &my_u32, &my_u64 };785 _ = .{ &my_u32, &my_u64 };
...@@ -772,6 +793,8 @@ test "slice initialized through reference to anonymous array init provides resul...@@ -772,6 +793,8 @@ test "slice initialized through reference to anonymous array init provides resul
772}793}
773794
774test "sentinel-terminated slice initialized through reference to anonymous array init provides result types" {795test "sentinel-terminated slice initialized through reference to anonymous array init provides result types" {
796 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
797
775 var my_u32: u32 = 123;798 var my_u32: u32 = 123;
776 var my_u64: u64 = 456;799 var my_u64: u64 = 456;
777 _ = .{ &my_u32, &my_u64 };800 _ = .{ &my_u32, &my_u64 };
...@@ -785,6 +808,7 @@ test "sentinel-terminated slice initialized through reference to anonymous array...@@ -785,6 +808,7 @@ test "sentinel-terminated slice initialized through reference to anonymous array
785}808}
786809
787test "many-item pointer initialized through reference to anonymous array init provides result types" {810test "many-item pointer initialized through reference to anonymous array init provides result types" {
811 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
788 if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest;812 if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest;
789813
790 var my_u32: u32 = 123;814 var my_u32: u32 = 123;
...@@ -803,6 +827,7 @@ test "many-item pointer initialized through reference to anonymous array init pr...@@ -803,6 +827,7 @@ test "many-item pointer initialized through reference to anonymous array init pr
803}827}
804828
805test "many-item sentinel-terminated pointer initialized through reference to anonymous array init provides result types" {829test "many-item sentinel-terminated pointer initialized through reference to anonymous array init provides result types" {
830 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
806 if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest;831 if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest;
807832
808 var my_u32: u32 = 123;833 var my_u32: u32 = 123;
...@@ -822,6 +847,8 @@ test "many-item sentinel-terminated pointer initialized through reference to ano...@@ -822,6 +847,8 @@ test "many-item sentinel-terminated pointer initialized through reference to ano
822}847}
823848
824test "pointer to array initialized through reference to anonymous array init provides result types" {849test "pointer to array initialized through reference to anonymous array init provides result types" {
850 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
851
825 var my_u32: u32 = 123;852 var my_u32: u32 = 123;
826 var my_u64: u64 = 456;853 var my_u64: u64 = 456;
827 _ = .{ &my_u32, &my_u64 };854 _ = .{ &my_u32, &my_u64 };
...@@ -835,6 +862,8 @@ test "pointer to array initialized through reference to anonymous array init pro...@@ -835,6 +862,8 @@ test "pointer to array initialized through reference to anonymous array init pro
835}862}
836863
837test "pointer to sentinel-terminated array initialized through reference to anonymous array init provides result types" {864test "pointer to sentinel-terminated array initialized through reference to anonymous array init provides result types" {
865 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
866
838 var my_u32: u32 = 123;867 var my_u32: u32 = 123;
839 var my_u64: u64 = 456;868 var my_u64: u64 = 456;
840 _ = .{ &my_u32, &my_u64 };869 _ = .{ &my_u32, &my_u64 };
...@@ -848,6 +877,8 @@ test "pointer to sentinel-terminated array initialized through reference to anon...@@ -848,6 +877,8 @@ test "pointer to sentinel-terminated array initialized through reference to anon
848}877}
849878
850test "tuple initialized through reference to anonymous array init provides result types" {879test "tuple initialized through reference to anonymous array init provides result types" {
880 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
881
851 const Tuple = struct { u64, *const u32 };882 const Tuple = struct { u64, *const u32 };
852 const foo: *const Tuple = &.{883 const foo: *const Tuple = &.{
853 @intCast(12345),884 @intCast(12345),
...@@ -873,6 +904,7 @@ test "copied array element doesn't alias source" {...@@ -873,6 +904,7 @@ test "copied array element doesn't alias source" {
873904
874test "array initialized with string literal" {905test "array initialized with string literal" {
875 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO906 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
907 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
876908
877 const S = struct {909 const S = struct {
878 a: u32,910 a: u32,
...@@ -892,6 +924,7 @@ test "array initialized with string literal" {...@@ -892,6 +924,7 @@ test "array initialized with string literal" {
892}924}
893925
894test "array initialized with array with sentinel" {926test "array initialized with array with sentinel" {
927 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
895 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO928 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
896929
897 const S = struct {930 const S = struct {
...@@ -940,6 +973,7 @@ test "accessing multidimensional global array at comptime" {...@@ -940,6 +973,7 @@ test "accessing multidimensional global array at comptime" {
940 if (builtin.zig_backend == .stage2_x86) return error.SkipZigTest; // TODO973 if (builtin.zig_backend == .stage2_x86) return error.SkipZigTest; // TODO
941 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO974 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
942 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO975 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
976 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
943977
944 const S = struct {978 const S = struct {
945 const array = [_][]const []const u8{979 const array = [_][]const []const u8{
...@@ -953,6 +987,7 @@ test "accessing multidimensional global array at comptime" {...@@ -953,6 +987,7 @@ test "accessing multidimensional global array at comptime" {
953}987}
954988
955test "union that needs padding bytes inside an array" {989test "union that needs padding bytes inside an array" {
990 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
956 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;991 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;
957 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest;992 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest;
958 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO993 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
...@@ -992,6 +1027,7 @@ test "@splat array" {...@@ -992,6 +1027,7 @@ test "@splat array" {
992 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;1027 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;
993 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest;1028 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest;
994 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO1029 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
1030
995 const S = struct {1031 const S = struct {
996 fn doTheTest(comptime T: type, x: T) !void {1032 fn doTheTest(comptime T: type, x: T) !void {
997 const arr: [10]T = @splat(x);1033 const arr: [10]T = @splat(x);
...@@ -1010,10 +1046,12 @@ test "@splat array" {...@@ -1010,10 +1046,12 @@ test "@splat array" {
1010}1046}
10111047
1012test "@splat array with sentinel" {1048test "@splat array with sentinel" {
1049 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
1013 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;1050 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;
1014 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest;1051 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest;
1015 if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest;1052 if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest;
1016 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO1053 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
1054
1017 const S = struct {1055 const S = struct {
1018 fn doTheTest(comptime T: type, x: T, comptime s: T) !void {1056 fn doTheTest(comptime T: type, x: T, comptime s: T) !void {
1019 const arr: [10:s]T = @splat(x);1057 const arr: [10:s]T = @splat(x);
...@@ -1033,10 +1071,12 @@ test "@splat array with sentinel" {...@@ -1033,10 +1071,12 @@ test "@splat array with sentinel" {
1033}1071}
10341072
1035test "@splat zero-length array" {1073test "@splat zero-length array" {
1074 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
1036 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;1075 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;
1037 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest;1076 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest;
1038 if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest;1077 if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest;
1039 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO1078 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
1079
1040 const S = struct {1080 const S = struct {
1041 fn doTheTest(comptime T: type, comptime s: T) !void {1081 fn doTheTest(comptime T: type, comptime s: T) !void {
1042 var runtime_undef: T = undefined;1082 var runtime_undef: T = undefined;
test/behavior/atomics.zig+2
...@@ -107,6 +107,7 @@ test "cmpxchg with ignored result" {...@@ -107,6 +107,7 @@ test "cmpxchg with ignored result" {
107}107}
108108
109test "128-bit cmpxchg" {109test "128-bit cmpxchg" {
110 // TODO: this must appear first
110 if (!supports_128_bit_atomics) return error.SkipZigTest;111 if (!supports_128_bit_atomics) return error.SkipZigTest;
111112
112 if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest; // TODO113 if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest; // TODO
...@@ -284,6 +285,7 @@ fn testAtomicRmwInt(comptime signedness: std.builtin.Signedness, comptime N: usi...@@ -284,6 +285,7 @@ fn testAtomicRmwInt(comptime signedness: std.builtin.Signedness, comptime N: usi
284}285}
285286
286test "atomicrmw with 128-bit ints" {287test "atomicrmw with 128-bit ints" {
288 // TODO: this must appear first
287 if (!supports_128_bit_atomics) return error.SkipZigTest;289 if (!supports_128_bit_atomics) return error.SkipZigTest;
288290
289 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO291 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
test/behavior/basic.zig+33
...@@ -24,6 +24,7 @@ fn testTruncate(x: u32) u8 {...@@ -24,6 +24,7 @@ fn testTruncate(x: u32) u8 {
24}24}
2525
26test "truncate to non-power-of-two integers" {26test "truncate to non-power-of-two integers" {
27 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
27 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO28 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
2829
29 try testTrunc(u32, u1, 0b10101, 0b1);30 try testTrunc(u32, u1, 0b10101, 0b1);
...@@ -208,12 +209,14 @@ fn first4KeysOfHomeRow() []const u8 {...@@ -208,12 +209,14 @@ fn first4KeysOfHomeRow() []const u8 {
208}209}
209210
210test "return string from function" {211test "return string from function" {
212 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
211 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO213 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
212214
213 try expect(mem.eql(u8, first4KeysOfHomeRow(), "aoeu"));215 try expect(mem.eql(u8, first4KeysOfHomeRow(), "aoeu"));
214}216}
215217
216test "hex escape" {218test "hex escape" {
219 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
217 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO220 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
218221
219 try expect(mem.eql(u8, "\x68\x65\x6c\x6c\x6f", "hello"));222 try expect(mem.eql(u8, "\x68\x65\x6c\x6c\x6f", "hello"));
...@@ -221,6 +224,7 @@ test "hex escape" {...@@ -221,6 +224,7 @@ test "hex escape" {
221224
222test "multiline string" {225test "multiline string" {
223 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO226 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
227 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
224228
225 const s1 =229 const s1 =
226 \\one230 \\one
...@@ -233,6 +237,7 @@ test "multiline string" {...@@ -233,6 +237,7 @@ test "multiline string" {
233237
234test "multiline string comments at start" {238test "multiline string comments at start" {
235 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO239 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
240 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
236241
237 const s1 =242 const s1 =
238 //\\one243 //\\one
...@@ -245,6 +250,7 @@ test "multiline string comments at start" {...@@ -245,6 +250,7 @@ test "multiline string comments at start" {
245250
246test "multiline string comments at end" {251test "multiline string comments at end" {
247 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO252 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
253 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
248254
249 const s1 =255 const s1 =
250 \\one256 \\one
...@@ -257,6 +263,7 @@ test "multiline string comments at end" {...@@ -257,6 +263,7 @@ test "multiline string comments at end" {
257263
258test "multiline string comments in middle" {264test "multiline string comments in middle" {
259 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO265 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
266 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
260267
261 const s1 =268 const s1 =
262 \\one269 \\one
...@@ -269,6 +276,7 @@ test "multiline string comments in middle" {...@@ -269,6 +276,7 @@ test "multiline string comments in middle" {
269276
270test "multiline string comments at multiple places" {277test "multiline string comments at multiple places" {
271 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO278 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
279 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
272280
273 const s1 =281 const s1 =
274 \\one282 \\one
...@@ -282,11 +290,14 @@ test "multiline string comments at multiple places" {...@@ -282,11 +290,14 @@ test "multiline string comments at multiple places" {
282}290}
283291
284test "string concatenation simple" {292test "string concatenation simple" {
293 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
294
285 try expect(mem.eql(u8, "OK" ++ " IT " ++ "WORKED", "OK IT WORKED"));295 try expect(mem.eql(u8, "OK" ++ " IT " ++ "WORKED", "OK IT WORKED"));
286}296}
287297
288test "array mult operator" {298test "array mult operator" {
289 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO299 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
300 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
290301
291 try expect(mem.eql(u8, "ab" ** 5, "ababababab"));302 try expect(mem.eql(u8, "ab" ** 5, "ababababab"));
292}303}
...@@ -308,6 +319,8 @@ const global_a: i32 = 1234;...@@ -308,6 +319,8 @@ const global_a: i32 = 1234;
308const global_b: *const i32 = &global_a;319const global_b: *const i32 = &global_a;
309const global_c: *const f32 = @as(*const f32, @ptrCast(global_b));320const global_c: *const f32 = @as(*const f32, @ptrCast(global_b));
310test "compile time global reinterpret" {321test "compile time global reinterpret" {
322 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
323
311 const d = @as(*const i32, @ptrCast(global_c));324 const d = @as(*const i32, @ptrCast(global_c));
312 try expect(d.* == 1234);325 try expect(d.* == 1234);
313}326}
...@@ -435,6 +448,8 @@ fn f2(x: bool) []const u8 {...@@ -435,6 +448,8 @@ fn f2(x: bool) []const u8 {
435}448}
436449
437test "variable is allowed to be a pointer to an opaque type" {450test "variable is allowed to be a pointer to an opaque type" {
451 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
452
438 var x: i32 = 1234;453 var x: i32 = 1234;
439 _ = hereIsAnOpaqueType(@as(*OpaqueA, @ptrCast(&x)));454 _ = hereIsAnOpaqueType(@as(*OpaqueA, @ptrCast(&x)));
440}455}
...@@ -457,6 +472,8 @@ fn testTakeAddressOfParameter(f: f32) !void {...@@ -457,6 +472,8 @@ fn testTakeAddressOfParameter(f: f32) !void {
457}472}
458473
459test "pointer to void return type" {474test "pointer to void return type" {
475 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
476
460 try testPointerToVoidReturnType();477 try testPointerToVoidReturnType();
461}478}
462fn testPointerToVoidReturnType() anyerror!void {479fn testPointerToVoidReturnType() anyerror!void {
...@@ -472,6 +489,7 @@ test "array 2D const double ptr" {...@@ -472,6 +489,7 @@ test "array 2D const double ptr" {
472 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;489 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;
473 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO490 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
474 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest;491 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest;
492 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
475493
476 const rect_2d_vertexes = [_][1]f32{494 const rect_2d_vertexes = [_][1]f32{
477 [_]f32{1.0},495 [_]f32{1.0},
...@@ -484,6 +502,7 @@ test "array 2D const double ptr with offset" {...@@ -484,6 +502,7 @@ test "array 2D const double ptr with offset" {
484 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;502 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;
485 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO503 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
486 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest;504 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest;
505 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
487506
488 const rect_2d_vertexes = [_][2]f32{507 const rect_2d_vertexes = [_][2]f32{
489 [_]f32{ 3.0, 4.239 },508 [_]f32{ 3.0, 4.239 },
...@@ -496,6 +515,7 @@ test "array 3D const double ptr with offset" {...@@ -496,6 +515,7 @@ test "array 3D const double ptr with offset" {
496 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;515 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;
497 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO516 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
498 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest;517 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest;
518 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
499519
500 const rect_3d_vertexes = [_][2][2]f32{520 const rect_3d_vertexes = [_][2][2]f32{
501 [_][2]f32{521 [_][2]f32{
...@@ -551,6 +571,8 @@ fn testStructInFn() !void {...@@ -551,6 +571,8 @@ fn testStructInFn() !void {
551571
552test "fn call returning scalar optional in equality expression" {572test "fn call returning scalar optional in equality expression" {
553 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO573 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
574 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
575
554 try expect(getNull() == null);576 try expect(getNull() == null);
555}577}
556578
...@@ -561,6 +583,7 @@ fn getNull() ?*i32 {...@@ -561,6 +583,7 @@ fn getNull() ?*i32 {
561test "global variable assignment with optional unwrapping with var initialized to undefined" {583test "global variable assignment with optional unwrapping with var initialized to undefined" {
562 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest;584 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest;
563 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO585 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
586 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
564587
565 const S = struct {588 const S = struct {
566 var data: i32 = 1234;589 var data: i32 = 1234;
...@@ -676,6 +699,7 @@ test "self reference through fn ptr field" {...@@ -676,6 +699,7 @@ test "self reference through fn ptr field" {
676699
677test "global variable initialized to global variable array element" {700test "global variable initialized to global variable array element" {
678 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO701 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
702 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
679703
680 try expect(global_ptr == &gdt[0]);704 try expect(global_ptr == &gdt[0]);
681}705}
...@@ -708,6 +732,7 @@ test "global constant is loaded with a runtime-known index" {...@@ -708,6 +732,7 @@ test "global constant is loaded with a runtime-known index" {
708732
709test "multiline string literal is null terminated" {733test "multiline string literal is null terminated" {
710 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;734 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;
735 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
711736
712 const s1 =737 const s1 =
713 \\one738 \\one
...@@ -722,6 +747,7 @@ test "string escapes" {...@@ -722,6 +747,7 @@ test "string escapes" {
722 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;747 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;
723 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest;748 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest;
724 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO749 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
750 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
725751
726 try expectEqualStrings("\"", "\x22");752 try expectEqualStrings("\"", "\x22");
727 try expectEqualStrings("\'", "\x27");753 try expectEqualStrings("\'", "\x27");
...@@ -739,6 +765,8 @@ test "explicit cast optional pointers" {...@@ -739,6 +765,8 @@ test "explicit cast optional pointers" {
739}765}
740766
741test "pointer comparison" {767test "pointer comparison" {
768 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
769
742 const a = @as([]const u8, "a");770 const a = @as([]const u8, "a");
743 const b = &a;771 const b = &a;
744 try expect(ptrEql(b, b));772 try expect(ptrEql(b, b));
...@@ -789,6 +817,7 @@ fn maybe(x: bool) anyerror!?u32 {...@@ -789,6 +817,7 @@ fn maybe(x: bool) anyerror!?u32 {
789test "auto created variables have correct alignment" {817test "auto created variables have correct alignment" {
790 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO818 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
791 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO819 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
820 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
792821
793 const S = struct {822 const S = struct {
794 fn foo(str: [*]const u8) u32 {823 fn foo(str: [*]const u8) u32 {
...@@ -1152,6 +1181,8 @@ test "orelse coercion as function argument" {...@@ -1152,6 +1181,8 @@ test "orelse coercion as function argument" {
1152}1181}
11531182
1154test "runtime-known globals initialized with undefined" {1183test "runtime-known globals initialized with undefined" {
1184 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
1185
1155 const S = struct {1186 const S = struct {
1156 var array: [10]u32 = [_]u32{ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };1187 var array: [10]u32 = [_]u32{ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
1157 var vp: [*]u32 = undefined;1188 var vp: [*]u32 = undefined;
...@@ -1244,6 +1275,8 @@ fn testUnsignedCmp(comptime T: type) !void {...@@ -1244,6 +1275,8 @@ fn testUnsignedCmp(comptime T: type) !void {
1244}1275}
12451276
1246test "integer compare <= 64 bits" {1277test "integer compare <= 64 bits" {
1278 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
1279
1247 inline for (.{ u8, u16, u32, u64, usize, u10, u20, u30, u60 }) |T| {1280 inline for (.{ u8, u16, u32, u64, usize, u10, u20, u30, u60 }) |T| {
1248 try testUnsignedCmp(T);1281 try testUnsignedCmp(T);
1249 try comptime testUnsignedCmp(T);1282 try comptime testUnsignedCmp(T);
test/behavior/bitcast.zig+4-2
...@@ -23,8 +23,8 @@ test "@bitCast iX -> uX (8, 16, 128)" {...@@ -23,8 +23,8 @@ test "@bitCast iX -> uX (8, 16, 128)" {
23 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;23 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;
24 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest;24 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest;
25 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO25 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
26 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
27 if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest;26 if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest;
27 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
2828
29 const bit_values = [_]usize{ 8, 16, 128 };29 const bit_values = [_]usize{ 8, 16, 128 };
3030
...@@ -153,6 +153,8 @@ test "bitcast literal [4]u8 param to u32" {...@@ -153,6 +153,8 @@ test "bitcast literal [4]u8 param to u32" {
153}153}
154154
155test "bitcast generates a temporary value" {155test "bitcast generates a temporary value" {
156 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
157
156 var y: u16 = 0x55AA;158 var y: u16 = 0x55AA;
157 _ = &y;159 _ = &y;
158 const x: u16 = @bitCast(@as([2]u8, @bitCast(y)));160 const x: u16 = @bitCast(@as([2]u8, @bitCast(y)));
...@@ -190,6 +192,7 @@ test "@bitCast packed structs at runtime and comptime" {...@@ -190,6 +192,7 @@ test "@bitCast packed structs at runtime and comptime" {
190test "@bitCast extern structs at runtime and comptime" {192test "@bitCast extern structs at runtime and comptime" {
191 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;193 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;
192 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO194 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
195 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
193196
194 const Full = extern struct {197 const Full = extern struct {
195 number: u16,198 number: u16,
...@@ -383,7 +386,6 @@ test "comptime bitcast with fields following f80" {...@@ -383,7 +386,6 @@ test "comptime bitcast with fields following f80" {
383 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;386 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;
384 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest;387 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest;
385 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO388 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
386 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
387 if (builtin.zig_backend == .stage2_x86_64 and builtin.target.ofmt != .elf and builtin.target.ofmt != .macho) return error.SkipZigTest;389 if (builtin.zig_backend == .stage2_x86_64 and builtin.target.ofmt != .elf and builtin.target.ofmt != .macho) return error.SkipZigTest;
388390
389 const FloatT = extern struct { f: f80, x: u128 align(16) };391 const FloatT = extern struct { f: f80, x: u128 align(16) };
test/behavior/bool.zig+1
...@@ -10,6 +10,7 @@ test "bool literals" {...@@ -10,6 +10,7 @@ test "bool literals" {
1010
11test "cast bool to int" {11test "cast bool to int" {
12 if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest;12 if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest;
13 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
1314
14 const t = true;15 const t = true;
15 const f = false;16 const f = false;
test/behavior/call.zig+5
...@@ -344,6 +344,7 @@ test "inline call preserves tail call" {...@@ -344,6 +344,7 @@ test "inline call preserves tail call" {
344test "inline call doesn't re-evaluate non generic struct" {344test "inline call doesn't re-evaluate non generic struct" {
345 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO345 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
346 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO346 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
347 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
347348
348 const S = struct {349 const S = struct {
349 fn foo(f: struct { a: u8, b: u8 }) !void {350 fn foo(f: struct { a: u8, b: u8 }) !void {
...@@ -497,6 +498,8 @@ test "argument to generic function has correct result type" {...@@ -497,6 +498,8 @@ test "argument to generic function has correct result type" {
497}498}
498499
499test "call inline fn through pointer" {500test "call inline fn through pointer" {
501 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
502
500 const S = struct {503 const S = struct {
501 inline fn foo(x: u8) !void {504 inline fn foo(x: u8) !void {
502 try expect(x == 123);505 try expect(x == 123);
...@@ -644,6 +647,8 @@ test "function call with cast to anyopaque pointer" {...@@ -644,6 +647,8 @@ test "function call with cast to anyopaque pointer" {
644 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;647 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;
645 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO648 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
646 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO649 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
650 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
651
647 const Foo = struct {652 const Foo = struct {
648 y: u8,653 y: u8,
649 var foo: @This() = undefined;654 var foo: @This() = undefined;
test/behavior/cast.zig+85-10
...@@ -161,6 +161,7 @@ test "@intFromFloat" {...@@ -161,6 +161,7 @@ test "@intFromFloat" {
161 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO161 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
162 if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest; // TODO162 if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest; // TODO
163 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO163 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
164 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
164165
165 try testIntFromFloats();166 try testIntFromFloats();
166 try comptime testIntFromFloats();167 try comptime testIntFromFloats();
...@@ -183,6 +184,7 @@ fn expectIntFromFloat(comptime F: type, f: F, comptime I: type, i: I) !void {...@@ -183,6 +184,7 @@ fn expectIntFromFloat(comptime F: type, f: F, comptime I: type, i: I) !void {
183test "implicitly cast indirect pointer to maybe-indirect pointer" {184test "implicitly cast indirect pointer to maybe-indirect pointer" {
184 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;185 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;
185 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO186 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
187 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
186188
187 const S = struct {189 const S = struct {
188 const Self = @This();190 const Self = @This();
...@@ -263,6 +265,7 @@ fn MakeType(comptime T: type) type {...@@ -263,6 +265,7 @@ fn MakeType(comptime T: type) type {
263test "implicit cast from *[N]T to [*c]T" {265test "implicit cast from *[N]T to [*c]T" {
264 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;266 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;
265 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO267 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
268 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
266269
267 var x: [4]u16 = [4]u16{ 0, 1, 2, 3 };270 var x: [4]u16 = [4]u16{ 0, 1, 2, 3 };
268 var y: [*c]u16 = &x;271 var y: [*c]u16 = &x;
...@@ -325,6 +328,7 @@ test "*const ?[*]const T to [*c]const [*c]const T" {...@@ -325,6 +328,7 @@ test "*const ?[*]const T to [*c]const [*c]const T" {
325 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;328 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;
326 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO329 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
327 if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest;330 if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest;
331 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
328332
329 var array = [_]u8{ 'o', 'k' };333 var array = [_]u8{ 'o', 'k' };
330 const opt_array_ptr: ?[*]const u8 = &array;334 const opt_array_ptr: ?[*]const u8 = &array;
...@@ -402,6 +406,7 @@ test "peer type unsigned int to signed" {...@@ -402,6 +406,7 @@ test "peer type unsigned int to signed" {
402test "expected [*c]const u8, found [*:0]const u8" {406test "expected [*c]const u8, found [*:0]const u8" {
403 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;407 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;
404 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO408 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
409 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
405410
406 var a: [*:0]const u8 = "hello";411 var a: [*:0]const u8 = "hello";
407 _ = &a;412 _ = &a;
...@@ -430,6 +435,7 @@ test "peer resolve array and const slice" {...@@ -430,6 +435,7 @@ test "peer resolve array and const slice" {
430 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;435 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;
431 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO436 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
432 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO437 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
438 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
433439
434 try testPeerResolveArrayConstSlice(true);440 try testPeerResolveArrayConstSlice(true);
435 try comptime testPeerResolveArrayConstSlice(true);441 try comptime testPeerResolveArrayConstSlice(true);
...@@ -487,6 +493,7 @@ test "peer type resolution: [0]u8, []const u8, and anyerror![]u8" {...@@ -487,6 +493,7 @@ test "peer type resolution: [0]u8, []const u8, and anyerror![]u8" {
487 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;493 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;
488 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO494 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
489 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO495 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
496 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
490497
491 const S = struct {498 const S = struct {
492 fn doTheTest() anyerror!void {499 fn doTheTest() anyerror!void {
...@@ -518,6 +525,7 @@ fn peerTypeEmptyArrayAndSliceAndError(a: bool, slice: []u8) anyerror![]u8 {...@@ -518,6 +525,7 @@ fn peerTypeEmptyArrayAndSliceAndError(a: bool, slice: []u8) anyerror![]u8 {
518test "implicit cast from *const [N]T to []const T" {525test "implicit cast from *const [N]T to []const T" {
519 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO526 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
520 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO527 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
528 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
521529
522 try testCastConstArrayRefToConstSlice();530 try testCastConstArrayRefToConstSlice();
523 try comptime testCastConstArrayRefToConstSlice();531 try comptime testCastConstArrayRefToConstSlice();
...@@ -543,6 +551,7 @@ fn testCastConstArrayRefToConstSlice() !void {...@@ -543,6 +551,7 @@ fn testCastConstArrayRefToConstSlice() !void {
543test "peer type resolution: error and [N]T" {551test "peer type resolution: error and [N]T" {
544 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;552 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;
545 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO553 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
554 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
546555
547 try expect(mem.eql(u8, try testPeerErrorAndArray(0), "OK"));556 try expect(mem.eql(u8, try testPeerErrorAndArray(0), "OK"));
548 comptime assert(mem.eql(u8, try testPeerErrorAndArray(0), "OK"));557 comptime assert(mem.eql(u8, try testPeerErrorAndArray(0), "OK"));
...@@ -567,6 +576,7 @@ fn testPeerErrorAndArray2(x: u8) anyerror![]const u8 {...@@ -567,6 +576,7 @@ fn testPeerErrorAndArray2(x: u8) anyerror![]const u8 {
567test "single-item pointer of array to slice to unknown length pointer" {576test "single-item pointer of array to slice to unknown length pointer" {
568 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;577 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;
569 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO578 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
579 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
570580
571 try testCastPtrOfArrayToSliceAndPtr();581 try testCastPtrOfArrayToSliceAndPtr();
572 try comptime testCastPtrOfArrayToSliceAndPtr();582 try comptime testCastPtrOfArrayToSliceAndPtr();
...@@ -596,6 +606,7 @@ fn testCastPtrOfArrayToSliceAndPtr() !void {...@@ -596,6 +606,7 @@ fn testCastPtrOfArrayToSliceAndPtr() !void {
596test "cast *[1][*]const u8 to [*]const ?[*]const u8" {606test "cast *[1][*]const u8 to [*]const ?[*]const u8" {
597 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;607 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;
598 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO608 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
609 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
599610
600 const window_name = [1][*]const u8{"window name"};611 const window_name = [1][*]const u8{"window name"};
601 const x: [*]const ?[*]const u8 = &window_name;612 const x: [*]const ?[*]const u8 = &window_name;
...@@ -609,6 +620,7 @@ test "@intCast on vector" {...@@ -609,6 +620,7 @@ test "@intCast on vector" {
609 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO620 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
610 if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest;621 if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest;
611 if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest;622 if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest;
623 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
612624
613 const S = struct {625 const S = struct {
614 fn doTheTest() !void {626 fn doTheTest() !void {
...@@ -696,6 +708,7 @@ test "peer type resolution: error set supersets" {...@@ -696,6 +708,7 @@ test "peer type resolution: error set supersets" {
696 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO708 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
697 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO709 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
698 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO710 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
711 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
699712
700 const a: error{ One, Two } = undefined;713 const a: error{ One, Two } = undefined;
701 const b: error{One} = undefined;714 const b: error{One} = undefined;
...@@ -725,6 +738,7 @@ test "peer type resolution: disjoint error sets" {...@@ -725,6 +738,7 @@ test "peer type resolution: disjoint error sets" {
725 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO738 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
726 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO739 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
727 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO740 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
741 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
728742
729 const a: error{ One, Two } = undefined;743 const a: error{ One, Two } = undefined;
730 const b: error{Three} = undefined;744 const b: error{Three} = undefined;
...@@ -788,6 +802,7 @@ test "peer type resolution: error union after non-error" {...@@ -788,6 +802,7 @@ test "peer type resolution: error union after non-error" {
788 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO802 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
789 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO803 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
790 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO804 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
805 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
791806
792 const a: u32 = undefined;807 const a: u32 = undefined;
793 const b: error{ One, Two }!u32 = undefined;808 const b: error{ One, Two }!u32 = undefined;
...@@ -821,6 +836,7 @@ test "peer cast *[0]T to E![]const T" {...@@ -821,6 +836,7 @@ test "peer cast *[0]T to E![]const T" {
821 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest;836 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest;
822 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;837 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;
823 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO838 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
839 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
824840
825 var buffer: [5]u8 = "abcde".*;841 var buffer: [5]u8 = "abcde".*;
826 const buf: anyerror![]const u8 = buffer[0..];842 const buf: anyerror![]const u8 = buffer[0..];
...@@ -836,6 +852,7 @@ test "peer cast *[0]T to []const T" {...@@ -836,6 +852,7 @@ test "peer cast *[0]T to []const T" {
836 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest;852 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest;
837 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;853 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;
838 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO854 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
855 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
839856
840 var buffer: [5]u8 = "abcde".*;857 var buffer: [5]u8 = "abcde".*;
841 const buf: []const u8 = buffer[0..];858 const buf: []const u8 = buffer[0..];
...@@ -859,6 +876,7 @@ test "peer resolution of string literals" {...@@ -859,6 +876,7 @@ test "peer resolution of string literals" {
859 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;876 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;
860 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO877 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
861 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO878 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
879 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
862880
863 const S = struct {881 const S = struct {
864 const E = enum { a, b, c, d };882 const E = enum { a, b, c, d };
...@@ -880,6 +898,7 @@ test "peer resolution of string literals" {...@@ -880,6 +898,7 @@ test "peer resolution of string literals" {
880test "peer cast [:x]T to []T" {898test "peer cast [:x]T to []T" {
881 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;899 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;
882 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO900 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
901 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
883902
884 const S = struct {903 const S = struct {
885 fn doTheTest() !void {904 fn doTheTest() !void {
...@@ -896,6 +915,7 @@ test "peer cast [:x]T to []T" {...@@ -896,6 +915,7 @@ test "peer cast [:x]T to []T" {
896test "peer cast [N:x]T to [N]T" {915test "peer cast [N:x]T to [N]T" {
897 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;916 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;
898 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO917 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
918 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
899919
900 const S = struct {920 const S = struct {
901 fn doTheTest() !void {921 fn doTheTest() !void {
...@@ -912,6 +932,7 @@ test "peer cast [N:x]T to [N]T" {...@@ -912,6 +932,7 @@ test "peer cast [N:x]T to [N]T" {
912test "peer cast *[N:x]T to *[N]T" {932test "peer cast *[N:x]T to *[N]T" {
913 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO933 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
914 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO934 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
935 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
915936
916 const S = struct {937 const S = struct {
917 fn doTheTest() !void {938 fn doTheTest() !void {
...@@ -928,6 +949,7 @@ test "peer cast [*:x]T to [*]T" {...@@ -928,6 +949,7 @@ test "peer cast [*:x]T to [*]T" {
928 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO949 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
929 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO950 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
930 if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest;951 if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest;
952 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
931953
932 const S = struct {954 const S = struct {
933 fn doTheTest() !void {955 fn doTheTest() !void {
...@@ -948,6 +970,7 @@ test "peer cast [:x]T to [*:x]T" {...@@ -948,6 +970,7 @@ test "peer cast [:x]T to [*:x]T" {
948 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;970 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;
949 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO971 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
950 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO972 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
973 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
951974
952 const S = struct {975 const S = struct {
953 fn doTheTest() !void {976 fn doTheTest() !void {
...@@ -968,6 +991,7 @@ test "peer cast [:x]T to [*:x]T" {...@@ -968,6 +991,7 @@ test "peer cast [:x]T to [*:x]T" {
968test "peer type resolution implicit cast to return type" {991test "peer type resolution implicit cast to return type" {
969 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;992 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;
970 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO993 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
994 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
971995
972 const S = struct {996 const S = struct {
973 fn doTheTest() !void {997 fn doTheTest() !void {
...@@ -988,6 +1012,7 @@ test "peer type resolution implicit cast to return type" {...@@ -988,6 +1012,7 @@ test "peer type resolution implicit cast to return type" {
988test "peer type resolution implicit cast to variable type" {1012test "peer type resolution implicit cast to variable type" {
989 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;1013 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;
990 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO1014 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
1015 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
9911016
992 const S = struct {1017 const S = struct {
993 fn doTheTest() !void {1018 fn doTheTest() !void {
...@@ -1013,6 +1038,7 @@ test "variable initialization uses result locations properly with regards to the...@@ -1013,6 +1038,7 @@ test "variable initialization uses result locations properly with regards to the
1013test "cast between C pointer with different but compatible types" {1038test "cast between C pointer with different but compatible types" {
1014 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO1039 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
1015 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO1040 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
1041 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
10161042
1017 const S = struct {1043 const S = struct {
1018 fn foo(arg: [*]c_ushort) u16 {1044 fn foo(arg: [*]c_ushort) u16 {
...@@ -1030,6 +1056,7 @@ test "cast between C pointer with different but compatible types" {...@@ -1030,6 +1056,7 @@ test "cast between C pointer with different but compatible types" {
1030test "peer type resolve string lit with sentinel-terminated mutable slice" {1056test "peer type resolve string lit with sentinel-terminated mutable slice" {
1031 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO1057 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
1032 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO1058 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
1059 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
10331060
1034 var array: [4:0]u8 = undefined;1061 var array: [4:0]u8 = undefined;
1035 array[4] = 0; // TODO remove this when #4372 is solved1062 array[4] = 0; // TODO remove this when #4372 is solved
...@@ -1096,6 +1123,7 @@ test "implicit cast from [*]T to ?*anyopaque" {...@@ -1096,6 +1123,7 @@ test "implicit cast from [*]T to ?*anyopaque" {
1096 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;1123 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;
1097 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO1124 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
1098 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO1125 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
1126 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
10991127
1100 var a = [_]u8{ 3, 2, 1 };1128 var a = [_]u8{ 3, 2, 1 };
1101 var runtime_zero: usize = 0;1129 var runtime_zero: usize = 0;
...@@ -1112,6 +1140,8 @@ fn incrementVoidPtrArray(array: ?*anyopaque, len: usize) void {...@@ -1112,6 +1140,8 @@ fn incrementVoidPtrArray(array: ?*anyopaque, len: usize) void {
1112}1140}
11131141
1114test "compile time int to ptr of function" {1142test "compile time int to ptr of function" {
1143 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
1144
1115 try foobar(FUNCTION_CONSTANT);1145 try foobar(FUNCTION_CONSTANT);
1116}1146}
11171147
...@@ -1158,6 +1188,7 @@ test "implicit ptr to *anyopaque" {...@@ -1158,6 +1188,7 @@ test "implicit ptr to *anyopaque" {
1158 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;1188 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;
1159 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO1189 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
1160 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO1190 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
1191 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
11611192
1162 var a: u32 = 1;1193 var a: u32 = 1;
1163 const ptr: *align(@alignOf(u32)) anyopaque = &a;1194 const ptr: *align(@alignOf(u32)) anyopaque = &a;
...@@ -1171,6 +1202,7 @@ test "implicit ptr to *anyopaque" {...@@ -1171,6 +1202,7 @@ test "implicit ptr to *anyopaque" {
1171test "return null from fn () anyerror!?&T" {1202test "return null from fn () anyerror!?&T" {
1172 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;1203 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;
1173 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO1204 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
1205 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
11741206
1175 const a = returnNullFromOptionalTypeErrorRef();1207 const a = returnNullFromOptionalTypeErrorRef();
1176 const b = returnNullLitFromOptionalTypeErrorRef();1208 const b = returnNullLitFromOptionalTypeErrorRef();
...@@ -1188,6 +1220,7 @@ test "peer type resolution: [0]u8 and []const u8" {...@@ -1188,6 +1220,7 @@ test "peer type resolution: [0]u8 and []const u8" {
1188 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;1220 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;
1189 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO1221 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
1190 if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest;1222 if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest;
1223 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
11911224
1192 try expect(peerTypeEmptyArrayAndSlice(true, "hi").len == 0);1225 try expect(peerTypeEmptyArrayAndSlice(true, "hi").len == 0);
1193 try expect(peerTypeEmptyArrayAndSlice(false, "hi").len == 1);1226 try expect(peerTypeEmptyArrayAndSlice(false, "hi").len == 1);
...@@ -1208,6 +1241,7 @@ test "implicitly cast from [N]T to ?[]const T" {...@@ -1208,6 +1241,7 @@ test "implicitly cast from [N]T to ?[]const T" {
1208 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;1241 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;
1209 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO1242 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
1210 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO1243 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
1244 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
12111245
1212 try expect(mem.eql(u8, castToOptionalSlice().?, "hi"));1246 try expect(mem.eql(u8, castToOptionalSlice().?, "hi"));
1213 comptime assert(mem.eql(u8, castToOptionalSlice().?, "hi"));1247 comptime assert(mem.eql(u8, castToOptionalSlice().?, "hi"));
...@@ -1245,6 +1279,7 @@ test "implicit cast from *[N]T to ?[*]T" {...@@ -1245,6 +1279,7 @@ test "implicit cast from *[N]T to ?[*]T" {
1245 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO1279 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
1246 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO1280 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
1247 if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest;1281 if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest;
1282 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
12481283
1249 var x: ?[*]u16 = null;1284 var x: ?[*]u16 = null;
1250 var y: [4]u16 = [4]u16{ 0, 1, 2, 3 };1285 var y: [4]u16 = [4]u16{ 0, 1, 2, 3 };
...@@ -1260,6 +1295,7 @@ test "implicit cast from *T to ?*anyopaque" {...@@ -1260,6 +1295,7 @@ test "implicit cast from *T to ?*anyopaque" {
1260 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;1295 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;
1261 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO1296 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
1262 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO1297 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
1298 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
12631299
1264 var a: u8 = 1;1300 var a: u8 = 1;
1265 incrementVoidPtrValue(&a);1301 incrementVoidPtrValue(&a);
...@@ -1281,10 +1317,14 @@ test "implicit cast *[0]T to E![]const u8" {...@@ -1281,10 +1317,14 @@ test "implicit cast *[0]T to E![]const u8" {
12811317
1282var global_array: [4]u8 = undefined;1318var global_array: [4]u8 = undefined;
1283test "cast from array reference to fn: comptime fn ptr" {1319test "cast from array reference to fn: comptime fn ptr" {
1320 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
1321
1284 const f = @as(*align(1) const fn () callconv(.c) void, @ptrCast(&global_array));1322 const f = @as(*align(1) const fn () callconv(.c) void, @ptrCast(&global_array));
1285 try expect(@intFromPtr(f) == @intFromPtr(&global_array));1323 try expect(@intFromPtr(f) == @intFromPtr(&global_array));
1286}1324}
1287test "cast from array reference to fn: runtime fn ptr" {1325test "cast from array reference to fn: runtime fn ptr" {
1326 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
1327
1288 var f = @as(*align(1) const fn () callconv(.c) void, @ptrCast(&global_array));1328 var f = @as(*align(1) const fn () callconv(.c) void, @ptrCast(&global_array));
1289 _ = &f;1329 _ = &f;
1290 try expect(@intFromPtr(f) == @intFromPtr(&global_array));1330 try expect(@intFromPtr(f) == @intFromPtr(&global_array));
...@@ -1294,6 +1334,7 @@ test "*const [N]null u8 to ?[]const u8" {...@@ -1294,6 +1334,7 @@ test "*const [N]null u8 to ?[]const u8" {
1294 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;1334 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;
1295 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO1335 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
1296 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO1336 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
1337 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
12971338
1298 const S = struct {1339 const S = struct {
1299 fn doTheTest() !void {1340 fn doTheTest() !void {
...@@ -1330,6 +1371,7 @@ test "assignment to optional pointer result loc" {...@@ -1330,6 +1371,7 @@ test "assignment to optional pointer result loc" {
1330 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;1371 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;
1331 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO1372 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
1332 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO1373 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
1374 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
13331375
1334 var foo: struct { ptr: ?*anyopaque } = .{ .ptr = &global_struct };1376 var foo: struct { ptr: ?*anyopaque } = .{ .ptr = &global_struct };
1335 _ = &foo;1377 _ = &foo;
...@@ -1347,6 +1389,7 @@ test "cast between *[N]void and []void" {...@@ -1347,6 +1389,7 @@ test "cast between *[N]void and []void" {
1347test "peer resolve arrays of different size to const slice" {1389test "peer resolve arrays of different size to const slice" {
1348 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;1390 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;
1349 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO1391 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
1392 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
13501393
1351 try expect(mem.eql(u8, boolToStr(true), "true"));1394 try expect(mem.eql(u8, boolToStr(true), "true"));
1352 try expect(mem.eql(u8, boolToStr(false), "false"));1395 try expect(mem.eql(u8, boolToStr(false), "false"));
...@@ -1404,6 +1447,7 @@ test "peer type resolution: unreachable, null, slice" {...@@ -1404,6 +1447,7 @@ test "peer type resolution: unreachable, null, slice" {
1404 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;1447 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;
1405 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO1448 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
1406 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO1449 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
1450 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
14071451
1408 const S = struct {1452 const S = struct {
1409 fn doTheTest(num: usize, word: []const u8) !void {1453 fn doTheTest(num: usize, word: []const u8) !void {
...@@ -1444,6 +1488,7 @@ test "cast compatible optional types" {...@@ -1444,6 +1488,7 @@ test "cast compatible optional types" {
1444 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO1488 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
1445 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO1489 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
1446 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO1490 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
1491 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
14471492
1448 var a: ?[:0]const u8 = null;1493 var a: ?[:0]const u8 = null;
1449 _ = &a;1494 _ = &a;
...@@ -1530,16 +1575,16 @@ test "cast typed undefined to int" {...@@ -1530,16 +1575,16 @@ test "cast typed undefined to int" {
1530 }1575 }
1531}1576}
15321577
1533test "implicit cast from [:0]T to [*c]T" {1578// test "implicit cast from [:0]T to [*c]T" {
1534 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO1579// if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
15351580
1536 var a: [:0]const u8 = "foo";1581// var a: [:0]const u8 = "foo";
1537 _ = &a;1582// _ = &a;
1538 const b: [*c]const u8 = a;1583// const b: [*c]const u8 = a;
1539 const c = std.mem.span(b);1584// const c = std.mem.span(b);
1540 try expect(c.len == a.len);1585// try expect(c.len == a.len);
1541 try expect(c.ptr == a.ptr);1586// try expect(c.ptr == a.ptr);
1542}1587// }
15431588
1544test "bitcast packed struct with u0" {1589test "bitcast packed struct with u0" {
1545 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO1590 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
...@@ -1555,6 +1600,7 @@ test "bitcast packed struct with u0" {...@@ -1555,6 +1600,7 @@ test "bitcast packed struct with u0" {
15551600
1556test "optional pointer coerced to optional allowzero pointer" {1601test "optional pointer coerced to optional allowzero pointer" {
1557 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO1602 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
1603 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
15581604
1559 var p: ?*u32 = undefined;1605 var p: ?*u32 = undefined;
1560 var q: ?*allowzero u32 = undefined;1606 var q: ?*allowzero u32 = undefined;
...@@ -1571,6 +1617,8 @@ test "optional slice coerced to allowzero many pointer" {...@@ -1571,6 +1617,8 @@ test "optional slice coerced to allowzero many pointer" {
1571}1617}
15721618
1573test "optional slice passed as parameter coerced to allowzero many pointer" {1619test "optional slice passed as parameter coerced to allowzero many pointer" {
1620 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
1621
1574 const ns = struct {1622 const ns = struct {
1575 const Color = struct {1623 const Color = struct {
1576 r: u8,1624 r: u8,
...@@ -1590,6 +1638,8 @@ test "optional slice passed as parameter coerced to allowzero many pointer" {...@@ -1590,6 +1638,8 @@ test "optional slice passed as parameter coerced to allowzero many pointer" {
1590}1638}
15911639
1592test "single item pointer to pointer to array to slice" {1640test "single item pointer to pointer to array to slice" {
1641 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
1642
1593 var x: i32 = 1234;1643 var x: i32 = 1234;
1594 try expect(@as([]const i32, @as(*[1]i32, &x))[0] == 1234);1644 try expect(@as([]const i32, @as(*[1]i32, &x))[0] == 1234);
1595 const z1 = @as([]const i32, @as(*[1]i32, &x));1645 const z1 = @as([]const i32, @as(*[1]i32, &x));
...@@ -1598,6 +1648,7 @@ test "single item pointer to pointer to array to slice" {...@@ -1598,6 +1648,7 @@ test "single item pointer to pointer to array to slice" {
15981648
1599test "peer type resolution forms error union" {1649test "peer type resolution forms error union" {
1600 if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest;1650 if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest;
1651 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
16011652
1602 var foo: i32 = 123;1653 var foo: i32 = 123;
1603 _ = &foo;1654 _ = &foo;
...@@ -1632,6 +1683,8 @@ test "@volatileCast without a result location" {...@@ -1632,6 +1683,8 @@ test "@volatileCast without a result location" {
1632}1683}
16331684
1634test "coercion from single-item pointer to @as to slice" {1685test "coercion from single-item pointer to @as to slice" {
1686 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
1687
1635 var x: u32 = 1;1688 var x: u32 = 1;
16361689
1637 // Why the following line gets a compile error?1690 // Why the following line gets a compile error?
...@@ -1644,6 +1697,7 @@ test "peer type resolution: const sentinel slice and mutable non-sentinel slice"...@@ -1644,6 +1697,7 @@ test "peer type resolution: const sentinel slice and mutable non-sentinel slice"
1644 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO1697 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
1645 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO1698 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
1646 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO1699 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
1700 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
16471701
1648 const S = struct {1702 const S = struct {
1649 fn doTheTest(comptime T: type, comptime s: T) !void {1703 fn doTheTest(comptime T: type, comptime s: T) !void {
...@@ -1696,6 +1750,7 @@ test "peer type resolution: same array type with sentinel" {...@@ -1696,6 +1750,7 @@ test "peer type resolution: same array type with sentinel" {
1696 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO1750 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
1697 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO1751 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
1698 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO1752 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
1753 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
16991754
1700 var a: [2:0]u32 = .{ 0, 1 };1755 var a: [2:0]u32 = .{ 0, 1 };
1701 var b: [2:0]u32 = .{ 2, 3 };1756 var b: [2:0]u32 = .{ 2, 3 };
...@@ -1718,6 +1773,7 @@ test "peer type resolution: array with sentinel and array without sentinel" {...@@ -1718,6 +1773,7 @@ test "peer type resolution: array with sentinel and array without sentinel" {
1718 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO1773 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
1719 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO1774 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
1720 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO1775 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
1776 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
17211777
1722 var a: [2:0]u32 = .{ 0, 1 };1778 var a: [2:0]u32 = .{ 0, 1 };
1723 var b: [2]u32 = .{ 2, 3 };1779 var b: [2]u32 = .{ 2, 3 };
...@@ -1740,6 +1796,7 @@ test "peer type resolution: array and vector with same child type" {...@@ -1740,6 +1796,7 @@ test "peer type resolution: array and vector with same child type" {
1740 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO1796 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
1741 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO1797 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
1742 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO1798 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
1799 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
17431800
1744 var arr: [2]u32 = .{ 0, 1 };1801 var arr: [2]u32 = .{ 0, 1 };
1745 var vec: @Vector(2, u32) = .{ 2, 3 };1802 var vec: @Vector(2, u32) = .{ 2, 3 };
...@@ -1786,6 +1843,7 @@ test "peer type resolution: error union and optional of same type" {...@@ -1786,6 +1843,7 @@ test "peer type resolution: error union and optional of same type" {
1786 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO1843 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
1787 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO1844 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
1788 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO1845 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
1846 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
17891847
1790 const E = error{Foo};1848 const E = error{Foo};
1791 var a: E!*u8 = error.Foo;1849 var a: E!*u8 = error.Foo;
...@@ -1809,6 +1867,7 @@ test "peer type resolution: C pointer and @TypeOf(null)" {...@@ -1809,6 +1867,7 @@ test "peer type resolution: C pointer and @TypeOf(null)" {
1809 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO1867 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
1810 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO1868 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
1811 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO1869 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
1870 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
18121871
1813 var a: [*c]c_int = 0x1000;1872 var a: [*c]c_int = 0x1000;
1814 _ = &a;1873 _ = &a;
...@@ -1831,6 +1890,7 @@ test "peer type resolution: three-way resolution combines error set and optional...@@ -1831,6 +1890,7 @@ test "peer type resolution: three-way resolution combines error set and optional
1831 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO1890 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
1832 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO1891 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
1833 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO1892 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
1893 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
18341894
1835 const E = error{Foo};1895 const E = error{Foo};
1836 var a: E = error.Foo;1896 var a: E = error.Foo;
...@@ -1919,6 +1979,7 @@ test "peer type resolution: array and tuple" {...@@ -1919,6 +1979,7 @@ test "peer type resolution: array and tuple" {
1919 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO1979 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
1920 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO1980 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
1921 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO1981 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
1982 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
19221983
1923 var arr: [3]i32 = .{ 1, 2, 3 };1984 var arr: [3]i32 = .{ 1, 2, 3 };
1924 _ = &arr;1985 _ = &arr;
...@@ -1967,6 +2028,7 @@ test "peer type resolution: vector and array and tuple" {...@@ -1967,6 +2028,7 @@ test "peer type resolution: vector and array and tuple" {
1967 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO2028 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
1968 if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest; // TODO2029 if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest; // TODO
1969 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO2030 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
2031 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
19702032
1971 var vec: @Vector(2, i8) = .{ 10, 20 };2033 var vec: @Vector(2, i8) = .{ 10, 20 };
1972 var arr: [2]i8 = .{ 30, 40 };2034 var arr: [2]i8 = .{ 30, 40 };
...@@ -2009,6 +2071,7 @@ test "peer type resolution: empty tuple pointer and slice" {...@@ -2009,6 +2071,7 @@ test "peer type resolution: empty tuple pointer and slice" {
2009 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO2071 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
2010 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO2072 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
2011 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO2073 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
2074 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
20122075
2013 var a: [:0]const u8 = "Hello";2076 var a: [:0]const u8 = "Hello";
2014 var b = &.{};2077 var b = &.{};
...@@ -2030,6 +2093,7 @@ test "peer type resolution: tuple pointer and slice" {...@@ -2030,6 +2093,7 @@ test "peer type resolution: tuple pointer and slice" {
2030 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO2093 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
2031 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO2094 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
2032 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO2095 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
2096 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
20332097
2034 var a: [:0]const u8 = "Hello";2098 var a: [:0]const u8 = "Hello";
2035 var b = &.{ @as(u8, 'x'), @as(u8, 'y'), @as(u8, 'z') };2099 var b = &.{ @as(u8, 'x'), @as(u8, 'y'), @as(u8, 'z') };
...@@ -2074,7 +2138,7 @@ test "peer type resolution: many compatible pointers" {...@@ -2074,7 +2138,7 @@ test "peer type resolution: many compatible pointers" {
2074 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO2138 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
2075 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO2139 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
2076 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO2140 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
2077 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest; // TODO2141 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
20782142
2079 var buf = "foo-3".*;2143 var buf = "foo-3".*;
20802144
...@@ -2173,6 +2237,7 @@ test "peer type resolution: C pointer and many pointer" {...@@ -2173,6 +2237,7 @@ test "peer type resolution: C pointer and many pointer" {
2173 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO2237 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
2174 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO2238 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
2175 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO2239 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
2240 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
21762241
2177 var buf = "hello".*;2242 var buf = "hello".*;
21782243
...@@ -2196,6 +2261,7 @@ test "peer type resolution: pointer attributes are combined correctly" {...@@ -2196,6 +2261,7 @@ test "peer type resolution: pointer attributes are combined correctly" {
2196 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO2261 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
2197 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO2262 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
2198 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO2263 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
2264 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
21992265
2200 var buf_a align(4) = "foo".*;2266 var buf_a align(4) = "foo".*;
2201 var buf_b align(4) = "bar".*;2267 var buf_b align(4) = "bar".*;
...@@ -2277,6 +2343,7 @@ test "peer type resolution: arrays of compatible types" {...@@ -2277,6 +2343,7 @@ test "peer type resolution: arrays of compatible types" {
2277 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO2343 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
2278 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO2344 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
2279 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO2345 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
2346 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
22802347
2281 var e0: u8 = 3;2348 var e0: u8 = 3;
2282 var e1: u8 = 2;2349 var e1: u8 = 2;
...@@ -2294,6 +2361,7 @@ test "cast builtins can wrap result in optional" {...@@ -2294,6 +2361,7 @@ test "cast builtins can wrap result in optional" {
2294 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO2361 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
2295 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO2362 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
2296 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO2363 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
2364 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
22972365
2298 const S = struct {2366 const S = struct {
2299 const MyEnum = enum(u32) { _ };2367 const MyEnum = enum(u32) { _ };
...@@ -2369,6 +2437,7 @@ test "cast builtins can wrap result in error union and optional" {...@@ -2369,6 +2437,7 @@ test "cast builtins can wrap result in error union and optional" {
2369 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO2437 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
2370 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO2438 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
2371 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO2439 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
2440 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
23722441
2373 const S = struct {2442 const S = struct {
2374 const MyEnum = enum(u32) { _ };2443 const MyEnum = enum(u32) { _ };
...@@ -2452,6 +2521,7 @@ test "@ptrFromInt on vector" {...@@ -2452,6 +2521,7 @@ test "@ptrFromInt on vector" {
2452 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO2521 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
2453 if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest;2522 if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest;
2454 if (builtin.zig_backend == .stage2_x86_64 and builtin.target.ofmt != .elf and builtin.target.ofmt != .macho) return error.SkipZigTest;2523 if (builtin.zig_backend == .stage2_x86_64 and builtin.target.ofmt != .elf and builtin.target.ofmt != .macho) return error.SkipZigTest;
2524 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
24552525
2456 const S = struct {2526 const S = struct {
2457 fn doTheTest() !void {2527 fn doTheTest() !void {
...@@ -2476,6 +2546,7 @@ test "@intFromPtr on vector" {...@@ -2476,6 +2546,7 @@ test "@intFromPtr on vector" {
2476 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO2546 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
2477 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO2547 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
2478 if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest;2548 if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest;
2549 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
24792550
2480 const S = struct {2551 const S = struct {
2481 fn doTheTest() !void {2552 fn doTheTest() !void {
...@@ -2597,6 +2668,7 @@ test "result information is preserved through many nested structures" {...@@ -2597,6 +2668,7 @@ test "result information is preserved through many nested structures" {
2597 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO2668 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
2598 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO2669 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
2599 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO2670 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
2671 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
26002672
2601 const S = struct {2673 const S = struct {
2602 fn doTheTest() !void {2674 fn doTheTest() !void {
...@@ -2624,6 +2696,7 @@ test "@intCast vector of signed integer" {...@@ -2624,6 +2696,7 @@ test "@intCast vector of signed integer" {
2624 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO2696 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
2625 if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO2697 if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO
2626 if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest;2698 if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest;
2699 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
26272700
2628 var x: @Vector(4, i32) = .{ 1, 2, 3, 4 };2701 var x: @Vector(4, i32) = .{ 1, 2, 3, 4 };
2629 _ = &x;2702 _ = &x;
...@@ -2654,6 +2727,8 @@ test "bitcast vector" {...@@ -2654,6 +2727,8 @@ test "bitcast vector" {
2654}2727}
26552728
2656test "peer type resolution: slice of sentinel-terminated array" {2729test "peer type resolution: slice of sentinel-terminated array" {
2730 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
2731
2657 var f: bool = undefined;2732 var f: bool = undefined;
2658 f = false;2733 f = false;
26592734
test/behavior/cast_int.zig+4-1
...@@ -22,6 +22,7 @@ test "coerce i8 to i32 and @intCast back" {...@@ -22,6 +22,7 @@ test "coerce i8 to i32 and @intCast back" {
22 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO22 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
23 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO23 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
24 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO24 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
25 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
2526
26 var x: i8 = -5;27 var x: i8 = -5;
27 var y: i32 = -5;28 var y: i32 = -5;
...@@ -35,6 +36,8 @@ test "coerce i8 to i32 and @intCast back" {...@@ -35,6 +36,8 @@ test "coerce i8 to i32 and @intCast back" {
35}36}
3637
37test "coerce non byte-sized integers accross 32bits boundary" {38test "coerce non byte-sized integers accross 32bits boundary" {
39 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
40
38 {41 {
39 var v: u21 = 6417;42 var v: u21 = 6417;
40 _ = &v;43 _ = &v;
...@@ -179,8 +182,8 @@ test "load non byte-sized optional value" {...@@ -179,8 +182,8 @@ test "load non byte-sized optional value" {
179}182}
180183
181test "load non byte-sized value in struct" {184test "load non byte-sized value in struct" {
182 if (builtin.cpu.arch.endian() != .little) return error.SkipZigTest; // packed struct TODO
183 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;185 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
186 if (builtin.cpu.arch.endian() != .little) return error.SkipZigTest; // packed struct TODO
184187
185 // note: this bug is triggered by the == operator, expectEqual will hide it188 // note: this bug is triggered by the == operator, expectEqual will hide it
186 // using ptrCast not to depend on unitialised memory state189 // using ptrCast not to depend on unitialised memory state
test/behavior/const_slice_child.zig+1
...@@ -11,6 +11,7 @@ test "const slice child" {...@@ -11,6 +11,7 @@ test "const slice child" {
11 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO11 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
12 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO12 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
13 if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest;13 if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest;
14 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
1415
15 const strs = [_][*]const u8{ "one", "two", "three" };16 const strs = [_][*]const u8{ "one", "two", "three" };
16 argv = &strs;17 argv = &strs;
test/behavior/decl_literals.zig+5-4
...@@ -33,10 +33,11 @@ test "decl literal with pointer" {...@@ -33,10 +33,11 @@ test "decl literal with pointer" {
33}33}
3434
35test "call decl literal with optional" {35test "call decl literal with optional" {
36 if (builtin.zig_backend == .stage2_sparc64 or36 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest;
37 builtin.zig_backend == .stage2_arm or37 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest;
38 builtin.zig_backend == .stage2_aarch64 or38 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;
39 builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest; // TODO39 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
40
40 const S = struct {41 const S = struct {
41 x: u32,42 x: u32,
42 fn init() ?@This() {43 fn init() ?@This() {
test/behavior/defer.zig+1
...@@ -160,6 +160,7 @@ test "reference to errdefer payload" {...@@ -160,6 +160,7 @@ test "reference to errdefer payload" {
160test "simple else prong doesn't emit an error for unreachable else prong" {160test "simple else prong doesn't emit an error for unreachable else prong" {
161 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;161 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;
162 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO162 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
163 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
163164
164 const S = struct {165 const S = struct {
165 fn foo() error{Foo}!void {166 fn foo() error{Foo}!void {
test/behavior/destructure.zig+2
...@@ -94,6 +94,8 @@ test "destructure from labeled block" {...@@ -94,6 +94,8 @@ test "destructure from labeled block" {
94}94}
9595
96test "destructure tuple value" {96test "destructure tuple value" {
97 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
98
97 const tup: struct { f32, u32, i64 } = .{ 10.0, 20, 30 };99 const tup: struct { f32, u32, i64 } = .{ 10.0, 20, 30 };
98 const x, const y, const z = tup;100 const x, const y, const z = tup;
99101
test/behavior/enum.zig+4
...@@ -945,6 +945,7 @@ test "constant enum initialization with differing sizes" {...@@ -945,6 +945,7 @@ test "constant enum initialization with differing sizes" {
945 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;945 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;
946 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO946 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
947 if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest;947 if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest;
948 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
948949
949 try test3_1(test3_foo);950 try test3_1(test3_foo);
950 try test3_2(test3_bar);951 try test3_2(test3_bar);
...@@ -1047,6 +1048,7 @@ test "tag name with assigned enum values" {...@@ -1047,6 +1048,7 @@ test "tag name with assigned enum values" {
1047test "@tagName on enum literals" {1048test "@tagName on enum literals" {
1048 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;1049 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;
1049 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO1050 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
1051 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
10501052
1051 try expect(mem.eql(u8, @tagName(.FooBar), "FooBar"));1053 try expect(mem.eql(u8, @tagName(.FooBar), "FooBar"));
1052 comptime assert(mem.eql(u8, @tagName(.FooBar), "FooBar"));1054 comptime assert(mem.eql(u8, @tagName(.FooBar), "FooBar"));
...@@ -1236,6 +1238,8 @@ test "enum tag from a local variable" {...@@ -1236,6 +1238,8 @@ test "enum tag from a local variable" {
1236}1238}
12371239
1238test "auto-numbered enum with signed tag type" {1240test "auto-numbered enum with signed tag type" {
1241 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
1242
1239 const E = enum(i32) { a, b };1243 const E = enum(i32) { a, b };
12401244
1241 try std.testing.expectEqual(@as(i32, 0), @intFromEnum(E.a));1245 try std.testing.expectEqual(@as(i32, 0), @intFromEnum(E.a));
test/behavior/error.zig+2
...@@ -124,6 +124,7 @@ test "debug info for optional error set" {...@@ -124,6 +124,7 @@ test "debug info for optional error set" {
124124
125test "implicit cast to optional to error union to return result loc" {125test "implicit cast to optional to error union to return result loc" {
126 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO126 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
127 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
127128
128 const S = struct {129 const S = struct {
129 fn entry() !void {130 fn entry() !void {
...@@ -150,6 +151,7 @@ test "fn returning empty error set can be passed as fn returning any error" {...@@ -150,6 +151,7 @@ test "fn returning empty error set can be passed as fn returning any error" {
150151
151test "fn returning empty error set can be passed as fn returning any error - pointer" {152test "fn returning empty error set can be passed as fn returning any error - pointer" {
152 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;153 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
154
153 entryPtr();155 entryPtr();
154 comptime entryPtr();156 comptime entryPtr();
155}157}
test/behavior/eval.zig+20
...@@ -143,6 +143,7 @@ test "a type constructed in a global expression" {...@@ -143,6 +143,7 @@ test "a type constructed in a global expression" {
143 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO143 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
144 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO144 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
145 if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest;145 if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest;
146 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
146147
147 var l: List = undefined;148 var l: List = undefined;
148 l.array[0] = 10;149 l.array[0] = 10;
...@@ -445,6 +446,7 @@ test "binary math operator in partially inlined function" {...@@ -445,6 +446,7 @@ test "binary math operator in partially inlined function" {
445 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO446 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
446 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO447 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
447 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO448 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
449 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
448450
449 var s: [4]u32 = undefined;451 var s: [4]u32 = undefined;
450 var b: [16]u8 = undefined;452 var b: [16]u8 = undefined;
...@@ -503,6 +505,7 @@ test "comptime shlWithOverflow" {...@@ -503,6 +505,7 @@ test "comptime shlWithOverflow" {
503test "const ptr to variable data changes at runtime" {505test "const ptr to variable data changes at runtime" {
504 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO506 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
505 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO507 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
508 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
506509
507 try expect(foo_ref.name[0] == 'a');510 try expect(foo_ref.name[0] == 'a');
508 foo_ref.name = "b";511 foo_ref.name = "b";
...@@ -536,6 +539,7 @@ test "runtime 128 bit integer division" {...@@ -536,6 +539,7 @@ test "runtime 128 bit integer division" {
536test "@tagName of @typeInfo" {539test "@tagName of @typeInfo" {
537 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO540 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
538 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO541 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
542 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
539543
540 const str = @tagName(@typeInfo(u8));544 const str = @tagName(@typeInfo(u8));
541 try expect(std.mem.eql(u8, str, "int"));545 try expect(std.mem.eql(u8, str, "int"));
...@@ -613,6 +617,7 @@ const hi1 = "hi";...@@ -613,6 +617,7 @@ const hi1 = "hi";
613const hi2 = hi1;617const hi2 = hi1;
614test "const global shares pointer with other same one" {618test "const global shares pointer with other same one" {
615 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO619 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
620 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
616621
617 try assertEqualPtrs(&hi1[0], &hi2[0]);622 try assertEqualPtrs(&hi1[0], &hi2[0]);
618 comptime assert(&hi1[0] == &hi2[0]);623 comptime assert(&hi1[0] == &hi2[0]);
...@@ -739,6 +744,7 @@ test "array concatenation of function calls" {...@@ -739,6 +744,7 @@ test "array concatenation of function calls" {
739 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest;744 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest;
740 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;745 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;
741 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO746 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
747 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
742748
743 var a = oneItem(3) ++ oneItem(4);749 var a = oneItem(3) ++ oneItem(4);
744 try expect(std.mem.eql(i32, &a, &[_]i32{ 3, 4 }));750 try expect(std.mem.eql(i32, &a, &[_]i32{ 3, 4 }));
...@@ -748,6 +754,7 @@ test "array multiplication of function calls" {...@@ -748,6 +754,7 @@ test "array multiplication of function calls" {
748 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest;754 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest;
749 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;755 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;
750 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO756 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
757 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
751758
752 var a = oneItem(3) ** scalar(2);759 var a = oneItem(3) ** scalar(2);
753 try expect(std.mem.eql(i32, &a, &[_]i32{ 3, 3 }));760 try expect(std.mem.eql(i32, &a, &[_]i32{ 3, 3 }));
...@@ -782,6 +789,7 @@ test "array concatenation peer resolves element types - pointer" {...@@ -782,6 +789,7 @@ test "array concatenation peer resolves element types - pointer" {
782 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest;789 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest;
783 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;790 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;
784 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO791 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
792 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
785793
786 var a = [2]u3{ 1, 7 };794 var a = [2]u3{ 1, 7 };
787 var b = [3]u8{ 200, 225, 255 };795 var b = [3]u8{ 200, 225, 255 };
...@@ -799,6 +807,7 @@ test "array concatenation sets the sentinel - value" {...@@ -799,6 +807,7 @@ test "array concatenation sets the sentinel - value" {
799 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;807 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;
800 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO808 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
801 if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest;809 if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest;
810 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
802811
803 var a = [2]u3{ 1, 7 };812 var a = [2]u3{ 1, 7 };
804 var b = [3:69]u8{ 200, 225, 255 };813 var b = [3:69]u8{ 200, 225, 255 };
...@@ -818,6 +827,7 @@ test "array concatenation sets the sentinel - pointer" {...@@ -818,6 +827,7 @@ test "array concatenation sets the sentinel - pointer" {
818 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;827 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;
819 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO828 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
820 if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest;829 if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest;
830 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
821831
822 var a = [2]u3{ 1, 7 };832 var a = [2]u3{ 1, 7 };
823 var b = [3:69]u8{ 200, 225, 255 };833 var b = [3:69]u8{ 200, 225, 255 };
...@@ -837,6 +847,7 @@ test "array multiplication sets the sentinel - value" {...@@ -837,6 +847,7 @@ test "array multiplication sets the sentinel - value" {
837 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;847 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;
838 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO848 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
839 if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest;849 if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest;
850 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
840851
841 var a = [2:7]u3{ 1, 6 };852 var a = [2:7]u3{ 1, 6 };
842 _ = &a;853 _ = &a;
...@@ -855,6 +866,7 @@ test "array multiplication sets the sentinel - pointer" {...@@ -855,6 +866,7 @@ test "array multiplication sets the sentinel - pointer" {
855 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;866 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;
856 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO867 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
857 if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest;868 if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest;
869 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
858870
859 var a = [2:7]u3{ 1, 6 };871 var a = [2:7]u3{ 1, 6 };
860 const b = &a ** 2;872 const b = &a ** 2;
...@@ -938,6 +950,8 @@ test "comptime pointer load through elem_ptr" {...@@ -938,6 +950,8 @@ test "comptime pointer load through elem_ptr" {
938}950}
939951
940test "debug variable type resolved through indirect zero-bit types" {952test "debug variable type resolved through indirect zero-bit types" {
953 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
954
941 const T = struct { key: []void };955 const T = struct { key: []void };
942 const slice: []const T = &[_]T{};956 const slice: []const T = &[_]T{};
943 _ = slice;957 _ = slice;
...@@ -1098,6 +1112,7 @@ test "no dependency loop for alignment of self struct" {...@@ -1098,6 +1112,7 @@ test "no dependency loop for alignment of self struct" {
1098 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO1112 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
1099 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO1113 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
1100 if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest;1114 if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest;
1115 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
11011116
1102 const S = struct {1117 const S = struct {
1103 fn doTheTest() !void {1118 fn doTheTest() !void {
...@@ -1136,6 +1151,7 @@ test "no dependency loop for alignment of self bare union" {...@@ -1136,6 +1151,7 @@ test "no dependency loop for alignment of self bare union" {
1136 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO1151 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
1137 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO1152 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
1138 if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest;1153 if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest;
1154 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
11391155
1140 const S = struct {1156 const S = struct {
1141 fn doTheTest() !void {1157 fn doTheTest() !void {
...@@ -1174,6 +1190,7 @@ test "no dependency loop for alignment of self tagged union" {...@@ -1174,6 +1190,7 @@ test "no dependency loop for alignment of self tagged union" {
1174 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO1190 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
1175 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO1191 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
1176 if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest;1192 if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest;
1193 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
11771194
1178 const S = struct {1195 const S = struct {
1179 fn doTheTest() !void {1196 fn doTheTest() !void {
...@@ -1361,6 +1378,8 @@ test "lazy sizeof is resolved in division" {...@@ -1361,6 +1378,8 @@ test "lazy sizeof is resolved in division" {
1361}1378}
13621379
1363test "lazy sizeof union tag size in compare" {1380test "lazy sizeof union tag size in compare" {
1381 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
1382
1364 const A = union(enum) {1383 const A = union(enum) {
1365 a: void,1384 a: void,
1366 b: void,1385 b: void,
...@@ -1373,6 +1392,7 @@ test "lazy value is resolved as slice operand" {...@@ -1373,6 +1392,7 @@ test "lazy value is resolved as slice operand" {
1373 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO1392 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
1374 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO1393 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
1375 if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest;1394 if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest;
1395 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
13761396
1377 const A = struct { a: u32 };1397 const A = struct { a: u32 };
1378 var a: [512]u64 = undefined;1398 var a: [512]u64 = undefined;
test/behavior/export_keyword.zig+1
...@@ -42,6 +42,7 @@ export fn testPackedStuff(a: *const PackedStruct, b: *const PackedUnion) void {...@@ -42,6 +42,7 @@ export fn testPackedStuff(a: *const PackedStruct, b: *const PackedUnion) void {
4242
43test "export function alias" {43test "export function alias" {
44 if (builtin.zig_backend == .stage2_x86_64 and builtin.target.ofmt != .elf and builtin.target.ofmt != .macho) return error.SkipZigTest;44 if (builtin.zig_backend == .stage2_x86_64 and builtin.target.ofmt != .elf and builtin.target.ofmt != .macho) return error.SkipZigTest;
45 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
4546
46 _ = struct {47 _ = struct {
47 fn foo_internal() callconv(.c) u32 {48 fn foo_internal() callconv(.c) u32 {
test/behavior/field_parent_ptr.zig+6
...@@ -2,6 +2,7 @@ const expect = @import("std").testing.expect;...@@ -2,6 +2,7 @@ const expect = @import("std").testing.expect;
2const builtin = @import("builtin");2const builtin = @import("builtin");
33
4test "@fieldParentPtr struct" {4test "@fieldParentPtr struct" {
5 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
5 if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest;6 if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest;
67
7 const C = struct {8 const C = struct {
...@@ -138,6 +139,7 @@ test "@fieldParentPtr struct" {...@@ -138,6 +139,7 @@ test "@fieldParentPtr struct" {
138139
139test "@fieldParentPtr extern struct" {140test "@fieldParentPtr extern struct" {
140 if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest;141 if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest;
142 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
141143
142 const C = extern struct {144 const C = extern struct {
143 a: bool = true,145 a: bool = true,
...@@ -1344,6 +1346,7 @@ test "@fieldParentPtr packed struct last zero-bit field" {...@@ -1344,6 +1346,7 @@ test "@fieldParentPtr packed struct last zero-bit field" {
13441346
1345test "@fieldParentPtr tagged union" {1347test "@fieldParentPtr tagged union" {
1346 if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest;1348 if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest;
1349 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
13471350
1348 const C = union(enum) {1351 const C = union(enum) {
1349 a: bool,1352 a: bool,
...@@ -1478,6 +1481,7 @@ test "@fieldParentPtr tagged union" {...@@ -1478,6 +1481,7 @@ test "@fieldParentPtr tagged union" {
1478}1481}
14791482
1480test "@fieldParentPtr untagged union" {1483test "@fieldParentPtr untagged union" {
1484 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
1481 if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest;1485 if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest;
14821486
1483 const C = union {1487 const C = union {
...@@ -1614,6 +1618,7 @@ test "@fieldParentPtr untagged union" {...@@ -1614,6 +1618,7 @@ test "@fieldParentPtr untagged union" {
16141618
1615test "@fieldParentPtr extern union" {1619test "@fieldParentPtr extern union" {
1616 if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest;1620 if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest;
1621 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
16171622
1618 const C = extern union {1623 const C = extern union {
1619 a: bool,1624 a: bool,
...@@ -1889,6 +1894,7 @@ test "@fieldParentPtr tagged union all zero-bit fields" {...@@ -1889,6 +1894,7 @@ test "@fieldParentPtr tagged union all zero-bit fields" {
1889 if (builtin.zig_backend == .stage2_llvm) return error.SkipZigTest;1894 if (builtin.zig_backend == .stage2_llvm) return error.SkipZigTest;
1890 if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest;1895 if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest;
1891 if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest;1896 if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest;
1897 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
18921898
1893 const C = union(enum) {1899 const C = union(enum) {
1894 a: u0,1900 a: u0,
test/behavior/floatop.zig+36-10
...@@ -278,6 +278,7 @@ test "@sqrt f16" {...@@ -278,6 +278,7 @@ test "@sqrt f16" {
278 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO278 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
279 if (builtin.zig_backend == .stage2_x86_64 and builtin.target.ofmt != .elf and builtin.target.ofmt != .macho) return error.SkipZigTest;279 if (builtin.zig_backend == .stage2_x86_64 and builtin.target.ofmt != .elf and builtin.target.ofmt != .macho) return error.SkipZigTest;
280 if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest;280 if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest;
281 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
281282
282 try testSqrt(f16);283 try testSqrt(f16);
283 try comptime testSqrt(f16);284 try comptime testSqrt(f16);
...@@ -288,6 +289,7 @@ test "@sqrt f32/f64" {...@@ -288,6 +289,7 @@ test "@sqrt f32/f64" {
288 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO289 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
289 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO290 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
290 if (builtin.zig_backend == .stage2_x86_64 and builtin.target.ofmt != .elf and builtin.target.ofmt != .macho) return error.SkipZigTest;291 if (builtin.zig_backend == .stage2_x86_64 and builtin.target.ofmt != .elf and builtin.target.ofmt != .macho) return error.SkipZigTest;
292 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
291293
292 try testSqrt(f32);294 try testSqrt(f32);
293 try comptime testSqrt(f32);295 try comptime testSqrt(f32);
...@@ -299,9 +301,9 @@ test "@sqrt f80/f128/c_longdouble" {...@@ -299,9 +301,9 @@ test "@sqrt f80/f128/c_longdouble" {
299 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO301 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
300 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO302 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
301 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO303 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
302 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
303 if (builtin.zig_backend == .stage2_x86_64 and builtin.target.ofmt != .elf and builtin.target.ofmt != .macho) return error.SkipZigTest;304 if (builtin.zig_backend == .stage2_x86_64 and builtin.target.ofmt != .elf and builtin.target.ofmt != .macho) return error.SkipZigTest;
304 if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest;305 if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest;
306 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
305307
306 if (builtin.os.tag == .freebsd) {308 if (builtin.os.tag == .freebsd) {
307 // TODO https://github.com/ziglang/zig/issues/10875309 // TODO https://github.com/ziglang/zig/issues/10875
...@@ -388,6 +390,7 @@ test "@sqrt with vectors" {...@@ -388,6 +390,7 @@ test "@sqrt with vectors" {
388 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO390 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
389 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO391 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
390 if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest;392 if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest;
393 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
391394
392 try testSqrtWithVectors();395 try testSqrtWithVectors();
393 try comptime testSqrtWithVectors();396 try comptime testSqrtWithVectors();
...@@ -409,6 +412,7 @@ test "@sin f16" {...@@ -409,6 +412,7 @@ test "@sin f16" {
409 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO412 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
410 if (builtin.zig_backend == .stage2_x86_64 and builtin.target.ofmt != .elf and builtin.target.ofmt != .macho) return error.SkipZigTest;413 if (builtin.zig_backend == .stage2_x86_64 and builtin.target.ofmt != .elf and builtin.target.ofmt != .macho) return error.SkipZigTest;
411 if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest;414 if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest;
415 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
412416
413 try testSin(f16);417 try testSin(f16);
414 try comptime testSin(f16);418 try comptime testSin(f16);
...@@ -420,6 +424,7 @@ test "@sin f32/f64" {...@@ -420,6 +424,7 @@ test "@sin f32/f64" {
420 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO424 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
421 if (builtin.zig_backend == .stage2_x86_64 and builtin.target.ofmt != .elf and builtin.target.ofmt != .macho) return error.SkipZigTest;425 if (builtin.zig_backend == .stage2_x86_64 and builtin.target.ofmt != .elf and builtin.target.ofmt != .macho) return error.SkipZigTest;
422 if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest;426 if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest;
427 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
423428
424 try testSin(f32);429 try testSin(f32);
425 comptime try testSin(f32);430 comptime try testSin(f32);
...@@ -431,9 +436,9 @@ test "@sin f80/f128/c_longdouble" {...@@ -431,9 +436,9 @@ test "@sin f80/f128/c_longdouble" {
431 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO436 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
432 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO437 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
433 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO438 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
434 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
435 if (builtin.zig_backend == .stage2_x86_64 and builtin.target.ofmt != .elf and builtin.target.ofmt != .macho) return error.SkipZigTest;439 if (builtin.zig_backend == .stage2_x86_64 and builtin.target.ofmt != .elf and builtin.target.ofmt != .macho) return error.SkipZigTest;
436 if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest;440 if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest;
441 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
437442
438 try testSin(f80);443 try testSin(f80);
439 comptime try testSin(f80);444 comptime try testSin(f80);
...@@ -461,6 +466,7 @@ test "@sin with vectors" {...@@ -461,6 +466,7 @@ test "@sin with vectors" {
461 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO466 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
462 if (builtin.zig_backend == .stage2_x86_64 and builtin.target.ofmt != .elf and builtin.target.ofmt != .macho) return error.SkipZigTest;467 if (builtin.zig_backend == .stage2_x86_64 and builtin.target.ofmt != .elf and builtin.target.ofmt != .macho) return error.SkipZigTest;
463 if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest;468 if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest;
469 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
464470
465 try testSinWithVectors();471 try testSinWithVectors();
466 try comptime testSinWithVectors();472 try comptime testSinWithVectors();
...@@ -482,6 +488,7 @@ test "@cos f16" {...@@ -482,6 +488,7 @@ test "@cos f16" {
482 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO488 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
483 if (builtin.zig_backend == .stage2_x86_64 and builtin.target.ofmt != .elf and builtin.target.ofmt != .macho) return error.SkipZigTest;489 if (builtin.zig_backend == .stage2_x86_64 and builtin.target.ofmt != .elf and builtin.target.ofmt != .macho) return error.SkipZigTest;
484 if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest;490 if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest;
491 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
485492
486 try testCos(f16);493 try testCos(f16);
487 try comptime testCos(f16);494 try comptime testCos(f16);
...@@ -493,6 +500,7 @@ test "@cos f32/f64" {...@@ -493,6 +500,7 @@ test "@cos f32/f64" {
493 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO500 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
494 if (builtin.zig_backend == .stage2_x86_64 and builtin.target.ofmt != .elf and builtin.target.ofmt != .macho) return error.SkipZigTest;501 if (builtin.zig_backend == .stage2_x86_64 and builtin.target.ofmt != .elf and builtin.target.ofmt != .macho) return error.SkipZigTest;
495 if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest;502 if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest;
503 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
496504
497 try testCos(f32);505 try testCos(f32);
498 try comptime testCos(f32);506 try comptime testCos(f32);
...@@ -504,9 +512,9 @@ test "@cos f80/f128/c_longdouble" {...@@ -504,9 +512,9 @@ test "@cos f80/f128/c_longdouble" {
504 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO512 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
505 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO513 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
506 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO514 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
507 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
508 if (builtin.zig_backend == .stage2_x86_64 and builtin.target.ofmt != .elf and builtin.target.ofmt != .macho) return error.SkipZigTest;515 if (builtin.zig_backend == .stage2_x86_64 and builtin.target.ofmt != .elf and builtin.target.ofmt != .macho) return error.SkipZigTest;
509 if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest;516 if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest;
517 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
510518
511 try testCos(f80);519 try testCos(f80);
512 try comptime testCos(f80);520 try comptime testCos(f80);
...@@ -534,6 +542,7 @@ test "@cos with vectors" {...@@ -534,6 +542,7 @@ test "@cos with vectors" {
534 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO542 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
535 if (builtin.zig_backend == .stage2_x86_64 and builtin.target.ofmt != .elf and builtin.target.ofmt != .macho) return error.SkipZigTest;543 if (builtin.zig_backend == .stage2_x86_64 and builtin.target.ofmt != .elf and builtin.target.ofmt != .macho) return error.SkipZigTest;
536 if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest;544 if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest;
545 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
537546
538 try testCosWithVectors();547 try testCosWithVectors();
539 try comptime testCosWithVectors();548 try comptime testCosWithVectors();
...@@ -553,9 +562,9 @@ test "@tan f16" {...@@ -553,9 +562,9 @@ test "@tan f16" {
553 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO562 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
554 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO563 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
555 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO564 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
556 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
557 if (builtin.zig_backend == .stage2_x86_64 and builtin.target.ofmt != .elf and builtin.target.ofmt != .macho) return error.SkipZigTest;565 if (builtin.zig_backend == .stage2_x86_64 and builtin.target.ofmt != .elf and builtin.target.ofmt != .macho) return error.SkipZigTest;
558 if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest;566 if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest;
567 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
559568
560 try testTan(f16);569 try testTan(f16);
561 try comptime testTan(f16);570 try comptime testTan(f16);
...@@ -567,6 +576,7 @@ test "@tan f32/f64" {...@@ -567,6 +576,7 @@ test "@tan f32/f64" {
567 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO576 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
568 if (builtin.zig_backend == .stage2_x86_64 and builtin.target.ofmt != .elf and builtin.target.ofmt != .macho) return error.SkipZigTest;577 if (builtin.zig_backend == .stage2_x86_64 and builtin.target.ofmt != .elf and builtin.target.ofmt != .macho) return error.SkipZigTest;
569 if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest;578 if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest;
579 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
570580
571 try testTan(f32);581 try testTan(f32);
572 try comptime testTan(f32);582 try comptime testTan(f32);
...@@ -578,9 +588,9 @@ test "@tan f80/f128/c_longdouble" {...@@ -578,9 +588,9 @@ test "@tan f80/f128/c_longdouble" {
578 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO588 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
579 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO589 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
580 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO590 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
581 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
582 if (builtin.zig_backend == .stage2_x86_64 and builtin.target.ofmt != .elf and builtin.target.ofmt != .macho) return error.SkipZigTest;591 if (builtin.zig_backend == .stage2_x86_64 and builtin.target.ofmt != .elf and builtin.target.ofmt != .macho) return error.SkipZigTest;
583 if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest;592 if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest;
593 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
584594
585 try testTan(f80);595 try testTan(f80);
586 try comptime testTan(f80);596 try comptime testTan(f80);
...@@ -608,6 +618,7 @@ test "@tan with vectors" {...@@ -608,6 +618,7 @@ test "@tan with vectors" {
608 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO618 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
609 if (builtin.zig_backend == .stage2_x86_64 and builtin.target.ofmt != .elf and builtin.target.ofmt != .macho) return error.SkipZigTest;619 if (builtin.zig_backend == .stage2_x86_64 and builtin.target.ofmt != .elf and builtin.target.ofmt != .macho) return error.SkipZigTest;
610 if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest;620 if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest;
621 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
611622
612 try testTanWithVectors();623 try testTanWithVectors();
613 try comptime testTanWithVectors();624 try comptime testTanWithVectors();
...@@ -629,6 +640,7 @@ test "@exp f16" {...@@ -629,6 +640,7 @@ test "@exp f16" {
629 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO640 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
630 if (builtin.zig_backend == .stage2_x86_64 and builtin.target.ofmt != .elf and builtin.target.ofmt != .macho) return error.SkipZigTest;641 if (builtin.zig_backend == .stage2_x86_64 and builtin.target.ofmt != .elf and builtin.target.ofmt != .macho) return error.SkipZigTest;
631 if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest;642 if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest;
643 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
632644
633 try testExp(f16);645 try testExp(f16);
634 try comptime testExp(f16);646 try comptime testExp(f16);
...@@ -640,6 +652,7 @@ test "@exp f32/f64" {...@@ -640,6 +652,7 @@ test "@exp f32/f64" {
640 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO652 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
641 if (builtin.zig_backend == .stage2_x86_64 and builtin.target.ofmt != .elf and builtin.target.ofmt != .macho) return error.SkipZigTest;653 if (builtin.zig_backend == .stage2_x86_64 and builtin.target.ofmt != .elf and builtin.target.ofmt != .macho) return error.SkipZigTest;
642 if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest;654 if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest;
655 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
643656
644 try testExp(f32);657 try testExp(f32);
645 try comptime testExp(f32);658 try comptime testExp(f32);
...@@ -651,9 +664,9 @@ test "@exp f80/f128/c_longdouble" {...@@ -651,9 +664,9 @@ test "@exp f80/f128/c_longdouble" {
651 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO664 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
652 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO665 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
653 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO666 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
654 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
655 if (builtin.zig_backend == .stage2_x86_64 and builtin.target.ofmt != .elf and builtin.target.ofmt != .macho) return error.SkipZigTest;667 if (builtin.zig_backend == .stage2_x86_64 and builtin.target.ofmt != .elf and builtin.target.ofmt != .macho) return error.SkipZigTest;
656 if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest;668 if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest;
669 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
657670
658 try testExp(f80);671 try testExp(f80);
659 try comptime testExp(f80);672 try comptime testExp(f80);
...@@ -685,6 +698,7 @@ test "@exp with vectors" {...@@ -685,6 +698,7 @@ test "@exp with vectors" {
685 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO698 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
686 if (builtin.zig_backend == .stage2_x86_64 and builtin.target.ofmt != .elf and builtin.target.ofmt != .macho) return error.SkipZigTest;699 if (builtin.zig_backend == .stage2_x86_64 and builtin.target.ofmt != .elf and builtin.target.ofmt != .macho) return error.SkipZigTest;
687 if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest;700 if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest;
701 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
688702
689 try testExpWithVectors();703 try testExpWithVectors();
690 try comptime testExpWithVectors();704 try comptime testExpWithVectors();
...@@ -706,6 +720,7 @@ test "@exp2 f16" {...@@ -706,6 +720,7 @@ test "@exp2 f16" {
706 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO720 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
707 if (builtin.zig_backend == .stage2_x86_64 and builtin.target.ofmt != .elf and builtin.target.ofmt != .macho) return error.SkipZigTest;721 if (builtin.zig_backend == .stage2_x86_64 and builtin.target.ofmt != .elf and builtin.target.ofmt != .macho) return error.SkipZigTest;
708 if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest;722 if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest;
723 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
709724
710 try testExp2(f16);725 try testExp2(f16);
711 try comptime testExp2(f16);726 try comptime testExp2(f16);
...@@ -717,6 +732,7 @@ test "@exp2 f32/f64" {...@@ -717,6 +732,7 @@ test "@exp2 f32/f64" {
717 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO732 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
718 if (builtin.zig_backend == .stage2_x86_64 and builtin.target.ofmt != .elf and builtin.target.ofmt != .macho) return error.SkipZigTest;733 if (builtin.zig_backend == .stage2_x86_64 and builtin.target.ofmt != .elf and builtin.target.ofmt != .macho) return error.SkipZigTest;
719 if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest;734 if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest;
735 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
720736
721 try testExp2(f32);737 try testExp2(f32);
722 try comptime testExp2(f32);738 try comptime testExp2(f32);
...@@ -728,9 +744,9 @@ test "@exp2 f80/f128/c_longdouble" {...@@ -728,9 +744,9 @@ test "@exp2 f80/f128/c_longdouble" {
728 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO744 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
729 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO745 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
730 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO746 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
731 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
732 if (builtin.zig_backend == .stage2_x86_64 and builtin.target.ofmt != .elf and builtin.target.ofmt != .macho) return error.SkipZigTest;747 if (builtin.zig_backend == .stage2_x86_64 and builtin.target.ofmt != .elf and builtin.target.ofmt != .macho) return error.SkipZigTest;
733 if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest;748 if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest;
749 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
734750
735 try testExp2(f80);751 try testExp2(f80);
736 try comptime testExp2(f80);752 try comptime testExp2(f80);
...@@ -757,6 +773,7 @@ test "@exp2 with @vectors" {...@@ -757,6 +773,7 @@ test "@exp2 with @vectors" {
757 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO773 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
758 if (builtin.zig_backend == .stage2_x86_64 and builtin.target.ofmt != .elf and builtin.target.ofmt != .macho) return error.SkipZigTest;774 if (builtin.zig_backend == .stage2_x86_64 and builtin.target.ofmt != .elf and builtin.target.ofmt != .macho) return error.SkipZigTest;
759 if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest;775 if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest;
776 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
760777
761 try testExp2WithVectors();778 try testExp2WithVectors();
762 try comptime testExp2WithVectors();779 try comptime testExp2WithVectors();
...@@ -778,6 +795,7 @@ test "@log f16" {...@@ -778,6 +795,7 @@ test "@log f16" {
778 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO795 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
779 if (builtin.zig_backend == .stage2_x86_64 and builtin.target.ofmt != .elf and builtin.target.ofmt != .macho) return error.SkipZigTest;796 if (builtin.zig_backend == .stage2_x86_64 and builtin.target.ofmt != .elf and builtin.target.ofmt != .macho) return error.SkipZigTest;
780 if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest;797 if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest;
798 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
781799
782 try testLog(f16);800 try testLog(f16);
783 try comptime testLog(f16);801 try comptime testLog(f16);
...@@ -789,6 +807,7 @@ test "@log f32/f64" {...@@ -789,6 +807,7 @@ test "@log f32/f64" {
789 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO807 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
790 if (builtin.zig_backend == .stage2_x86_64 and builtin.target.ofmt != .elf and builtin.target.ofmt != .macho) return error.SkipZigTest;808 if (builtin.zig_backend == .stage2_x86_64 and builtin.target.ofmt != .elf and builtin.target.ofmt != .macho) return error.SkipZigTest;
791 if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest;809 if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest;
810 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
792811
793 try testLog(f32);812 try testLog(f32);
794 try comptime testLog(f32);813 try comptime testLog(f32);
...@@ -800,9 +819,9 @@ test "@log f80/f128/c_longdouble" {...@@ -800,9 +819,9 @@ test "@log f80/f128/c_longdouble" {
800 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO819 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
801 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO820 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
802 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO821 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
803 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
804 if (builtin.zig_backend == .stage2_x86_64 and builtin.target.ofmt != .elf and builtin.target.ofmt != .macho) return error.SkipZigTest;822 if (builtin.zig_backend == .stage2_x86_64 and builtin.target.ofmt != .elf and builtin.target.ofmt != .macho) return error.SkipZigTest;
805 if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest;823 if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest;
824 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
806825
807 try testLog(f80);826 try testLog(f80);
808 try comptime testLog(f80);827 try comptime testLog(f80);
...@@ -830,6 +849,7 @@ test "@log with @vectors" {...@@ -830,6 +849,7 @@ test "@log with @vectors" {
830 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO849 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
831 if (builtin.zig_backend == .stage2_x86_64 and builtin.target.ofmt != .elf and builtin.target.ofmt != .macho) return error.SkipZigTest;850 if (builtin.zig_backend == .stage2_x86_64 and builtin.target.ofmt != .elf and builtin.target.ofmt != .macho) return error.SkipZigTest;
832 if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest;851 if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest;
852 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
833853
834 {854 {
835 var v: @Vector(4, f32) = [_]f32{ 1.1, 2.2, 0.3, 0.4 };855 var v: @Vector(4, f32) = [_]f32{ 1.1, 2.2, 0.3, 0.4 };
...@@ -848,6 +868,7 @@ test "@log2 f16" {...@@ -848,6 +868,7 @@ test "@log2 f16" {
848 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO868 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
849 if (builtin.zig_backend == .stage2_x86_64 and builtin.target.ofmt != .elf and builtin.target.ofmt != .macho) return error.SkipZigTest;869 if (builtin.zig_backend == .stage2_x86_64 and builtin.target.ofmt != .elf and builtin.target.ofmt != .macho) return error.SkipZigTest;
850 if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest;870 if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest;
871 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
851872
852 try testLog2(f16);873 try testLog2(f16);
853 try comptime testLog2(f16);874 try comptime testLog2(f16);
...@@ -859,6 +880,7 @@ test "@log2 f32/f64" {...@@ -859,6 +880,7 @@ test "@log2 f32/f64" {
859 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO880 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
860 if (builtin.zig_backend == .stage2_x86_64 and builtin.target.ofmt != .elf and builtin.target.ofmt != .macho) return error.SkipZigTest;881 if (builtin.zig_backend == .stage2_x86_64 and builtin.target.ofmt != .elf and builtin.target.ofmt != .macho) return error.SkipZigTest;
861 if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest;882 if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest;
883 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
862884
863 try testLog2(f32);885 try testLog2(f32);
864 try comptime testLog2(f32);886 try comptime testLog2(f32);
...@@ -870,9 +892,9 @@ test "@log2 f80/f128/c_longdouble" {...@@ -870,9 +892,9 @@ test "@log2 f80/f128/c_longdouble" {
870 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO892 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
871 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO893 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
872 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO894 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
873 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
874 if (builtin.zig_backend == .stage2_x86_64 and builtin.target.ofmt != .elf and builtin.target.ofmt != .macho) return error.SkipZigTest;895 if (builtin.zig_backend == .stage2_x86_64 and builtin.target.ofmt != .elf and builtin.target.ofmt != .macho) return error.SkipZigTest;
875 if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest;896 if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest;
897 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
876898
877 try testLog2(f80);899 try testLog2(f80);
878 try comptime testLog2(f80);900 try comptime testLog2(f80);
...@@ -898,6 +920,7 @@ test "@log2 with vectors" {...@@ -898,6 +920,7 @@ test "@log2 with vectors" {
898 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO920 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
899 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO921 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
900 if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest;922 if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest;
923 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
901 // https://github.com/ziglang/zig/issues/13681924 // https://github.com/ziglang/zig/issues/13681
902 if (builtin.zig_backend == .stage2_llvm and925 if (builtin.zig_backend == .stage2_llvm and
903 builtin.cpu.arch == .aarch64 and926 builtin.cpu.arch == .aarch64 and
...@@ -924,6 +947,7 @@ test "@log10 f16" {...@@ -924,6 +947,7 @@ test "@log10 f16" {
924 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO947 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
925 if (builtin.zig_backend == .stage2_x86_64 and builtin.target.ofmt != .elf and builtin.target.ofmt != .macho) return error.SkipZigTest;948 if (builtin.zig_backend == .stage2_x86_64 and builtin.target.ofmt != .elf and builtin.target.ofmt != .macho) return error.SkipZigTest;
926 if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest;949 if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest;
950 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
927951
928 try testLog10(f16);952 try testLog10(f16);
929 try comptime testLog10(f16);953 try comptime testLog10(f16);
...@@ -935,6 +959,7 @@ test "@log10 f32/f64" {...@@ -935,6 +959,7 @@ test "@log10 f32/f64" {
935 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO959 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
936 if (builtin.zig_backend == .stage2_x86_64 and builtin.target.ofmt != .elf and builtin.target.ofmt != .macho) return error.SkipZigTest;960 if (builtin.zig_backend == .stage2_x86_64 and builtin.target.ofmt != .elf and builtin.target.ofmt != .macho) return error.SkipZigTest;
937 if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest;961 if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest;
962 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
938963
939 try testLog10(f32);964 try testLog10(f32);
940 try comptime testLog10(f32);965 try comptime testLog10(f32);
...@@ -946,9 +971,9 @@ test "@log10 f80/f128/c_longdouble" {...@@ -946,9 +971,9 @@ test "@log10 f80/f128/c_longdouble" {
946 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO971 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
947 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO972 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
948 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO973 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
949 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
950 if (builtin.zig_backend == .stage2_x86_64 and builtin.target.ofmt != .elf and builtin.target.ofmt != .macho) return error.SkipZigTest;974 if (builtin.zig_backend == .stage2_x86_64 and builtin.target.ofmt != .elf and builtin.target.ofmt != .macho) return error.SkipZigTest;
951 if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest;975 if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest;
976 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
952977
953 try testLog10(f80);978 try testLog10(f80);
954 try comptime testLog10(f80);979 try comptime testLog10(f80);
...@@ -975,6 +1000,7 @@ test "@log10 with vectors" {...@@ -975,6 +1000,7 @@ test "@log10 with vectors" {
975 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO1000 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
976 if (builtin.zig_backend == .stage2_x86_64 and builtin.target.ofmt != .elf and builtin.target.ofmt != .macho) return error.SkipZigTest;1001 if (builtin.zig_backend == .stage2_x86_64 and builtin.target.ofmt != .elf and builtin.target.ofmt != .macho) return error.SkipZigTest;
977 if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest;1002 if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest;
1003 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
9781004
979 try testLog10WithVectors();1005 try testLog10WithVectors();
980 try comptime testLog10WithVectors();1006 try comptime testLog10WithVectors();
test/behavior/fn.zig+4
...@@ -257,6 +257,7 @@ test "implicit cast fn call result to optional in field result" {...@@ -257,6 +257,7 @@ test "implicit cast fn call result to optional in field result" {
257 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest;257 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest;
258 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;258 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;
259 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO259 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
260 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
260261
261 const S = struct {262 const S = struct {
262 fn entry() !void {263 fn entry() !void {
...@@ -468,6 +469,7 @@ test "method call with optional and error union first param" {...@@ -468,6 +469,7 @@ test "method call with optional and error union first param" {
468test "method call with optional pointer first param" {469test "method call with optional pointer first param" {
469 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO470 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
470 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO471 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
472 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
471473
472 const S = struct {474 const S = struct {
473 x: i32 = 1234,475 x: i32 = 1234,
...@@ -619,6 +621,8 @@ test "inline function with comptime-known comptime-only return type called at ru...@@ -619,6 +621,8 @@ test "inline function with comptime-known comptime-only return type called at ru
619}621}
620622
621test "address of function parameter is consistent" {623test "address of function parameter is consistent" {
624 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
625
622 const S = struct {626 const S = struct {
623 fn paramAddrMatch(x: u8) bool {627 fn paramAddrMatch(x: u8) bool {
624 return &x == &x;628 return &x == &x;
test/behavior/fn_in_struct_in_comptime.zig+2
...@@ -12,6 +12,8 @@ fn get_foo() fn (*u8) usize {...@@ -12,6 +12,8 @@ fn get_foo() fn (*u8) usize {
12}12}
1313
14test "define a function in an anonymous struct in comptime" {14test "define a function in an anonymous struct in comptime" {
15 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
16
15 const foo = get_foo();17 const foo = get_foo();
16 try expect(foo(@as(*u8, @ptrFromInt(12345))) == 12345);18 try expect(foo(@as(*u8, @ptrFromInt(12345))) == 12345);
17}19}
test/behavior/for.zig+10
...@@ -69,6 +69,7 @@ test "basic for loop" {...@@ -69,6 +69,7 @@ test "basic for loop" {
69 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest;69 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest;
70 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;70 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;
71 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO71 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
72 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
7273
73 const expected_result = [_]u8{ 9, 8, 7, 6, 0, 1, 2, 3 } ** 3;74 const expected_result = [_]u8{ 9, 8, 7, 6, 0, 1, 2, 3 } ** 3;
7475
...@@ -112,6 +113,7 @@ test "for with null and T peer types and inferred result location type" {...@@ -112,6 +113,7 @@ test "for with null and T peer types and inferred result location type" {
112 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest;113 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest;
113 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;114 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;
114 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO115 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
116 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
115117
116 const S = struct {118 const S = struct {
117 fn doTheTest(slice: []const u8) !void {119 fn doTheTest(slice: []const u8) !void {
...@@ -153,6 +155,7 @@ test "for loop with pointer elem var" {...@@ -153,6 +155,7 @@ test "for loop with pointer elem var" {
153 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO155 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
154 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO156 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
155 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO157 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
158 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
156159
157 const source = "abcdefg";160 const source = "abcdefg";
158 var target: [source.len]u8 = undefined;161 var target: [source.len]u8 = undefined;
...@@ -198,6 +201,7 @@ test "for on slice with allowzero ptr" {...@@ -198,6 +201,7 @@ test "for on slice with allowzero ptr" {
198 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO201 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
199 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO202 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
200 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO203 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
204 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
201205
202 const S = struct {206 const S = struct {
203 fn doTheTest(slice: []const u8) !void {207 fn doTheTest(slice: []const u8) !void {
...@@ -213,6 +217,7 @@ test "for on slice with allowzero ptr" {...@@ -213,6 +217,7 @@ test "for on slice with allowzero ptr" {
213test "else continue outer for" {217test "else continue outer for" {
214 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO218 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
215 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO219 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
220 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
216221
217 var i: usize = 6;222 var i: usize = 6;
218 var buf: [5]u8 = undefined;223 var buf: [5]u8 = undefined;
...@@ -308,6 +313,7 @@ test "slice and two counters, one is offset and one is runtime" {...@@ -308,6 +313,7 @@ test "slice and two counters, one is offset and one is runtime" {
308 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO313 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
309 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO314 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
310 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO315 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
316 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
311317
312 const slice: []const u8 = "blah";318 const slice: []const u8 = "blah";
313 var start: usize = 0;319 var start: usize = 0;
...@@ -337,6 +343,7 @@ test "two slices, one captured by-ref" {...@@ -337,6 +343,7 @@ test "two slices, one captured by-ref" {
337 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO343 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
338 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO344 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
339 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO345 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
346 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
340347
341 var buf: [10]u8 = undefined;348 var buf: [10]u8 = undefined;
342 const slice1: []const u8 = "blah";349 const slice1: []const u8 = "blah";
...@@ -356,6 +363,7 @@ test "raw pointer and slice" {...@@ -356,6 +363,7 @@ test "raw pointer and slice" {
356 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO363 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
357 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO364 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
358 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO365 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
366 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
359367
360 var buf: [10]u8 = undefined;368 var buf: [10]u8 = undefined;
361 const slice: []const u8 = "blah";369 const slice: []const u8 = "blah";
...@@ -375,6 +383,7 @@ test "raw pointer and counter" {...@@ -375,6 +383,7 @@ test "raw pointer and counter" {
375 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO383 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
376 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO384 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
377 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO385 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
386 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
378387
379 var buf: [10]u8 = undefined;388 var buf: [10]u8 = undefined;
380 const ptr: [*]u8 = &buf;389 const ptr: [*]u8 = &buf;
...@@ -424,6 +433,7 @@ test "inline for with counter as the comptime-known" {...@@ -424,6 +433,7 @@ test "inline for with counter as the comptime-known" {
424 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO433 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
425 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO434 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
426 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO435 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
436 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
427437
428 var runtime_slice = "hello";438 var runtime_slice = "hello";
429 var runtime_i: usize = 3;439 var runtime_i: usize = 3;
test/behavior/generics.zig+16-2
...@@ -90,6 +90,7 @@ test "type constructed by comptime function call" {...@@ -90,6 +90,7 @@ test "type constructed by comptime function call" {
90 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;90 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;
91 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO91 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
92 if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest;92 if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest;
93 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
9394
94 var l: SimpleList(10) = undefined;95 var l: SimpleList(10) = undefined;
95 l.array[0] = 10;96 l.array[0] = 10;
...@@ -155,6 +156,7 @@ test "generic fn with implicit cast" {...@@ -155,6 +156,7 @@ test "generic fn with implicit cast" {
155 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest;156 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest;
156 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;157 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;
157 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO158 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
159 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
158160
159 try expect(getFirstByte(u8, &[_]u8{13}) == 13);161 try expect(getFirstByte(u8, &[_]u8{13}) == 13);
160 try expect(getFirstByte(u16, &[_]u16{162 try expect(getFirstByte(u16, &[_]u16{
...@@ -208,6 +210,7 @@ fn foo2(arg: anytype) bool {...@@ -208,6 +210,7 @@ fn foo2(arg: anytype) bool {
208210
209test "generic struct" {211test "generic struct" {
210 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO212 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
213 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
211214
212 var a1 = GenNode(i32){215 var a1 = GenNode(i32){
213 .value = 13,216 .value = 13,
...@@ -249,6 +252,7 @@ test "generic function instantiation turns into comptime call" {...@@ -249,6 +252,7 @@ test "generic function instantiation turns into comptime call" {
249 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO252 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
250 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO253 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
251 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO254 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
255 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
252256
253 const S = struct {257 const S = struct {
254 fn doTheTest() !void {258 fn doTheTest() !void {
...@@ -316,6 +320,8 @@ test "generic function instantiation non-duplicates" {...@@ -316,6 +320,8 @@ test "generic function instantiation non-duplicates" {
316 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO320 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
317 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO321 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
318 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO322 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
323 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
324
319 if (builtin.os.tag == .wasi) return error.SkipZigTest;325 if (builtin.os.tag == .wasi) return error.SkipZigTest;
320326
321 const S = struct {327 const S = struct {
...@@ -334,6 +340,7 @@ test "generic function instantiation non-duplicates" {...@@ -334,6 +340,7 @@ test "generic function instantiation non-duplicates" {
334test "generic instantiation of tagged union with only one field" {340test "generic instantiation of tagged union with only one field" {
335 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO341 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
336 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO342 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
343
337 if (builtin.os.tag == .wasi) return error.SkipZigTest;344 if (builtin.os.tag == .wasi) return error.SkipZigTest;
338345
339 const S = struct {346 const S = struct {
...@@ -368,8 +375,6 @@ test "nested generic function" {...@@ -368,8 +375,6 @@ test "nested generic function" {
368}375}
369376
370test "extern function used as generic parameter" {377test "extern function used as generic parameter" {
371 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
372
373 const S = struct {378 const S = struct {
374 extern fn usedAsGenericParameterFoo() void;379 extern fn usedAsGenericParameterFoo() void;
375 extern fn usedAsGenericParameterBar() void;380 extern fn usedAsGenericParameterBar() void;
...@@ -406,6 +411,8 @@ test "generic struct as parameter type" {...@@ -406,6 +411,8 @@ test "generic struct as parameter type" {
406}411}
407412
408test "slice as parameter type" {413test "slice as parameter type" {
414 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
415
409 const S = struct {416 const S = struct {
410 fn internComptimeString(comptime str: []const u8) *const []const u8 {417 fn internComptimeString(comptime str: []const u8) *const []const u8 {
411 return &struct {418 return &struct {
...@@ -420,6 +427,8 @@ test "slice as parameter type" {...@@ -420,6 +427,8 @@ test "slice as parameter type" {
420}427}
421428
422test "null sentinel pointer passed as generic argument" {429test "null sentinel pointer passed as generic argument" {
430 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
431
423 const S = struct {432 const S = struct {
424 fn doTheTest(a: anytype) !void {433 fn doTheTest(a: anytype) !void {
425 try std.testing.expect(@intFromPtr(a) == 8);434 try std.testing.expect(@intFromPtr(a) == 8);
...@@ -442,6 +451,7 @@ test "generic function passed as comptime argument" {...@@ -442,6 +451,7 @@ test "generic function passed as comptime argument" {
442451
443test "return type of generic function is function pointer" {452test "return type of generic function is function pointer" {
444 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;453 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;
454 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
445455
446 const S = struct {456 const S = struct {
447 fn b(comptime T: type) ?*const fn () error{}!T {457 fn b(comptime T: type) ?*const fn () error{}!T {
...@@ -503,6 +513,7 @@ test "union in struct captures argument" {...@@ -503,6 +513,7 @@ test "union in struct captures argument" {
503test "function argument tuple used as struct field" {513test "function argument tuple used as struct field" {
504 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO514 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
505 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO515 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
516 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
506517
507 const S = struct {518 const S = struct {
508 fn DeleagateWithContext(comptime Function: type) type {519 fn DeleagateWithContext(comptime Function: type) type {
...@@ -578,6 +589,7 @@ fn StructCapture(comptime T: type) type {...@@ -578,6 +589,7 @@ fn StructCapture(comptime T: type) type {
578test "call generic function that uses capture from function declaration's scope" {589test "call generic function that uses capture from function declaration's scope" {
579 if (builtin.zig_backend == .stage2_x86_64 and builtin.target.ofmt != .elf and builtin.target.ofmt != .macho) return error.SkipZigTest;590 if (builtin.zig_backend == .stage2_x86_64 and builtin.target.ofmt != .elf and builtin.target.ofmt != .macho) return error.SkipZigTest;
580 if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest;591 if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest;
592 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
581593
582 const S = StructCapture(f64);594 const S = StructCapture(f64);
583 const s = S.foo(123);595 const s = S.foo(123);
...@@ -591,6 +603,8 @@ comptime {...@@ -591,6 +603,8 @@ comptime {
591}603}
592604
593test "generic parameter resolves to comptime-only type but is not marked comptime" {605test "generic parameter resolves to comptime-only type but is not marked comptime" {
606 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
607
594 const S = struct {608 const S = struct {
595 fn foo(comptime T: type, rt_false: bool, func: fn (T) void) T {609 fn foo(comptime T: type, rt_false: bool, func: fn (T) void) T {
596 if (rt_false) _ = foo(T, rt_false, func);610 if (rt_false) _ = foo(T, rt_false, func);
test/behavior/globals.zig+5
...@@ -28,6 +28,7 @@ test "slices pointing at the same address as global array." {...@@ -28,6 +28,7 @@ test "slices pointing at the same address as global array." {
28 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest;28 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest;
29 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;29 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;
30 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO30 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
31 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
3132
32 const S = struct {33 const S = struct {
33 const a = [_]u8{ 1, 2, 3 };34 const a = [_]u8{ 1, 2, 3 };
...@@ -83,6 +84,8 @@ test "global const can be self-referential" {...@@ -83,6 +84,8 @@ test "global const can be self-referential" {
83}84}
8485
85test "global var can be self-referential" {86test "global var can be self-referential" {
87 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
88
86 const S = struct {89 const S = struct {
87 self: *@This(),90 self: *@This(),
88 x: u32,91 x: u32,
...@@ -134,6 +137,8 @@ test "global const can be indirectly self-referential" {...@@ -134,6 +137,8 @@ test "global const can be indirectly self-referential" {
134}137}
135138
136test "global var can be indirectly self-referential" {139test "global var can be indirectly self-referential" {
140 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
141
137 const S = struct {142 const S = struct {
138 other: *@This(),143 other: *@This(),
139 x: u32,144 x: u32,
test/behavior/if.zig+1
...@@ -118,6 +118,7 @@ test "if peer expressions inferred optional type" {...@@ -118,6 +118,7 @@ test "if peer expressions inferred optional type" {
118 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest;118 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest;
119 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;119 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;
120 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO120 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
121 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
121122
122 var self: []const u8 = "abcdef";123 var self: []const u8 = "abcdef";
123 var index: usize = 0;124 var index: usize = 0;
test/behavior/lower_strlit_to_vector.zig+1
...@@ -6,6 +6,7 @@ test "strlit to vector" {...@@ -6,6 +6,7 @@ test "strlit to vector" {
6 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO6 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
7 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO7 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
8 if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest; // TODO8 if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest; // TODO
9 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
910
10 const strlit = "0123456789abcdef0123456789ABCDEF";11 const strlit = "0123456789abcdef0123456789ABCDEF";
11 const vec_from_strlit: @Vector(32, u8) = strlit.*;12 const vec_from_strlit: @Vector(32, u8) = strlit.*;
test/behavior/math.zig+13-1
...@@ -67,6 +67,7 @@ test "@clz" {...@@ -67,6 +67,7 @@ test "@clz" {
67 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO67 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
68 if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest; // TODO68 if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest; // TODO
69 if (builtin.zig_backend == .stage2_x86_64 and builtin.target.ofmt != .elf and builtin.target.ofmt != .macho) return error.SkipZigTest;69 if (builtin.zig_backend == .stage2_x86_64 and builtin.target.ofmt != .elf and builtin.target.ofmt != .macho) return error.SkipZigTest;
70 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
7071
71 try testClz();72 try testClz();
72 try comptime testClz();73 try comptime testClz();
...@@ -153,6 +154,7 @@ test "@ctz" {...@@ -153,6 +154,7 @@ test "@ctz" {
153 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO154 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
154 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO155 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
155 if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest;156 if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest;
157 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
156158
157 try testCtz();159 try testCtz();
158 try comptime testCtz();160 try comptime testCtz();
...@@ -197,6 +199,7 @@ test "@ctz vectors" {...@@ -197,6 +199,7 @@ test "@ctz vectors" {
197 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO199 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
198 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO200 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
199 if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest;201 if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest;
202 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
200203
201 try testCtzVectors();204 try testCtzVectors();
202 try comptime testCtzVectors();205 try comptime testCtzVectors();
...@@ -396,6 +399,7 @@ fn not(comptime T: type, a: T) T {...@@ -396,6 +399,7 @@ fn not(comptime T: type, a: T) T {
396399
397test "binary not" {400test "binary not" {
398 if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest;401 if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest;
402 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
399403
400 try expect(not(u0, 0) == 0);404 try expect(not(u0, 0) == 0);
401 try expect(not(u1, 0) == 1);405 try expect(not(u1, 0) == 1);
...@@ -474,6 +478,7 @@ test "division" {...@@ -474,6 +478,7 @@ test "division" {
474 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO478 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
475 if (builtin.zig_backend == .stage2_x86_64 and builtin.target.ofmt != .elf and builtin.target.ofmt != .macho) return error.SkipZigTest;479 if (builtin.zig_backend == .stage2_x86_64 and builtin.target.ofmt != .elf and builtin.target.ofmt != .macho) return error.SkipZigTest;
476 if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest;480 if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest;
481 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
477482
478 try testIntDivision();483 try testIntDivision();
479 try comptime testIntDivision();484 try comptime testIntDivision();
...@@ -676,6 +681,8 @@ fn testSignedWrappingEval(x: i32) !void {...@@ -676,6 +681,8 @@ fn testSignedWrappingEval(x: i32) !void {
676}681}
677682
678test "signed negation wrapping" {683test "signed negation wrapping" {
684 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
685
679 try testSignedNegationWrappingEval(minInt(i16));686 try testSignedNegationWrappingEval(minInt(i16));
680 try comptime testSignedNegationWrappingEval(minInt(i16));687 try comptime testSignedNegationWrappingEval(minInt(i16));
681}688}
...@@ -781,6 +788,7 @@ fn should_not_be_zero(x: f128) !void {...@@ -781,6 +788,7 @@ fn should_not_be_zero(x: f128) !void {
781test "umax wrapped squaring" {788test "umax wrapped squaring" {
782 if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest;789 if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest;
783 if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest;790 if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest;
791 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
784792
785 {793 {
786 var x: u4 = maxInt(u4);794 var x: u4 = maxInt(u4);
...@@ -894,7 +902,6 @@ test "@addWithOverflow > 64 bits" {...@@ -894,7 +902,6 @@ test "@addWithOverflow > 64 bits" {
894 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO902 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
895 if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest;903 if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest;
896 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest; // TODO904 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest; // TODO
897 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest; // TODO
898905
899 try testAddWithOverflow(u65, 4, 105, 109, 0);906 try testAddWithOverflow(u65, 4, 105, 109, 0);
900 try testAddWithOverflow(u65, 1000, 100, 1100, 0);907 try testAddWithOverflow(u65, 1000, 100, 1100, 0);
...@@ -975,6 +982,7 @@ test "extensive @mulWithOverflow" {...@@ -975,6 +982,7 @@ test "extensive @mulWithOverflow" {
975 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO982 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
976 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO983 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
977 if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest;984 if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest;
985 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
978986
979 try testMulWithOverflow(u5, 3, 10, 30, 0);987 try testMulWithOverflow(u5, 3, 10, 30, 0);
980 try testMulWithOverflow(u5, 3, 11, 1, 1);988 try testMulWithOverflow(u5, 3, 11, 1, 1);
...@@ -1616,6 +1624,7 @@ test "vector integer addition" {...@@ -1616,6 +1624,7 @@ test "vector integer addition" {
1616 if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO1624 if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO
1617 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO1625 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
1618 if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest;1626 if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest;
1627 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
16191628
1620 const S = struct {1629 const S = struct {
1621 fn doTheTest() !void {1630 fn doTheTest() !void {
...@@ -1681,6 +1690,8 @@ test "vector comparison" {...@@ -1681,6 +1690,8 @@ test "vector comparison" {
1681 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO1690 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
1682 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO1691 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
1683 if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest;1692 if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest;
1693 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
1694
1684 if (builtin.zig_backend == .stage2_x86_64 and1695 if (builtin.zig_backend == .stage2_x86_64 and
1685 !comptime std.Target.x86.featureSetHas(builtin.cpu.features, .avx2)) return error.SkipZigTest;1696 !comptime std.Target.x86.featureSetHas(builtin.cpu.features, .avx2)) return error.SkipZigTest;
16861697
...@@ -1777,6 +1788,7 @@ test "@clz works on both vector and scalar inputs" {...@@ -1777,6 +1788,7 @@ test "@clz works on both vector and scalar inputs" {
1777 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO1788 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
1778 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO1789 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
1779 if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest;1790 if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest;
1791 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
17801792
1781 var x: u32 = 0x1;1793 var x: u32 = 0x1;
1782 _ = &x;1794 _ = &x;
test/behavior/maximum_minimum.zig+4
...@@ -33,6 +33,7 @@ test "@max on vectors" {...@@ -33,6 +33,7 @@ test "@max on vectors" {
33 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO33 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
34 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO34 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
35 if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest;35 if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest;
36 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
36 if (builtin.zig_backend == .stage2_x86_64 and builtin.target.ofmt != .elf and builtin.target.ofmt != .macho) return error.SkipZigTest;37 if (builtin.zig_backend == .stage2_x86_64 and builtin.target.ofmt != .elf and builtin.target.ofmt != .macho) return error.SkipZigTest;
3738
38 const S = struct {39 const S = struct {
...@@ -88,6 +89,7 @@ test "@min for vectors" {...@@ -88,6 +89,7 @@ test "@min for vectors" {
88 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO89 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
89 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO90 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
90 if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest;91 if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest;
92 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
91 if (builtin.zig_backend == .stage2_x86_64 and builtin.target.ofmt != .elf and builtin.target.ofmt != .macho) return error.SkipZigTest;93 if (builtin.zig_backend == .stage2_x86_64 and builtin.target.ofmt != .elf and builtin.target.ofmt != .macho) return error.SkipZigTest;
9294
93 const S = struct {95 const S = struct {
...@@ -320,6 +322,8 @@ test "@min/@max notices bounds from vector types when element of comptime-known...@@ -320,6 +322,8 @@ test "@min/@max notices bounds from vector types when element of comptime-known
320}322}
321323
322test "@min/@max of signed and unsigned runtime integers" {324test "@min/@max of signed and unsigned runtime integers" {
325 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
326
323 var x: i32 = -1;327 var x: i32 = -1;
324 var y: u31 = 1;328 var y: u31 = 1;
325 _ = .{ &x, &y };329 _ = .{ &x, &y };
test/behavior/memcpy.zig+5
...@@ -29,6 +29,7 @@ test "@memcpy with both operands single-ptr-to-array, one is null-terminated" {...@@ -29,6 +29,7 @@ test "@memcpy with both operands single-ptr-to-array, one is null-terminated" {
29 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;29 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;
30 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest;30 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest;
31 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest;31 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest;
32 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
3233
33 try testMemcpyBothSinglePtrArrayOneIsNullTerminated();34 try testMemcpyBothSinglePtrArrayOneIsNullTerminated();
34 try comptime testMemcpyBothSinglePtrArrayOneIsNullTerminated();35 try comptime testMemcpyBothSinglePtrArrayOneIsNullTerminated();
...@@ -49,6 +50,7 @@ test "@memcpy dest many pointer" {...@@ -49,6 +50,7 @@ test "@memcpy dest many pointer" {
49 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;50 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;
50 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest;51 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest;
51 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest;52 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest;
53 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
5254
53 try testMemcpyDestManyPtr();55 try testMemcpyDestManyPtr();
54 try comptime testMemcpyDestManyPtr();56 try comptime testMemcpyDestManyPtr();
...@@ -71,6 +73,7 @@ test "@memcpy slice" {...@@ -71,6 +73,7 @@ test "@memcpy slice" {
71 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;73 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;
72 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest;74 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest;
73 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest;75 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest;
76 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
7477
75 try testMemcpySlice();78 try testMemcpySlice();
76 try comptime testMemcpySlice();79 try comptime testMemcpySlice();
...@@ -113,6 +116,8 @@ test "@memcpy comptime-only type" {...@@ -113,6 +116,8 @@ test "@memcpy comptime-only type" {
113}116}
114117
115test "@memcpy zero-bit type with aliasing" {118test "@memcpy zero-bit type with aliasing" {
119 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
120
116 const S = struct {121 const S = struct {
117 fn doTheTest() void {122 fn doTheTest() void {
118 var buf: [3]void = @splat({});123 var buf: [3]void = @splat({});
test/behavior/muladd.zig+5
...@@ -8,6 +8,7 @@ test "@mulAdd" {...@@ -8,6 +8,7 @@ test "@mulAdd" {
8 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO8 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
9 if (builtin.zig_backend == .stage2_x86_64 and builtin.target.ofmt != .elf and builtin.target.ofmt != .macho) return error.SkipZigTest;9 if (builtin.zig_backend == .stage2_x86_64 and builtin.target.ofmt != .elf and builtin.target.ofmt != .macho) return error.SkipZigTest;
10 if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest;10 if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest;
11 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
1112
12 try comptime testMulAdd();13 try comptime testMulAdd();
13 try testMulAdd();14 try testMulAdd();
...@@ -36,6 +37,7 @@ test "@mulAdd f16" {...@@ -36,6 +37,7 @@ test "@mulAdd f16" {
36 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO37 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
37 if (builtin.zig_backend == .stage2_x86_64 and builtin.target.ofmt != .elf and builtin.target.ofmt != .macho) return error.SkipZigTest;38 if (builtin.zig_backend == .stage2_x86_64 and builtin.target.ofmt != .elf and builtin.target.ofmt != .macho) return error.SkipZigTest;
38 if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest;39 if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest;
40 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
3941
40 try comptime testMulAdd16();42 try comptime testMulAdd16();
41 try testMulAdd16();43 try testMulAdd16();
...@@ -111,6 +113,7 @@ test "vector f16" {...@@ -111,6 +113,7 @@ test "vector f16" {
111 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO113 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
112 if (builtin.zig_backend == .stage2_x86_64 and builtin.target.ofmt != .elf and builtin.target.ofmt != .macho) return error.SkipZigTest;114 if (builtin.zig_backend == .stage2_x86_64 and builtin.target.ofmt != .elf and builtin.target.ofmt != .macho) return error.SkipZigTest;
113 if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest;115 if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest;
116 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
114117
115 try comptime vector16();118 try comptime vector16();
116 try vector16();119 try vector16();
...@@ -136,6 +139,7 @@ test "vector f32" {...@@ -136,6 +139,7 @@ test "vector f32" {
136 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO139 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
137 if (builtin.zig_backend == .stage2_x86_64 and builtin.target.ofmt != .elf and builtin.target.ofmt != .macho) return error.SkipZigTest;140 if (builtin.zig_backend == .stage2_x86_64 and builtin.target.ofmt != .elf and builtin.target.ofmt != .macho) return error.SkipZigTest;
138 if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest;141 if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest;
142 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
139143
140 try comptime vector32();144 try comptime vector32();
141 try vector32();145 try vector32();
...@@ -161,6 +165,7 @@ test "vector f64" {...@@ -161,6 +165,7 @@ test "vector f64" {
161 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO165 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
162 if (builtin.zig_backend == .stage2_x86_64 and builtin.target.ofmt != .elf and builtin.target.ofmt != .macho) return error.SkipZigTest;166 if (builtin.zig_backend == .stage2_x86_64 and builtin.target.ofmt != .elf and builtin.target.ofmt != .macho) return error.SkipZigTest;
163 if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest;167 if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest;
168 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
164169
165 try comptime vector64();170 try comptime vector64();
166 try vector64();171 try vector64();
test/behavior/null.zig+1
...@@ -131,6 +131,7 @@ test "null with default unwrap" {...@@ -131,6 +131,7 @@ test "null with default unwrap" {
131131
132test "optional pointer to 0 bit type null value at runtime" {132test "optional pointer to 0 bit type null value at runtime" {
133 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO133 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
134 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
134135
135 const EmptyStruct = struct {};136 const EmptyStruct = struct {};
136 var x: ?*EmptyStruct = null;137 var x: ?*EmptyStruct = null;
test/behavior/optional.zig+8-1
...@@ -28,6 +28,7 @@ pub const EmptyStruct = struct {};...@@ -28,6 +28,7 @@ pub const EmptyStruct = struct {};
2828
29test "optional pointer to size zero struct" {29test "optional pointer to size zero struct" {
30 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO30 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
31 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
3132
32 var e = EmptyStruct{};33 var e = EmptyStruct{};
33 const o: ?*EmptyStruct = &e;34 const o: ?*EmptyStruct = &e;
...@@ -35,6 +36,8 @@ test "optional pointer to size zero struct" {...@@ -35,6 +36,8 @@ test "optional pointer to size zero struct" {
35}36}
3637
37test "equality compare optional pointers" {38test "equality compare optional pointers" {
39 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
40
38 try testNullPtrsEql();41 try testNullPtrsEql();
39 try comptime testNullPtrsEql();42 try comptime testNullPtrsEql();
40}43}
...@@ -112,6 +115,7 @@ test "address of unwrap optional" {...@@ -112,6 +115,7 @@ test "address of unwrap optional" {
112 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO115 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
113 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO116 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
114 if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest;117 if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest;
118 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
115119
116 const S = struct {120 const S = struct {
117 const Foo = struct {121 const Foo = struct {
...@@ -236,6 +240,7 @@ test "compare optionals with modified payloads" {...@@ -236,6 +240,7 @@ test "compare optionals with modified payloads" {
236240
237test "unwrap function call with optional pointer return value" {241test "unwrap function call with optional pointer return value" {
238 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO242 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
243 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
239 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO244 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
240245
241 const S = struct {246 const S = struct {
...@@ -284,6 +289,7 @@ test "nested orelse" {...@@ -284,6 +289,7 @@ test "nested orelse" {
284test "self-referential struct through a slice of optional" {289test "self-referential struct through a slice of optional" {
285 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO290 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
286 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO291 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
292 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
287293
288 const S = struct {294 const S = struct {
289 const Node = struct {295 const Node = struct {
...@@ -391,6 +397,7 @@ test "array of optional unaligned types" {...@@ -391,6 +397,7 @@ test "array of optional unaligned types" {
391 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO397 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
392 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO398 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
393 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO399 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
400 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
394401
395 const Enum = enum { one, two, three };402 const Enum = enum { one, two, three };
396403
...@@ -513,7 +520,6 @@ test "mutable optional of noreturn" {...@@ -513,7 +520,6 @@ test "mutable optional of noreturn" {
513}520}
514521
515test "orelse on C pointer" {522test "orelse on C pointer" {
516
517 // TODO https://github.com/ziglang/zig/issues/6597523 // TODO https://github.com/ziglang/zig/issues/6597
518 const foo: [*c]const u8 = "hey";524 const foo: [*c]const u8 = "hey";
519 const d = foo orelse @compileError("bad");525 const d = foo orelse @compileError("bad");
...@@ -543,6 +549,7 @@ test "Optional slice size is optimized" {...@@ -543,6 +549,7 @@ test "Optional slice size is optimized" {
543 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;549 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;
544 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest;550 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest;
545 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO551 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
552 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
546553
547 try expect(@sizeOf(?[]u8) == @sizeOf([]u8));554 try expect(@sizeOf(?[]u8) == @sizeOf([]u8));
548 var a: ?[]const u8 = null;555 var a: ?[]const u8 = null;
test/behavior/packed-struct.zig+5
...@@ -1299,6 +1299,8 @@ test "packed struct contains optional pointer" {...@@ -1299,6 +1299,8 @@ test "packed struct contains optional pointer" {
1299}1299}
13001300
1301test "packed struct equality" {1301test "packed struct equality" {
1302 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
1303
1302 const Foo = packed struct {1304 const Foo = packed struct {
1303 a: u4,1305 a: u4,
1304 b: u4,1306 b: u4,
...@@ -1319,6 +1321,8 @@ test "packed struct equality" {...@@ -1319,6 +1321,8 @@ test "packed struct equality" {
1319}1321}
13201322
1321test "packed struct with signed field" {1323test "packed struct with signed field" {
1324 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
1325
1322 var s: packed struct {1326 var s: packed struct {
1323 a: i2,1327 a: i2,
1324 b: u6,1328 b: u6,
...@@ -1332,6 +1336,7 @@ test "assign packed struct initialized with RLS to packed struct literal field"...@@ -1332,6 +1336,7 @@ test "assign packed struct initialized with RLS to packed struct literal field"
1332 if (builtin.zig_backend == .stage2_llvm and builtin.cpu.arch.isWasm()) return error.SkipZigTest;1336 if (builtin.zig_backend == .stage2_llvm and builtin.cpu.arch.isWasm()) return error.SkipZigTest;
1333 if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest;1337 if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest;
1334 if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest;1338 if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest;
1339 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
13351340
1336 const Inner = packed struct { x: u17 };1341 const Inner = packed struct { x: u17 };
1337 const Outer = packed struct { inner: Inner, x: u15 };1342 const Outer = packed struct { inner: Inner, x: u15 };
test/behavior/pointers.zig+25
...@@ -21,6 +21,7 @@ test "pointer-integer arithmetic" {...@@ -21,6 +21,7 @@ test "pointer-integer arithmetic" {
21 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;21 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;
22 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO22 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
23 if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest;23 if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest;
24 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
2425
25 var ptr: [*]const u8 = "abcd";26 var ptr: [*]const u8 = "abcd";
2627
...@@ -100,6 +101,8 @@ test "pointer subtraction" {...@@ -100,6 +101,8 @@ test "pointer subtraction" {
100}101}
101102
102test "pointer arithmetic with non-trivial RHS" {103test "pointer arithmetic with non-trivial RHS" {
104 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
105
103 var t: bool = undefined;106 var t: bool = undefined;
104 t = true;107 t = true;
105108
...@@ -124,6 +127,7 @@ fn PtrOf(comptime T: type) type {...@@ -124,6 +127,7 @@ fn PtrOf(comptime T: type) type {
124127
125test "implicit cast single item pointer to C pointer and back" {128test "implicit cast single item pointer to C pointer and back" {
126 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO129 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
130 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
127131
128 var y: u8 = 11;132 var y: u8 = 11;
129 const x: [*c]u8 = &y;133 const x: [*c]u8 = &y;
...@@ -140,6 +144,7 @@ test "initialize const optional C pointer to null" {...@@ -140,6 +144,7 @@ test "initialize const optional C pointer to null" {
140144
141test "assigning integer to C pointer" {145test "assigning integer to C pointer" {
142 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO146 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
147 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
143148
144 var x: i32 = 0;149 var x: i32 = 0;
145 var y: i32 = 1;150 var y: i32 = 1;
...@@ -157,6 +162,7 @@ test "assigning integer to C pointer" {...@@ -157,6 +162,7 @@ test "assigning integer to C pointer" {
157162
158test "C pointer comparison and arithmetic" {163test "C pointer comparison and arithmetic" {
159 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO164 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
165 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
160166
161 const S = struct {167 const S = struct {
162 fn doTheTest() !void {168 fn doTheTest() !void {
...@@ -200,6 +206,8 @@ fn testDerefPtrOneVal() !void {...@@ -200,6 +206,8 @@ fn testDerefPtrOneVal() !void {
200}206}
201207
202test "peer type resolution with C pointers" {208test "peer type resolution with C pointers" {
209 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
210
203 const ptr_one: *u8 = undefined;211 const ptr_one: *u8 = undefined;
204 const ptr_many: [*]u8 = undefined;212 const ptr_many: [*]u8 = undefined;
205 const ptr_c: [*c]u8 = undefined;213 const ptr_c: [*c]u8 = undefined;
...@@ -227,6 +235,7 @@ test "implicit casting between C pointer and optional non-C pointer" {...@@ -227,6 +235,7 @@ test "implicit casting between C pointer and optional non-C pointer" {
227 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;235 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;
228 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO236 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
229 if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest;237 if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest;
238 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
230239
231 var slice: []const u8 = "aoeu";240 var slice: []const u8 = "aoeu";
232 _ = &slice;241 _ = &slice;
...@@ -271,6 +280,7 @@ test "allowzero pointer and slice" {...@@ -271,6 +280,7 @@ test "allowzero pointer and slice" {
271 if (builtin.zig_backend == .stage2_c) return error.SkipZigTest; // TODO280 if (builtin.zig_backend == .stage2_c) return error.SkipZigTest; // TODO
272 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest;281 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest;
273 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO282 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
283 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
274284
275 var ptr: [*]allowzero i32 = @ptrFromInt(0);285 var ptr: [*]allowzero i32 = @ptrFromInt(0);
276 const opt_ptr: ?[*]allowzero i32 = ptr;286 const opt_ptr: ?[*]allowzero i32 = ptr;
...@@ -290,6 +300,7 @@ test "assign null directly to C pointer and test null equality" {...@@ -290,6 +300,7 @@ test "assign null directly to C pointer and test null equality" {
290 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO300 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
291 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO301 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
292 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO302 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
303 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
293304
294 var x: [*c]i32 = null;305 var x: [*c]i32 = null;
295 _ = &x;306 _ = &x;
...@@ -357,6 +368,7 @@ test "array initialization types" {...@@ -357,6 +368,7 @@ test "array initialization types" {
357test "null terminated pointer" {368test "null terminated pointer" {
358 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;369 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;
359 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO370 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
371 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
360372
361 const S = struct {373 const S = struct {
362 fn doTheTest() !void {374 fn doTheTest() !void {
...@@ -375,6 +387,7 @@ test "allow any sentinel" {...@@ -375,6 +387,7 @@ test "allow any sentinel" {
375 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;387 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;
376 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO388 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
377 if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest;389 if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest;
390 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
378391
379 const S = struct {392 const S = struct {
380 fn doTheTest() !void {393 fn doTheTest() !void {
...@@ -391,6 +404,7 @@ test "pointer sentinel with enums" {...@@ -391,6 +404,7 @@ test "pointer sentinel with enums" {
391 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;404 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;
392 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO405 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
393 if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest;406 if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest;
407 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
394408
395 const S = struct {409 const S = struct {
396 const Number = enum {410 const Number = enum {
...@@ -414,6 +428,7 @@ test "pointer sentinel with optional element" {...@@ -414,6 +428,7 @@ test "pointer sentinel with optional element" {
414 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO428 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
415 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO429 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
416 if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest;430 if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest;
431 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
417432
418 const S = struct {433 const S = struct {
419 fn doTheTest() !void {434 fn doTheTest() !void {
...@@ -431,6 +446,7 @@ test "pointer sentinel with +inf" {...@@ -431,6 +446,7 @@ test "pointer sentinel with +inf" {
431 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO446 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
432 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO447 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
433 if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest;448 if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest;
449 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
434450
435 const S = struct {451 const S = struct {
436 fn doTheTest() !void {452 fn doTheTest() !void {
...@@ -452,6 +468,8 @@ test "pointer to array at fixed address" {...@@ -452,6 +468,8 @@ test "pointer to array at fixed address" {
452}468}
453469
454test "pointer-integer arithmetic affects the alignment" {470test "pointer-integer arithmetic affects the alignment" {
471 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
472
455 {473 {
456 var ptr: [*]align(8) u32 = undefined;474 var ptr: [*]align(8) u32 = undefined;
457 var x: usize = 1;475 var x: usize = 1;
...@@ -500,6 +518,7 @@ test "indexing array with sentinel returns correct type" {...@@ -500,6 +518,7 @@ test "indexing array with sentinel returns correct type" {
500 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO518 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
501 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO519 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
502 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO520 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
521 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
503522
504 var s: [:0]const u8 = "abc";523 var s: [:0]const u8 = "abc";
505 try testing.expectEqualSlices(u8, "*const u8", @typeName(@TypeOf(&s[0])));524 try testing.expectEqualSlices(u8, "*const u8", @typeName(@TypeOf(&s[0])));
...@@ -508,6 +527,7 @@ test "indexing array with sentinel returns correct type" {...@@ -508,6 +527,7 @@ test "indexing array with sentinel returns correct type" {
508test "element pointer to slice" {527test "element pointer to slice" {
509 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO528 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
510 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO529 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
530 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
511531
512 const S = struct {532 const S = struct {
513 fn doTheTest() !void {533 fn doTheTest() !void {
...@@ -530,6 +550,7 @@ test "element pointer to slice" {...@@ -530,6 +550,7 @@ test "element pointer to slice" {
530test "element pointer arithmetic to slice" {550test "element pointer arithmetic to slice" {
531 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO551 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
532 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO552 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
553 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
533554
534 const S = struct {555 const S = struct {
535 fn doTheTest() !void {556 fn doTheTest() !void {
...@@ -554,6 +575,7 @@ test "element pointer arithmetic to slice" {...@@ -554,6 +575,7 @@ test "element pointer arithmetic to slice" {
554575
555test "array slicing to slice" {576test "array slicing to slice" {
556 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO577 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
578 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
557579
558 const S = struct {580 const S = struct {
559 fn doTheTest() !void {581 fn doTheTest() !void {
...@@ -584,6 +606,7 @@ test "ptrCast comptime known slice to C pointer" {...@@ -584,6 +606,7 @@ test "ptrCast comptime known slice to C pointer" {
584 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO606 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
585 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO607 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
586 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO608 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
609 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
587610
588 const s: [:0]const u8 = "foo";611 const s: [:0]const u8 = "foo";
589 var p: [*c]const u8 = @ptrCast(s);612 var p: [*c]const u8 = @ptrCast(s);
...@@ -603,6 +626,7 @@ test "pointer alignment and element type include call expression" {...@@ -603,6 +626,7 @@ test "pointer alignment and element type include call expression" {
603626
604test "pointer to array has explicit alignment" {627test "pointer to array has explicit alignment" {
605 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO628 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
629 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
606630
607 const S = struct {631 const S = struct {
608 const Base = extern struct { a: u8 };632 const Base = extern struct { a: u8 };
...@@ -679,6 +703,7 @@ fn constant() !void {...@@ -679,6 +703,7 @@ fn constant() !void {
679703
680test "pointer-to-array constness for zero-size elements, var" {704test "pointer-to-array constness for zero-size elements, var" {
681 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO705 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
706 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
682707
683 try mutable();708 try mutable();
684 try comptime mutable();709 try comptime mutable();
test/behavior/ptrcast.zig+3
...@@ -58,6 +58,7 @@ fn testReinterpretStructWrappedBytesAsInteger() !void {...@@ -58,6 +58,7 @@ fn testReinterpretStructWrappedBytesAsInteger() !void {
58test "reinterpret bytes of an array into an extern struct" {58test "reinterpret bytes of an array into an extern struct" {
59 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO59 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
60 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO60 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
61 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
6162
62 try testReinterpretBytesAsExternStruct();63 try testReinterpretBytesAsExternStruct();
63 try comptime testReinterpretBytesAsExternStruct();64 try comptime testReinterpretBytesAsExternStruct();
...@@ -232,6 +233,7 @@ test "implicit optional pointer to optional anyopaque pointer" {...@@ -232,6 +233,7 @@ test "implicit optional pointer to optional anyopaque pointer" {
232 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO233 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
233 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO234 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
234 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO235 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
236 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
235237
236 var buf: [4]u8 = "aoeu".*;238 var buf: [4]u8 = "aoeu".*;
237 const x: ?[*]u8 = &buf;239 const x: ?[*]u8 = &buf;
...@@ -244,6 +246,7 @@ test "@ptrCast slice to slice" {...@@ -244,6 +246,7 @@ test "@ptrCast slice to slice" {
244 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO246 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
245 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO247 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
246 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO248 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
249 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
247250
248 const S = struct {251 const S = struct {
249 fn foo(slice: []u32) []i32 {252 fn foo(slice: []u32) []i32 {
test/behavior/ptrfromint.zig+2
...@@ -17,6 +17,7 @@ test "mutate through ptr initialized with constant ptrFromInt value" {...@@ -17,6 +17,7 @@ test "mutate through ptr initialized with constant ptrFromInt value" {
17 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest;17 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest;
18 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;18 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;
19 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO19 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
20 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
2021
21 forceCompilerAnalyzeBranchHardCodedPtrDereference(false);22 forceCompilerAnalyzeBranchHardCodedPtrDereference(false);
22}23}
...@@ -34,6 +35,7 @@ test "@ptrFromInt creates null pointer" {...@@ -34,6 +35,7 @@ test "@ptrFromInt creates null pointer" {
34 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest;35 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest;
35 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;36 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;
36 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO37 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
38 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
3739
38 const ptr = @as(?*u32, @ptrFromInt(0));40 const ptr = @as(?*u32, @ptrFromInt(0));
39 try expectEqual(@as(?*u32, null), ptr);41 try expectEqual(@as(?*u32, null), ptr);
test/behavior/ref_var_in_if_after_if_2nd_switch_prong.zig+1
...@@ -8,6 +8,7 @@ test "reference a variable in an if after an if in the 2nd switch prong" {...@@ -8,6 +8,7 @@ test "reference a variable in an if after an if in the 2nd switch prong" {
8 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest;8 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest;
9 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;9 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;
10 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO10 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
11 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
1112
12 try foo(true, Num.Two, false, "aoeu");13 try foo(true, Num.Two, false, "aoeu");
13 try expect(!ok);14 try expect(!ok);
test/behavior/select.zig+2
...@@ -9,6 +9,7 @@ test "@select vectors" {...@@ -9,6 +9,7 @@ test "@select vectors" {
9 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO9 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
10 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO10 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
11 if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest;11 if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest;
12 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
1213
13 try comptime selectVectors();14 try comptime selectVectors();
14 try selectVectors();15 try selectVectors();
...@@ -39,6 +40,7 @@ test "@select arrays" {...@@ -39,6 +40,7 @@ test "@select arrays" {
39 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO40 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
40 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO41 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
41 if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest;42 if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest;
43 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
42 if (builtin.zig_backend == .stage2_x86_64 and44 if (builtin.zig_backend == .stage2_x86_64 and
43 !comptime std.Target.x86.featureSetHas(builtin.cpu.features, .avx2)) return error.SkipZigTest;45 !comptime std.Target.x86.featureSetHas(builtin.cpu.features, .avx2)) return error.SkipZigTest;
4446
test/behavior/shuffle.zig+4
...@@ -9,6 +9,7 @@ test "@shuffle int" {...@@ -9,6 +9,7 @@ test "@shuffle int" {
9 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO9 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
10 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO10 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
11 if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest;11 if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest;
12 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
12 if (builtin.zig_backend == .stage2_x86_64 and13 if (builtin.zig_backend == .stage2_x86_64 and
13 !comptime std.Target.x86.featureSetHas(builtin.cpu.features, .ssse3)) return error.SkipZigTest;14 !comptime std.Target.x86.featureSetHas(builtin.cpu.features, .ssse3)) return error.SkipZigTest;
1415
...@@ -57,6 +58,7 @@ test "@shuffle int strange sizes" {...@@ -57,6 +58,7 @@ test "@shuffle int strange sizes" {
57 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO58 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
58 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO59 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
59 if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest;60 if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest;
61 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
6062
61 try comptime testShuffle(2, 2, 2);63 try comptime testShuffle(2, 2, 2);
62 try testShuffle(2, 2, 2);64 try testShuffle(2, 2, 2);
...@@ -139,6 +141,7 @@ test "@shuffle bool 1" {...@@ -139,6 +141,7 @@ test "@shuffle bool 1" {
139 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO141 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
140 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO142 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
141 if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest;143 if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest;
144 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
142145
143 const S = struct {146 const S = struct {
144 fn doTheTest() !void {147 fn doTheTest() !void {
...@@ -162,6 +165,7 @@ test "@shuffle bool 2" {...@@ -162,6 +165,7 @@ test "@shuffle bool 2" {
162 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO165 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
163 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO166 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
164 if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest;167 if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest;
168 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
165169
166 const S = struct {170 const S = struct {
167 fn doTheTest() !void {171 fn doTheTest() !void {
test/behavior/sizeof_and_typeof.zig+1-3
...@@ -327,6 +327,7 @@ test "peer type resolution with @TypeOf doesn't trigger dependency loop check" {...@@ -327,6 +327,7 @@ test "peer type resolution with @TypeOf doesn't trigger dependency loop check" {
327 if (builtin.zig_backend == .stage2_x86) return error.SkipZigTest; // TODO327 if (builtin.zig_backend == .stage2_x86) return error.SkipZigTest; // TODO
328 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO328 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
329 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO329 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
330 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
330331
331 const T = struct {332 const T = struct {
332 next: @TypeOf(null, @as(*const @This(), undefined)),333 next: @TypeOf(null, @as(*const @This(), undefined)),
...@@ -420,8 +421,6 @@ test "Extern function calls in @TypeOf" {...@@ -420,8 +421,6 @@ test "Extern function calls in @TypeOf" {
420}421}
421422
422test "Peer resolution of extern function calls in @TypeOf" {423test "Peer resolution of extern function calls in @TypeOf" {
423 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
424
425 const Test = struct {424 const Test = struct {
426 fn test_fn() @TypeOf(c_ftell(null), c_fputs(null, null)) {425 fn test_fn() @TypeOf(c_ftell(null), c_fputs(null, null)) {
427 return 0;426 return 0;
...@@ -439,7 +438,6 @@ test "Peer resolution of extern function calls in @TypeOf" {...@@ -439,7 +438,6 @@ test "Peer resolution of extern function calls in @TypeOf" {
439test "Extern function calls, dereferences and field access in @TypeOf" {438test "Extern function calls, dereferences and field access in @TypeOf" {
440 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;439 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;
441 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO440 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
442 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
443441
444 const Test = struct {442 const Test = struct {
445 fn test_fn_1(a: c_long) @TypeOf(c_fopen("test", "r").*) {443 fn test_fn_1(a: c_long) @TypeOf(c_fopen("test", "r").*) {
test/behavior/slice.zig+33
...@@ -30,6 +30,7 @@ comptime {...@@ -30,6 +30,7 @@ comptime {
3030
31test "slicing" {31test "slicing" {
32 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO32 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
33 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
3334
34 var array: [20]i32 = undefined;35 var array: [20]i32 = undefined;
3536
...@@ -77,6 +78,7 @@ fn assertLenIsZero(msg: []const u8) !void {...@@ -77,6 +78,7 @@ fn assertLenIsZero(msg: []const u8) !void {
7778
78test "access len index of sentinel-terminated slice" {79test "access len index of sentinel-terminated slice" {
79 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO80 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
81 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
8082
81 const S = struct {83 const S = struct {
82 fn doTheTest() !void {84 fn doTheTest() !void {
...@@ -100,6 +102,7 @@ test "comptime slice of slice preserves comptime var" {...@@ -100,6 +102,7 @@ test "comptime slice of slice preserves comptime var" {
100102
101test "open slice of open slice with sentinel" {103test "open slice of open slice with sentinel" {
102 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO104 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
105 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
103106
104 var slice: [:0]const u8 = "hello";107 var slice: [:0]const u8 = "hello";
105 _ = &slice;108 _ = &slice;
...@@ -117,6 +120,7 @@ test "open slice of open slice with sentinel" {...@@ -117,6 +120,7 @@ test "open slice of open slice with sentinel" {
117120
118test "open slice with sentinel of slice with end index" {121test "open slice with sentinel of slice with end index" {
119 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO122 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
123 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
120124
121 var slice: [:0]const u8 = "hello";125 var slice: [:0]const u8 = "hello";
122 _ = &slice;126 _ = &slice;
...@@ -169,6 +173,8 @@ fn memFree(comptime T: type, memory: []T) void {...@@ -169,6 +173,8 @@ fn memFree(comptime T: type, memory: []T) void {
169}173}
170174
171test "slice of hardcoded address to pointer" {175test "slice of hardcoded address to pointer" {
176 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
177
172 const S = struct {178 const S = struct {
173 fn doTheTest() !void {179 fn doTheTest() !void {
174 const pointer = @as([*]u8, @ptrFromInt(0x04))[0..2];180 const pointer = @as([*]u8, @ptrFromInt(0x04))[0..2];
...@@ -207,6 +213,7 @@ test "comptime pointer cast array and then slice" {...@@ -207,6 +213,7 @@ test "comptime pointer cast array and then slice" {
207test "slicing zero length array" {213test "slicing zero length array" {
208 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;214 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;
209 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO215 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
216 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
210217
211 const s1 = ""[0..];218 const s1 = ""[0..];
212 const s2 = ([_]u32{})[0..];219 const s2 = ([_]u32{})[0..];
...@@ -217,6 +224,8 @@ test "slicing zero length array" {...@@ -217,6 +224,8 @@ test "slicing zero length array" {
217}224}
218225
219test "slicing pointer by length" {226test "slicing pointer by length" {
227 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
228
220 const array = [_]u8{ 1, 2, 3, 4, 5, 6, 7, 8 };229 const array = [_]u8{ 1, 2, 3, 4, 5, 6, 7, 8 };
221 const ptr: [*]const u8 = @as([*]const u8, @ptrCast(&array));230 const ptr: [*]const u8 = @as([*]const u8, @ptrCast(&array));
222 const slice = ptr[1..][0..5];231 const slice = ptr[1..][0..5];
...@@ -238,6 +247,8 @@ test "compile time slice of pointer to hard coded address" {...@@ -238,6 +247,8 @@ test "compile time slice of pointer to hard coded address" {
238}247}
239248
240test "slice string literal has correct type" {249test "slice string literal has correct type" {
250 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
251
241 comptime {252 comptime {
242 try expect(@TypeOf("aoeu"[0..]) == *const [4:0]u8);253 try expect(@TypeOf("aoeu"[0..]) == *const [4:0]u8);
243 const array = [_]i32{ 1, 2, 3, 4 };254 const array = [_]i32{ 1, 2, 3, 4 };
...@@ -265,6 +276,7 @@ test "runtime safety lets us slice from len..len" {...@@ -265,6 +276,7 @@ test "runtime safety lets us slice from len..len" {
265 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;276 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;
266 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest;277 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest;
267 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO278 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
279 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
268280
269 var an_array = [_]u8{ 1, 2, 3 };281 var an_array = [_]u8{ 1, 2, 3 };
270 try expect(mem.eql(u8, sliceFromLenToLen(an_array[0..], 3, 3), ""));282 try expect(mem.eql(u8, sliceFromLenToLen(an_array[0..], 3, 3), ""));
...@@ -277,6 +289,7 @@ fn sliceFromLenToLen(a_slice: []u8, start: usize, end: usize) []u8 {...@@ -277,6 +289,7 @@ fn sliceFromLenToLen(a_slice: []u8, start: usize, end: usize) []u8 {
277test "C pointer" {289test "C pointer" {
278 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO290 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
279 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO291 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
292 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
280293
281 var buf: [*c]const u8 = "kjdhfkjdhfdkjhfkfjhdfkjdhfkdjhfdkjhf";294 var buf: [*c]const u8 = "kjdhfkjdhfdkjhfkfjhdfkjdhfkdjhfdkjhf";
282 var len: u32 = 10;295 var len: u32 = 10;
...@@ -289,6 +302,7 @@ test "C pointer slice access" {...@@ -289,6 +302,7 @@ test "C pointer slice access" {
289 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;302 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;
290 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest;303 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest;
291 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO304 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
305 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
292306
293 var buf: [10]u32 = [1]u32{42} ** 10;307 var buf: [10]u32 = [1]u32{42} ** 10;
294 const c_ptr = @as([*c]const u32, @ptrCast(&buf));308 const c_ptr = @as([*c]const u32, @ptrCast(&buf));
...@@ -319,6 +333,7 @@ fn sliceSum(comptime q: []const u8) i32 {...@@ -319,6 +333,7 @@ fn sliceSum(comptime q: []const u8) i32 {
319test "slice type with custom alignment" {333test "slice type with custom alignment" {
320 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;334 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;
321 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO335 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
336 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
322337
323 const LazilyResolvedType = struct {338 const LazilyResolvedType = struct {
324 anything: i32,339 anything: i32,
...@@ -332,6 +347,7 @@ test "slice type with custom alignment" {...@@ -332,6 +347,7 @@ test "slice type with custom alignment" {
332347
333test "obtaining a null terminated slice" {348test "obtaining a null terminated slice" {
334 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO349 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
350 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
335351
336 // here we have a normal array352 // here we have a normal array
337 var buf: [50]u8 = undefined;353 var buf: [50]u8 = undefined;
...@@ -376,6 +392,7 @@ test "empty array to slice" {...@@ -376,6 +392,7 @@ test "empty array to slice" {
376test "@ptrCast slice to pointer" {392test "@ptrCast slice to pointer" {
377 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;393 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;
378 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO394 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
395 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
379396
380 const S = struct {397 const S = struct {
381 fn doTheTest() !void {398 fn doTheTest() !void {
...@@ -392,6 +409,7 @@ test "@ptrCast slice to pointer" {...@@ -392,6 +409,7 @@ test "@ptrCast slice to pointer" {
392409
393test "slice multi-pointer without end" {410test "slice multi-pointer without end" {
394 if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest;411 if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest;
412 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
395413
396 const S = struct {414 const S = struct {
397 fn doTheTest() !void {415 fn doTheTest() !void {
...@@ -649,6 +667,7 @@ test "slice syntax resulting in pointer-to-array" {...@@ -649,6 +667,7 @@ test "slice syntax resulting in pointer-to-array" {
649test "slice pointer-to-array null terminated" {667test "slice pointer-to-array null terminated" {
650 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO668 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
651 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO669 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
670 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
652671
653 comptime {672 comptime {
654 var array = [5:0]u8{ 1, 2, 3, 4, 5 };673 var array = [5:0]u8{ 1, 2, 3, 4, 5 };
...@@ -667,6 +686,7 @@ test "slice pointer-to-array null terminated" {...@@ -667,6 +686,7 @@ test "slice pointer-to-array null terminated" {
667686
668test "slice pointer-to-array zero length" {687test "slice pointer-to-array zero length" {
669 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO688 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
689 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
670690
671 comptime {691 comptime {
672 {692 {
...@@ -701,6 +721,7 @@ test "type coercion of pointer to anon struct literal to pointer to slice" {...@@ -701,6 +721,7 @@ test "type coercion of pointer to anon struct literal to pointer to slice" {
701 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO721 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
702 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO722 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
703 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO723 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
724 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
704725
705 const S = struct {726 const S = struct {
706 const U = union {727 const U = union {
...@@ -757,6 +778,7 @@ test "array mult of slice gives ptr to array" {...@@ -757,6 +778,7 @@ test "array mult of slice gives ptr to array" {
757778
758test "slice bounds in comptime concatenation" {779test "slice bounds in comptime concatenation" {
759 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO780 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
781 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
760782
761 const bs = comptime blk: {783 const bs = comptime blk: {
762 const b = "........1........";784 const b = "........1........";
...@@ -792,6 +814,7 @@ test "slice sentinel access at comptime" {...@@ -792,6 +814,7 @@ test "slice sentinel access at comptime" {
792test "slicing array with sentinel as end index" {814test "slicing array with sentinel as end index" {
793 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;815 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;
794 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO816 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
817 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
795818
796 const S = struct {819 const S = struct {
797 fn do() !void {820 fn do() !void {
...@@ -810,6 +833,7 @@ test "slicing array with sentinel as end index" {...@@ -810,6 +833,7 @@ test "slicing array with sentinel as end index" {
810test "slicing slice with sentinel as end index" {833test "slicing slice with sentinel as end index" {
811 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;834 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;
812 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO835 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
836 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
813837
814 const S = struct {838 const S = struct {
815 fn do() !void {839 fn do() !void {
...@@ -889,6 +913,8 @@ test "slice of void" {...@@ -889,6 +913,8 @@ test "slice of void" {
889}913}
890914
891test "slice with dereferenced value" {915test "slice with dereferenced value" {
916 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
917
892 var a: usize = 0;918 var a: usize = 0;
893 const idx: *usize = &a;919 const idx: *usize = &a;
894 _ = blk: {920 _ = blk: {
...@@ -923,6 +949,7 @@ test "empty slice ptr is non null" {...@@ -923,6 +949,7 @@ test "empty slice ptr is non null" {
923test "slice decays to many pointer" {949test "slice decays to many pointer" {
924 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;950 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;
925 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest;951 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest;
952 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
926953
927 var buf: [8]u8 = "abcdefg\x00".*;954 var buf: [8]u8 = "abcdefg\x00".*;
928 const p: [*:0]const u8 = buf[0..7 :0];955 const p: [*:0]const u8 = buf[0..7 :0];
...@@ -933,6 +960,7 @@ test "write through pointer to optional slice arg" {...@@ -933,6 +960,7 @@ test "write through pointer to optional slice arg" {
933 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;960 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;
934 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest;961 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest;
935 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest;962 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest;
963 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
936964
937 const S = struct {965 const S = struct {
938 fn bar(foo: *?[]const u8) !void {966 fn bar(foo: *?[]const u8) !void {
...@@ -952,6 +980,7 @@ test "modify slice length at comptime" {...@@ -952,6 +980,7 @@ test "modify slice length at comptime" {
952 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;980 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;
953 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest;981 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest;
954 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest;982 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest;
983 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
955984
956 const arr: [2]u8 = .{ 10, 20 };985 const arr: [2]u8 = .{ 10, 20 };
957 comptime var s: []const u8 = arr[0..0];986 comptime var s: []const u8 = arr[0..0];
...@@ -985,6 +1014,7 @@ test "slicing slices gives correct result" {...@@ -985,6 +1014,7 @@ test "slicing slices gives correct result" {
985 if (builtin.zig_backend == .stage2_x86) return error.SkipZigTest; // TODO1014 if (builtin.zig_backend == .stage2_x86) return error.SkipZigTest; // TODO
986 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO1015 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
987 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO1016 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
1017 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
9881018
989 const foo = "1234";1019 const foo = "1234";
990 const bar = foo[0..4];1020 const bar = foo[0..4];
...@@ -1013,6 +1043,7 @@ test "sentinel-terminated 0-length slices" {...@@ -1013,6 +1043,7 @@ test "sentinel-terminated 0-length slices" {
1013 if (builtin.zig_backend == .stage2_x86) return error.SkipZigTest; // TODO1043 if (builtin.zig_backend == .stage2_x86) return error.SkipZigTest; // TODO
1014 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO1044 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
1015 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO1045 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
1046 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
10161047
1017 const u32s: [4]u32 = [_]u32{ 0, 1, 2, 3 };1048 const u32s: [4]u32 = [_]u32{ 0, 1, 2, 3 };
10181049
...@@ -1031,6 +1062,8 @@ test "sentinel-terminated 0-length slices" {...@@ -1031,6 +1062,8 @@ test "sentinel-terminated 0-length slices" {
1031}1062}
10321063
1033test "peer slices keep abi alignment with empty struct" {1064test "peer slices keep abi alignment with empty struct" {
1065 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
1066
1034 var cond: bool = undefined;1067 var cond: bool = undefined;
1035 cond = false;1068 cond = false;
1036 const slice = if (cond) &[1]u32{42} else &.{};1069 const slice = if (cond) &[1]u32{42} else &.{};
test/behavior/src.zig+1
...@@ -19,6 +19,7 @@ test "@src" {...@@ -19,6 +19,7 @@ test "@src" {
19 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO19 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
20 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO20 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
21 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO21 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
22 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
2223
23 try doTheTest();24 try doTheTest();
24}25}
test/behavior/string_literals.zig+5
...@@ -8,6 +8,7 @@ const ptr_tag_name: [*:0]const u8 = tag_name;...@@ -8,6 +8,7 @@ const ptr_tag_name: [*:0]const u8 = tag_name;
8test "@tagName() returns a string literal" {8test "@tagName() returns a string literal" {
9 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO9 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
10 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO10 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
11 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
1112
12 try std.testing.expect(*const [13:0]u8 == @TypeOf(tag_name));13 try std.testing.expect(*const [13:0]u8 == @TypeOf(tag_name));
13 try std.testing.expect(std.mem.eql(u8, "TestEnumValue", tag_name));14 try std.testing.expect(std.mem.eql(u8, "TestEnumValue", tag_name));
...@@ -21,6 +22,7 @@ const ptr_error_name: [*:0]const u8 = error_name;...@@ -21,6 +22,7 @@ const ptr_error_name: [*:0]const u8 = error_name;
21test "@errorName() returns a string literal" {22test "@errorName() returns a string literal" {
22 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO23 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
23 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO24 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
25 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
2426
25 try std.testing.expect(*const [13:0]u8 == @TypeOf(error_name));27 try std.testing.expect(*const [13:0]u8 == @TypeOf(error_name));
26 try std.testing.expect(std.mem.eql(u8, "TestErrorCode", error_name));28 try std.testing.expect(std.mem.eql(u8, "TestErrorCode", error_name));
...@@ -64,6 +66,7 @@ fn testFnForSrc() std.builtin.SourceLocation {...@@ -64,6 +66,7 @@ fn testFnForSrc() std.builtin.SourceLocation {
64test "@src() returns a struct containing 0-terminated string slices" {66test "@src() returns a struct containing 0-terminated string slices" {
65 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO67 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
66 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO68 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
69 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
6770
68 const src = testFnForSrc();71 const src = testFnForSrc();
69 try std.testing.expect([:0]const u8 == @TypeOf(src.file));72 try std.testing.expect([:0]const u8 == @TypeOf(src.file));
...@@ -101,6 +104,8 @@ test "Peer type resolution with string literals and unknown length u8 pointers"...@@ -101,6 +104,8 @@ test "Peer type resolution with string literals and unknown length u8 pointers"
101}104}
102105
103test "including the sentinel when dereferencing a string literal" {106test "including the sentinel when dereferencing a string literal" {
107 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
108
104 var var_str = "abc";109 var var_str = "abc";
105 const var_derefed = var_str[0 .. var_str.len + 1].*;110 const var_derefed = var_str[0 .. var_str.len + 1].*;
106111
test/behavior/struct.zig+19-1
...@@ -293,6 +293,7 @@ const Val = struct {...@@ -293,6 +293,7 @@ const Val = struct {
293test "struct point to self" {293test "struct point to self" {
294 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;294 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;
295 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO295 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
296 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
296297
297 var root: Node = undefined;298 var root: Node = undefined;
298 root.val.x = 1;299 root.val.x = 1;
...@@ -336,6 +337,7 @@ fn testReturnEmptyStructFromFn() EmptyStruct2 {...@@ -336,6 +337,7 @@ fn testReturnEmptyStructFromFn() EmptyStruct2 {
336337
337test "pass slice of empty struct to fn" {338test "pass slice of empty struct to fn" {
338 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO339 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
340 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
339341
340 try expect(testPassSliceOfEmptyStructToFn(&[_]EmptyStruct2{EmptyStruct2{}}) == 1);342 try expect(testPassSliceOfEmptyStructToFn(&[_]EmptyStruct2{EmptyStruct2{}}) == 1);
341}343}
...@@ -347,6 +349,7 @@ test "self-referencing struct via array member" {...@@ -347,6 +349,7 @@ test "self-referencing struct via array member" {
347 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;349 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;
348 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO350 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
349 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO351 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
352 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
350353
351 const T = struct {354 const T = struct {
352 children: [1]*@This(),355 children: [1]*@This(),
...@@ -370,6 +373,7 @@ const EmptyStruct = struct {...@@ -370,6 +373,7 @@ const EmptyStruct = struct {
370test "align 1 field before self referential align 8 field as slice return type" {373test "align 1 field before self referential align 8 field as slice return type" {
371 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO374 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
372 if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest;375 if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest;
376 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
373377
374 const result = alloc(Expr);378 const result = alloc(Expr);
375 try expect(result.len == 0);379 try expect(result.len == 0);
...@@ -416,12 +420,12 @@ const Foo96Bits = packed struct {...@@ -416,12 +420,12 @@ const Foo96Bits = packed struct {
416420
417test "packed struct 24bits" {421test "packed struct 24bits" {
418 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;422 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;
423 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
419 if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest; // TODO424 if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest; // TODO
420 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO425 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
421 if (builtin.cpu.arch.isWasm()) return error.SkipZigTest; // TODO426 if (builtin.cpu.arch.isWasm()) return error.SkipZigTest; // TODO
422 if (builtin.cpu.arch.isArm()) return error.SkipZigTest; // TODO427 if (builtin.cpu.arch.isArm()) return error.SkipZigTest; // TODO
423 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO428 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
424 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
425429
426 comptime {430 comptime {
427 std.debug.assert(@sizeOf(Foo24Bits) == @sizeOf(u24));431 std.debug.assert(@sizeOf(Foo24Bits) == @sizeOf(u24));
...@@ -956,6 +960,7 @@ test "comptime struct field" {...@@ -956,6 +960,7 @@ test "comptime struct field" {
956}960}
957961
958test "tuple element initialized with fn call" {962test "tuple element initialized with fn call" {
963 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
959 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO964 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
960 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO965 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
961 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO966 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
...@@ -974,6 +979,7 @@ test "tuple element initialized with fn call" {...@@ -974,6 +979,7 @@ test "tuple element initialized with fn call" {
974}979}
975980
976test "struct with union field" {981test "struct with union field" {
982 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
977 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO983 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
978 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO984 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
979 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO985 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
...@@ -1045,6 +1051,7 @@ test "packed struct with undefined initializers" {...@@ -1045,6 +1051,7 @@ test "packed struct with undefined initializers" {
1045}1051}
10461052
1047test "for loop over pointers to struct, getting field from struct pointer" {1053test "for loop over pointers to struct, getting field from struct pointer" {
1054 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
1048 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO1055 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
1049 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO1056 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
10501057
...@@ -1362,6 +1369,7 @@ test "fieldParentPtr of a zero-bit field" {...@@ -1362,6 +1369,7 @@ test "fieldParentPtr of a zero-bit field" {
1362}1369}
13631370
1364test "struct field has a pointer to an aligned version of itself" {1371test "struct field has a pointer to an aligned version of itself" {
1372 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
1365 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO1373 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
13661374
1367 const E = struct {1375 const E = struct {
...@@ -1459,6 +1467,7 @@ test "function pointer in struct returns the struct" {...@@ -1459,6 +1467,7 @@ test "function pointer in struct returns the struct" {
1459}1467}
14601468
1461test "no dependency loop on optional field wrapped in generic function" {1469test "no dependency loop on optional field wrapped in generic function" {
1470 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
1462 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;1471 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;
14631472
1464 const S = struct {1473 const S = struct {
...@@ -1538,6 +1547,8 @@ test "struct fields get automatically reordered" {...@@ -1538,6 +1547,8 @@ test "struct fields get automatically reordered" {
1538}1547}
15391548
1540test "directly initiating tuple like struct" {1549test "directly initiating tuple like struct" {
1550 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
1551
1541 const a = struct { u8 }{8};1552 const a = struct { u8 }{8};
1542 try expect(a[0] == 8);1553 try expect(a[0] == 8);
1543}1554}
...@@ -1699,6 +1710,8 @@ test "runtime side-effects in comptime-known struct init" {...@@ -1699,6 +1710,8 @@ test "runtime side-effects in comptime-known struct init" {
1699}1710}
17001711
1701test "pointer to struct initialized through reference to anonymous initializer provides result types" {1712test "pointer to struct initialized through reference to anonymous initializer provides result types" {
1713 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
1714
1702 const S = struct { a: u8, b: u16, c: *const anyopaque };1715 const S = struct { a: u8, b: u16, c: *const anyopaque };
1703 var my_u16: u16 = 0xABCD;1716 var my_u16: u16 = 0xABCD;
1704 _ = &my_u16;1717 _ = &my_u16;
...@@ -1756,6 +1769,8 @@ test "initializer uses own size" {...@@ -1756,6 +1769,8 @@ test "initializer uses own size" {
1756}1769}
17571770
1758test "initializer takes a pointer to a variable inside its struct" {1771test "initializer takes a pointer to a variable inside its struct" {
1772 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
1773
1759 const namespace = struct {1774 const namespace = struct {
1760 const S = struct {1775 const S = struct {
1761 s: *S = &S.instance,1776 s: *S = &S.instance,
...@@ -1774,6 +1789,8 @@ test "initializer takes a pointer to a variable inside its struct" {...@@ -1774,6 +1789,8 @@ test "initializer takes a pointer to a variable inside its struct" {
1774}1789}
17751790
1776test "circular dependency through pointer field of a struct" {1791test "circular dependency through pointer field of a struct" {
1792 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
1793
1777 const S = struct {1794 const S = struct {
1778 const StructInner = extern struct {1795 const StructInner = extern struct {
1779 outer: StructOuter = std.mem.zeroes(StructOuter),1796 outer: StructOuter = std.mem.zeroes(StructOuter),
...@@ -1895,6 +1912,7 @@ test "runtime call in nested initializer" {...@@ -1895,6 +1912,7 @@ test "runtime call in nested initializer" {
1895 if (builtin.zig_backend == .stage2_x86) return error.SkipZigTest; // TODO1912 if (builtin.zig_backend == .stage2_x86) return error.SkipZigTest; // TODO
1896 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO1913 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
1897 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO1914 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
1915 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
18981916
1899 const Holder = struct {1917 const Holder = struct {
1900 array: []const u8,1918 array: []const u8,
test/behavior/struct_contains_null_ptr_itself.zig+1
...@@ -5,6 +5,7 @@ const builtin = @import("builtin");...@@ -5,6 +5,7 @@ const builtin = @import("builtin");
5test "struct contains null pointer which contains original struct" {5test "struct contains null pointer which contains original struct" {
6 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;6 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;
7 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO7 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
8 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
89
9 var x: ?*NodeLineComment = null;10 var x: ?*NodeLineComment = null;
10 _ = &x;11 _ = &x;
test/behavior/struct_contains_slice_of_itself.zig+2
...@@ -13,6 +13,7 @@ const NodeAligned = struct {...@@ -13,6 +13,7 @@ const NodeAligned = struct {
1313
14test "struct contains slice of itself" {14test "struct contains slice of itself" {
15 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO15 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
16 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
1617
17 var other_nodes = [_]Node{18 var other_nodes = [_]Node{
18 Node{19 Node{
...@@ -53,6 +54,7 @@ test "struct contains slice of itself" {...@@ -53,6 +54,7 @@ test "struct contains slice of itself" {
53test "struct contains aligned slice of itself" {54test "struct contains aligned slice of itself" {
54 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO55 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
55 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO56 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
57 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
5658
57 var other_nodes = [_]NodeAligned{59 var other_nodes = [_]NodeAligned{
58 NodeAligned{60 NodeAligned{
test/behavior/switch.zig+6-8
...@@ -9,13 +9,12 @@ const maxInt = std.math.maxInt;...@@ -9,13 +9,12 @@ const maxInt = std.math.maxInt;
99
10test "switch with numbers" {10test "switch with numbers" {
11 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO11 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
12 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
1213
13 try testSwitchWithNumbers(13);14 try testSwitchWithNumbers(13);
14}15}
1516
16fn testSwitchWithNumbers(x: u32) !void {17fn testSwitchWithNumbers(x: u32) !void {
17 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest; // TODO
18
19 const result = switch (x) {18 const result = switch (x) {
20 1, 2, 3, 4...8 => false,19 1, 2, 3, 4...8 => false,
21 13 => true,20 13 => true,
...@@ -323,14 +322,13 @@ fn testSwitchEnumPtrCapture() !void {...@@ -323,14 +322,13 @@ fn testSwitchEnumPtrCapture() !void {
323322
324test "switch handles all cases of number" {323test "switch handles all cases of number" {
325 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO324 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
325 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
326326
327 try testSwitchHandleAllCases();327 try testSwitchHandleAllCases();
328 try comptime testSwitchHandleAllCases();328 try comptime testSwitchHandleAllCases();
329}329}
330330
331fn testSwitchHandleAllCases() !void {331fn testSwitchHandleAllCases() !void {
332 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest; // TODO
333
334 try expect(testSwitchHandleAllCasesExhaustive(0) == 3);332 try expect(testSwitchHandleAllCasesExhaustive(0) == 3);
335 try expect(testSwitchHandleAllCasesExhaustive(1) == 2);333 try expect(testSwitchHandleAllCasesExhaustive(1) == 2);
336 try expect(testSwitchHandleAllCasesExhaustive(2) == 1);334 try expect(testSwitchHandleAllCasesExhaustive(2) == 1);
...@@ -694,6 +692,7 @@ test "switch prong pointer capture alignment" {...@@ -694,6 +692,7 @@ test "switch prong pointer capture alignment" {
694test "switch on pointer type" {692test "switch on pointer type" {
695 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO693 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
696 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO694 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
695 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
697696
698 const S = struct {697 const S = struct {
699 const X = struct {698 const X = struct {
...@@ -742,6 +741,7 @@ test "switch capture copies its payload" {...@@ -742,6 +741,7 @@ test "switch capture copies its payload" {
742 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO741 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
743 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO742 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
744 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO743 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
744 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
745745
746 const S = struct {746 const S = struct {
747 fn doTheTest() !void {747 fn doTheTest() !void {
...@@ -832,6 +832,8 @@ test "comptime inline switch" {...@@ -832,6 +832,8 @@ test "comptime inline switch" {
832}832}
833833
834test "switch capture peer type resolution" {834test "switch capture peer type resolution" {
835 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
836
835 const U = union(enum) {837 const U = union(enum) {
836 a: u32,838 a: u32,
837 b: u64,839 b: u64,
...@@ -867,8 +869,6 @@ test "switch capture peer type resolution for in-memory coercible payloads" {...@@ -867,8 +869,6 @@ test "switch capture peer type resolution for in-memory coercible payloads" {
867}869}
868870
869test "switch pointer capture peer type resolution" {871test "switch pointer capture peer type resolution" {
870 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
871
872 const T1 = c_int;872 const T1 = c_int;
873 const T2 = @Type(@typeInfo(T1));873 const T2 = @Type(@typeInfo(T1));
874874
...@@ -989,8 +989,6 @@ test "prong with inline call to unreachable" {...@@ -989,8 +989,6 @@ test "prong with inline call to unreachable" {
989}989}
990990
991test "block error return trace index is reset between prongs" {991test "block error return trace index is reset between prongs" {
992 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest; // TODO
993
994 const S = struct {992 const S = struct {
995 fn returnError() error{TestFailed} {993 fn returnError() error{TestFailed} {
996 return error.TestFailed;994 return error.TestFailed;
test/behavior/threadlocal.zig+2
...@@ -25,6 +25,7 @@ test "pointer to thread local array" {...@@ -25,6 +25,7 @@ test "pointer to thread local array" {
25 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO25 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
26 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO26 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
27 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO27 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
28 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
2829
29 const s = "Hello world";30 const s = "Hello world";
30 @memcpy(buffer[0..s.len], s);31 @memcpy(buffer[0..s.len], s);
...@@ -38,6 +39,7 @@ test "reference a global threadlocal variable" {...@@ -38,6 +39,7 @@ test "reference a global threadlocal variable" {
38 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO39 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
39 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO40 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
40 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO41 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
42 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
4143
42 _ = nrfx_uart_rx(&g_uart0);44 _ = nrfx_uart_rx(&g_uart0);
43}45}
test/behavior/truncate.zig+1
...@@ -70,6 +70,7 @@ test "truncate on vectors" {...@@ -70,6 +70,7 @@ test "truncate on vectors" {
70 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest;70 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest;
71 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO71 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
72 if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest;72 if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest;
73 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
7374
74 const S = struct {75 const S = struct {
75 fn doTheTest() !void {76 fn doTheTest() !void {
test/behavior/try.zig-1
...@@ -72,7 +72,6 @@ test "'return try' of empty error set in function returning non-error" {...@@ -72,7 +72,6 @@ test "'return try' of empty error set in function returning non-error" {
72 if (builtin.zig_backend == .stage2_x86) return error.SkipZigTest; // TODO72 if (builtin.zig_backend == .stage2_x86) return error.SkipZigTest; // TODO
73 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO73 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
74 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO74 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
75 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
76 if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest;75 if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest;
7776
78 const S = struct {77 const S = struct {
test/behavior/tuple.zig+14-2
...@@ -131,6 +131,7 @@ test "tuple initializer for var" {...@@ -131,6 +131,7 @@ test "tuple initializer for var" {
131test "array-like initializer for tuple types" {131test "array-like initializer for tuple types" {
132 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO132 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
133 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO133 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
134 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
134135
135 const T = @Type(.{136 const T = @Type(.{
136 .@"struct" = .{137 .@"struct" = .{
...@@ -219,6 +220,7 @@ test "fieldParentPtr of tuple" {...@@ -219,6 +220,7 @@ test "fieldParentPtr of tuple" {
219 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest;220 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest;
220 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO221 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
221 if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest;222 if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest;
223 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
222224
223 var x: u32 = 0;225 var x: u32 = 0;
224 _ = &x;226 _ = &x;
...@@ -231,6 +233,7 @@ test "fieldParentPtr of anon struct" {...@@ -231,6 +233,7 @@ test "fieldParentPtr of anon struct" {
231 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest;233 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest;
232 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO234 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
233 if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest;235 if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest;
236 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
234237
235 var x: u32 = 0;238 var x: u32 = 0;
236 _ = &x;239 _ = &x;
...@@ -280,6 +283,7 @@ test "tuple in tuple passed to generic function" {...@@ -280,6 +283,7 @@ test "tuple in tuple passed to generic function" {
280 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO283 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
281 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO284 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
282 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO285 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
286 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
283287
284 const S = struct {288 const S = struct {
285 fn pair(x: f32, y: f32) std.meta.Tuple(&.{ f32, f32 }) {289 fn pair(x: f32, y: f32) std.meta.Tuple(&.{ f32, f32 }) {
...@@ -299,6 +303,7 @@ test "coerce tuple to tuple" {...@@ -299,6 +303,7 @@ test "coerce tuple to tuple" {
299 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO303 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
300 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO304 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
301 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO305 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
306 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
302307
303 const T = std.meta.Tuple(&.{u8});308 const T = std.meta.Tuple(&.{u8});
304 const S = struct {309 const S = struct {
...@@ -313,6 +318,7 @@ test "tuple type with void field" {...@@ -313,6 +318,7 @@ test "tuple type with void field" {
313 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO318 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
314 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO319 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
315 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO320 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
321 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
316322
317 const T = std.meta.Tuple(&[_]type{void});323 const T = std.meta.Tuple(&[_]type{void});
318 const x = T{{}};324 const x = T{{}};
...@@ -349,6 +355,7 @@ test "zero sized struct in tuple handled correctly" {...@@ -349,6 +355,7 @@ test "zero sized struct in tuple handled correctly" {
349test "tuple type with void field and a runtime field" {355test "tuple type with void field and a runtime field" {
350 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO356 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
351 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO357 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
358 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
352359
353 const T = std.meta.Tuple(&[_]type{ usize, void });360 const T = std.meta.Tuple(&[_]type{ usize, void });
354 var t: T = .{ 5, {} };361 var t: T = .{ 5, {} };
...@@ -376,6 +383,7 @@ test "tuple initialized with a runtime known value" {...@@ -376,6 +383,7 @@ test "tuple initialized with a runtime known value" {
376 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest;383 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest;
377 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO384 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
378 if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest;385 if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest;
386 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
379387
380 const E = union(enum) { e: []const u8 };388 const E = union(enum) { e: []const u8 };
381 const W = union(enum) { w: E };389 const W = union(enum) { w: E };
...@@ -391,6 +399,7 @@ test "tuple of struct concatenation and coercion to array" {...@@ -391,6 +399,7 @@ test "tuple of struct concatenation and coercion to array" {
391 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO399 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
392 if (builtin.zig_backend == .stage2_x86_64 and builtin.target.ofmt != .elf and builtin.target.ofmt != .macho) return error.SkipZigTest;400 if (builtin.zig_backend == .stage2_x86_64 and builtin.target.ofmt != .elf and builtin.target.ofmt != .macho) return error.SkipZigTest;
393 if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest;401 if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest;
402 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
394403
395 const StructWithDefault = struct { value: f32 = 42 };404 const StructWithDefault = struct { value: f32 = 42 };
396 const SomeStruct = struct { array: [4]StructWithDefault };405 const SomeStruct = struct { array: [4]StructWithDefault };
...@@ -405,6 +414,7 @@ test "nested runtime conditionals in tuple initializer" {...@@ -405,6 +414,7 @@ test "nested runtime conditionals in tuple initializer" {
405 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO414 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
406 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO415 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
407 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO416 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
417 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
408418
409 var data: u8 = 0;419 var data: u8 = 0;
410 _ = &data;420 _ = &data;
...@@ -440,6 +450,7 @@ test "tuple pointer is indexable" {...@@ -440,6 +450,7 @@ test "tuple pointer is indexable" {
440 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO450 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
441 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO451 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
442 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO452 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
453 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
443454
444 const S = struct { u32, bool };455 const S = struct { u32, bool };
445456
...@@ -498,6 +509,7 @@ test "tuple with runtime value coerced into a slice with a sentinel" {...@@ -498,6 +509,7 @@ test "tuple with runtime value coerced into a slice with a sentinel" {
498 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO509 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
499 if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest; // TODO510 if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest; // TODO
500 if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest;511 if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest;
512 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
501513
502 const S = struct {514 const S = struct {
503 fn f(a: [:null]const ?u8) !void {515 fn f(a: [:null]const ?u8) !void {
...@@ -569,8 +581,8 @@ test "comptime fields in tuple can be initialized" {...@@ -569,8 +581,8 @@ test "comptime fields in tuple can be initialized" {
569test "empty struct in tuple" {581test "empty struct in tuple" {
570 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO582 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
571 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO583 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
572 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
573 if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest;584 if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest;
585 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
574586
575 const T = struct { struct {} };587 const T = struct { struct {} };
576 const info = @typeInfo(T);588 const info = @typeInfo(T);
...@@ -582,8 +594,8 @@ test "empty struct in tuple" {...@@ -582,8 +594,8 @@ test "empty struct in tuple" {
582test "empty union in tuple" {594test "empty union in tuple" {
583 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO595 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
584 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO596 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
585 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
586 if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest;597 if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest;
598 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
587599
588 const T = struct { union {} };600 const T = struct { union {} };
589 const info = @typeInfo(T);601 const info = @typeInfo(T);
test/behavior/tuple_declarations.zig+2
...@@ -7,6 +7,7 @@ const expectEqualStrings = testing.expectEqualStrings;...@@ -7,6 +7,7 @@ const expectEqualStrings = testing.expectEqualStrings;
7test "tuple declaration type info" {7test "tuple declaration type info" {
8 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;8 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;
9 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest;9 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest;
10 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
1011
11 {12 {
12 const T = struct { comptime u32 = 1, []const u8 };13 const T = struct { comptime u32 = 1, []const u8 };
...@@ -35,6 +36,7 @@ test "tuple declaration type info" {...@@ -35,6 +36,7 @@ test "tuple declaration type info" {
35test "tuple declaration usage" {36test "tuple declaration usage" {
36 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;37 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;
37 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest;38 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest;
39 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
3840
39 const T = struct { u32, []const u8 };41 const T = struct { u32, []const u8 };
40 var t: T = .{ 1, "foo" };42 var t: T = .{ 1, "foo" };
test/behavior/type.zig+3
...@@ -203,6 +203,7 @@ test "Type.Opaque" {...@@ -203,6 +203,7 @@ test "Type.Opaque" {
203 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO203 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
204 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO204 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
205 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO205 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
206 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
206207
207 const Opaque = @Type(.{208 const Opaque = @Type(.{
208 .@"opaque" = .{209 .@"opaque" = .{
...@@ -260,6 +261,7 @@ test "Type.Struct" {...@@ -260,6 +261,7 @@ test "Type.Struct" {
260 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO261 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
261 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO262 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
262 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO263 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
264 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
263265
264 const A = @Type(@typeInfo(struct { x: u8, y: u32 }));266 const A = @Type(@typeInfo(struct { x: u8, y: u32 }));
265 const infoA = @typeInfo(A).@"struct";267 const infoA = @typeInfo(A).@"struct";
...@@ -347,6 +349,7 @@ test "Type.Struct" {...@@ -347,6 +349,7 @@ test "Type.Struct" {
347test "Type.Enum" {349test "Type.Enum" {
348 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO350 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
349 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO351 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
352 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
350353
351 const Foo = @Type(.{354 const Foo = @Type(.{
352 .@"enum" = .{355 .@"enum" = .{
test/behavior/type_info.zig+13
...@@ -161,6 +161,7 @@ test "type info: error set, error union info, anyerror" {...@@ -161,6 +161,7 @@ test "type info: error set, error union info, anyerror" {
161 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;161 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;
162 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO162 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
163 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO163 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
164 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
164165
165 try testErrorSet();166 try testErrorSet();
166 try comptime testErrorSet();167 try comptime testErrorSet();
...@@ -192,6 +193,7 @@ test "type info: error set single value" {...@@ -192,6 +193,7 @@ test "type info: error set single value" {
192 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;193 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;
193 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO194 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
194 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO195 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
196 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
195197
196 const TestSet = error.One;198 const TestSet = error.One;
197199
...@@ -205,6 +207,7 @@ test "type info: error set merged" {...@@ -205,6 +207,7 @@ test "type info: error set merged" {
205 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;207 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;
206 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO208 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
207 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO209 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
210 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
208211
209 const TestSet = error{ One, Two } || error{Three};212 const TestSet = error{ One, Two } || error{Three};
210213
...@@ -220,6 +223,7 @@ test "type info: enum info" {...@@ -220,6 +223,7 @@ test "type info: enum info" {
220 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest;223 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest;
221 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;224 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;
222 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO225 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
226 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
223227
224 try testEnum();228 try testEnum();
225 try comptime testEnum();229 try comptime testEnum();
...@@ -282,6 +286,7 @@ fn testUnion() !void {...@@ -282,6 +286,7 @@ fn testUnion() !void {
282286
283test "type info: struct info" {287test "type info: struct info" {
284 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO288 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
289 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
285290
286 try testStruct();291 try testStruct();
287 try comptime testStruct();292 try comptime testStruct();
...@@ -551,6 +556,7 @@ test "type info for async frames" {...@@ -551,6 +556,7 @@ test "type info for async frames" {
551556
552test "Declarations are returned in declaration order" {557test "Declarations are returned in declaration order" {
553 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO558 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
559 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
554560
555 const S = struct {561 const S = struct {
556 pub const a = 1;562 pub const a = 1;
...@@ -572,6 +578,8 @@ test "Struct.is_tuple for anon list literal" {...@@ -572,6 +578,8 @@ test "Struct.is_tuple for anon list literal" {
572}578}
573579
574test "Struct.is_tuple for anon struct literal" {580test "Struct.is_tuple for anon struct literal" {
581 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
582
575 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO583 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
576584
577 const info = @typeInfo(@TypeOf(.{ .a = 0 }));585 const info = @typeInfo(@TypeOf(.{ .a = 0 }));
...@@ -586,6 +594,8 @@ test "StructField.is_comptime" {...@@ -586,6 +594,8 @@ test "StructField.is_comptime" {
586}594}
587595
588test "typeInfo resolves usingnamespace declarations" {596test "typeInfo resolves usingnamespace declarations" {
597 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
598
589 const A = struct {599 const A = struct {
590 pub const f1 = 42;600 pub const f1 = 42;
591 };601 };
...@@ -611,6 +621,7 @@ test "value from struct @typeInfo default_value_ptr can be loaded at comptime" {...@@ -611,6 +621,7 @@ test "value from struct @typeInfo default_value_ptr can be loaded at comptime" {
611test "@typeInfo decls and usingnamespace" {621test "@typeInfo decls and usingnamespace" {
612 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO622 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
613 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO623 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
624 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
614625
615 const A = struct {626 const A = struct {
616 pub const x = 5;627 pub const x = 5;
...@@ -651,6 +662,8 @@ test "type info of tuple of string literal default value" {...@@ -651,6 +662,8 @@ test "type info of tuple of string literal default value" {
651}662}
652663
653test "@typeInfo only contains pub decls" {664test "@typeInfo only contains pub decls" {
665 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
666
654 const other = struct {667 const other = struct {
655 const std = @import("std");668 const std = @import("std");
656669
test/behavior/typename.zig+2
...@@ -67,6 +67,7 @@ test "basic" {...@@ -67,6 +67,7 @@ test "basic" {
67 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO67 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
68 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO68 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
69 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO69 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
70 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
7071
71 try expectEqualStrings("i64", @typeName(i64));72 try expectEqualStrings("i64", @typeName(i64));
72 try expectEqualStrings("*usize", @typeName(*usize));73 try expectEqualStrings("*usize", @typeName(*usize));
...@@ -237,6 +238,7 @@ test "comptime parameters not converted to anytype in function type" {...@@ -237,6 +238,7 @@ test "comptime parameters not converted to anytype in function type" {
237 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO238 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
238 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO239 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
239 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO240 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
241 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
240242
241 const T = fn (comptime fn (comptime type) void, void) void;243 const T = fn (comptime fn (comptime type) void, void) void;
242 try expectEqualStrings("fn (comptime fn (comptime type) void, void) void", @typeName(T));244 try expectEqualStrings("fn (comptime fn (comptime type) void, void) void", @typeName(T));
test/behavior/undefined.zig+2
...@@ -79,6 +79,7 @@ test "assign undefined to struct with method" {...@@ -79,6 +79,7 @@ test "assign undefined to struct with method" {
79}79}
8080
81test "type name of undefined" {81test "type name of undefined" {
82 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
82 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO83 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
8384
84 const x = undefined;85 const x = undefined;
...@@ -91,6 +92,7 @@ test "reslice of undefined global var slice" {...@@ -91,6 +92,7 @@ test "reslice of undefined global var slice" {
91 if (builtin.zig_backend == .stage2_x86) return error.SkipZigTest; // TODO92 if (builtin.zig_backend == .stage2_x86) return error.SkipZigTest; // TODO
92 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO93 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
93 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO94 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
95 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
9496
95 var stack_buf: [100]u8 = [_]u8{0} ** 100;97 var stack_buf: [100]u8 = [_]u8{0} ** 100;
96 buf = &stack_buf;98 buf = &stack_buf;
test/behavior/union.zig+21-1
...@@ -16,6 +16,7 @@ test "basic unions with floats" {...@@ -16,6 +16,7 @@ test "basic unions with floats" {
16 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;16 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;
17 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO17 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
18 if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest;18 if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest;
19 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
1920
20 var foo = FooWithFloats{ .int = 1 };21 var foo = FooWithFloats{ .int = 1 };
21 try expect(foo.int == 1);22 try expect(foo.int == 1);
...@@ -43,6 +44,7 @@ test "basic unions" {...@@ -43,6 +44,7 @@ test "basic unions" {
43 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;44 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;
44 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO45 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
45 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO46 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
47 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
4648
47 var foo = Foo{ .int = 1 };49 var foo = Foo{ .int = 1 };
48 try expect(foo.int == 1);50 try expect(foo.int == 1);
...@@ -62,6 +64,7 @@ test "init union with runtime value" {...@@ -62,6 +64,7 @@ test "init union with runtime value" {
62 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;64 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;
63 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO65 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
64 if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest;66 if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest;
67 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
6568
66 var foo: Foo = undefined;69 var foo: Foo = undefined;
6770
...@@ -100,6 +103,7 @@ const FooExtern = extern union {...@@ -100,6 +103,7 @@ const FooExtern = extern union {
100test "basic extern unions" {103test "basic extern unions" {
101 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;104 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;
102 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO105 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
106 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
103107
104 var foo = FooExtern{ .int = 1 };108 var foo = FooExtern{ .int = 1 };
105 try expect(foo.int == 1);109 try expect(foo.int == 1);
...@@ -210,6 +214,7 @@ test "union with specified enum tag" {...@@ -210,6 +214,7 @@ test "union with specified enum tag" {
210 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;214 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;
211 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO215 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
212 if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest;216 if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest;
217 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
213218
214 try doTest();219 try doTest();
215 try comptime doTest();220 try comptime doTest();
...@@ -261,6 +266,7 @@ test "comparison between union and enum literal" {...@@ -261,6 +266,7 @@ test "comparison between union and enum literal" {
261 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest;266 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest;
262 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;267 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;
263 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO268 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
269 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
264270
265 try testComparison();271 try testComparison();
266 try comptime testComparison();272 try comptime testComparison();
...@@ -334,6 +340,7 @@ test "constant packed union" {...@@ -334,6 +340,7 @@ test "constant packed union" {
334 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest;340 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest;
335 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;341 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;
336 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO342 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
343 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
337344
338 try testConstPackedUnion(&[_]PackThis{PackThis{ .StringLiteral = 1 }});345 try testConstPackedUnion(&[_]PackThis{PackThis{ .StringLiteral = 1 }});
339}346}
...@@ -483,6 +490,7 @@ test "initialize global array of union" {...@@ -483,6 +490,7 @@ test "initialize global array of union" {
483 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest;490 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest;
484 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;491 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;
485 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO492 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
493 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
486494
487 glbl_array[1] = FooUnion{ .U1 = 2 };495 glbl_array[1] = FooUnion{ .U1 = 2 };
488 glbl_array[0] = FooUnion{ .U0 = 1 };496 glbl_array[0] = FooUnion{ .U0 = 1 };
...@@ -522,6 +530,7 @@ test "union initializer generates padding only if needed" {...@@ -522,6 +530,7 @@ test "union initializer generates padding only if needed" {
522test "runtime tag name with single field" {530test "runtime tag name with single field" {
523 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;531 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;
524 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO532 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
533 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
525534
526 const U = union(enum) {535 const U = union(enum) {
527 A: i32,536 A: i32,
...@@ -599,6 +608,7 @@ test "tagged union as return value" {...@@ -599,6 +608,7 @@ test "tagged union as return value" {
599 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;608 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;
600 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO609 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
601 if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest;610 if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest;
611 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
602612
603 switch (returnAnInt(13)) {613 switch (returnAnInt(13)) {
604 TaggedFoo.One => |value| try expect(value == 13),614 TaggedFoo.One => |value| try expect(value == 13),
...@@ -642,6 +652,7 @@ test "union(enum(u32)) with specified and unspecified tag values" {...@@ -642,6 +652,7 @@ test "union(enum(u32)) with specified and unspecified tag values" {
642 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest;652 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest;
643 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;653 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;
644 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO654 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
655 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
645656
646 comptime assert(Tag(Tag(MultipleChoice2)) == u32);657 comptime assert(Tag(Tag(MultipleChoice2)) == u32);
647 try testEnumWithSpecifiedAndUnspecifiedTagValues(MultipleChoice2{ .C = 123 });658 try testEnumWithSpecifiedAndUnspecifiedTagValues(MultipleChoice2{ .C = 123 });
...@@ -928,6 +939,7 @@ test "anonymous union literal syntax" {...@@ -928,6 +939,7 @@ test "anonymous union literal syntax" {
928 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO939 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
929 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO940 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
930 if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest;941 if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest;
942 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
931943
932 const S = struct {944 const S = struct {
933 const Number = union {945 const Number = union {
...@@ -1048,7 +1060,6 @@ test "@unionInit on union with tag but no fields" {...@@ -1048,7 +1060,6 @@ test "@unionInit on union with tag but no fields" {
1048 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO1060 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
1049 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO1061 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
1050 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO1062 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
1051 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
10521063
1053 const S = struct {1064 const S = struct {
1054 const Type = enum(u8) { no_op = 105 };1065 const Type = enum(u8) { no_op = 105 };
...@@ -1098,6 +1109,7 @@ test "global variable struct contains union initialized to non-most-aligned fiel...@@ -1098,6 +1109,7 @@ test "global variable struct contains union initialized to non-most-aligned fiel
1098 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO1109 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
1099 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO1110 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
1100 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO1111 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
1112 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
11011113
1102 const T = struct {1114 const T = struct {
1103 const U = union(enum) {1115 const U = union(enum) {
...@@ -1330,6 +1342,7 @@ test "union field ptr - zero sized payload" {...@@ -1330,6 +1342,7 @@ test "union field ptr - zero sized payload" {
1330 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO1342 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
1331 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO1343 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
1332 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO1344 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
1345 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
13331346
1334 const U = union {1347 const U = union {
1335 foo: void,1348 foo: void,
...@@ -1344,6 +1357,7 @@ test "union field ptr - zero sized field" {...@@ -1344,6 +1357,7 @@ test "union field ptr - zero sized field" {
1344 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO1357 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
1345 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO1358 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
1346 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO1359 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
1360 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
13471361
1348 const U = union {1362 const U = union {
1349 foo: void,1363 foo: void,
...@@ -1998,6 +2012,7 @@ test "store of comptime reinterpreted memory to packed union" {...@@ -1998,6 +2012,7 @@ test "store of comptime reinterpreted memory to packed union" {
1998test "union field is a pointer to an aligned version of itself" {2012test "union field is a pointer to an aligned version of itself" {
1999 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO2013 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
2000 if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest;2014 if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest;
2015 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
20012016
2002 const E = union {2017 const E = union {
2003 next: *align(1) @This(),2018 next: *align(1) @This(),
...@@ -2010,6 +2025,7 @@ test "union field is a pointer to an aligned version of itself" {...@@ -2010,6 +2025,7 @@ test "union field is a pointer to an aligned version of itself" {
20102025
2011test "pass register-sized field as non-register-sized union" {2026test "pass register-sized field as non-register-sized union" {
2012 if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest;2027 if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest;
2028 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
20132029
2014 const S = struct {2030 const S = struct {
2015 fn taggedUnion(u: union(enum) { x: usize, y: [2]usize }) !void {2031 fn taggedUnion(u: union(enum) { x: usize, y: [2]usize }) !void {
...@@ -2057,6 +2073,7 @@ test "circular dependency through pointer field of a union" {...@@ -2057,6 +2073,7 @@ test "circular dependency through pointer field of a union" {
20572073
2058test "pass nested union with rls" {2074test "pass nested union with rls" {
2059 if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest;2075 if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest;
2076 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
20602077
2061 const Union = union(enum) {2078 const Union = union(enum) {
2062 a: u32,2079 a: u32,
...@@ -2105,6 +2122,7 @@ test "copied union field doesn't alias source" {...@@ -2105,6 +2122,7 @@ test "copied union field doesn't alias source" {
2105 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO2122 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
2106 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO2123 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
2107 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO2124 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
2125 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
21082126
2109 const U = union(enum) {2127 const U = union(enum) {
2110 array: [10]u32,2128 array: [10]u32,
...@@ -2305,6 +2323,8 @@ test "extern union @FieldType" {...@@ -2305,6 +2323,8 @@ test "extern union @FieldType" {
2305}2323}
23062324
2307test "assign global tagged union" {2325test "assign global tagged union" {
2326 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
2327
2308 const U = union(enum) {2328 const U = union(enum) {
2309 a: u16,2329 a: u16,
2310 b: u32,2330 b: u32,
test/behavior/usingnamespace.zig+8
...@@ -12,6 +12,7 @@ const C = struct {...@@ -12,6 +12,7 @@ const C = struct {
1212
13test "basic usingnamespace" {13test "basic usingnamespace" {
14 if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest;14 if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest;
15 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
1516
16 try std.testing.expect(C.B == bool);17 try std.testing.expect(C.B == bool);
17}18}
...@@ -24,6 +25,7 @@ fn Foo(comptime T: type) type {...@@ -24,6 +25,7 @@ fn Foo(comptime T: type) type {
2425
25test "usingnamespace inside a generic struct" {26test "usingnamespace inside a generic struct" {
26 if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest;27 if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest;
28 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
2729
28 const std2 = Foo(std);30 const std2 = Foo(std);
29 const testing2 = Foo(std.testing);31 const testing2 = Foo(std.testing);
...@@ -37,6 +39,7 @@ usingnamespace struct {...@@ -37,6 +39,7 @@ usingnamespace struct {
3739
38test "usingnamespace does not redeclare an imported variable" {40test "usingnamespace does not redeclare an imported variable" {
39 if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest;41 if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest;
42 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
4043
41 try comptime std.testing.expect(@This().foo == 42);44 try comptime std.testing.expect(@This().foo == 42);
42}45}
...@@ -46,6 +49,7 @@ test "usingnamespace omits mixing in private functions" {...@@ -46,6 +49,7 @@ test "usingnamespace omits mixing in private functions" {
46 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;49 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;
47 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO50 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
48 if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest;51 if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest;
52 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
4953
50 try expect(@This().privateFunction());54 try expect(@This().privateFunction());
51 try expect(!@This().printText());55 try expect(!@This().printText());
...@@ -56,6 +60,7 @@ fn privateFunction() bool {...@@ -56,6 +60,7 @@ fn privateFunction() bool {
5660
57test {61test {
58 if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest;62 if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest;
63 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
5964
60 _ = @import("usingnamespace/import_segregation.zig");65 _ = @import("usingnamespace/import_segregation.zig");
61}66}
...@@ -65,6 +70,7 @@ test "two files usingnamespace import each other" {...@@ -65,6 +70,7 @@ test "two files usingnamespace import each other" {
65 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;70 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;
66 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO71 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
67 if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest;72 if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest;
73 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
6874
69 try expect(@This().ok());75 try expect(@This().ok());
70}76}
...@@ -73,6 +79,7 @@ test {...@@ -73,6 +79,7 @@ test {
73 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO79 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
74 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO80 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
75 if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest;81 if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest;
82 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
7683
77 const AA = struct {84 const AA = struct {
78 x: i32,85 x: i32,
...@@ -102,6 +109,7 @@ const Mixin = struct {...@@ -102,6 +109,7 @@ const Mixin = struct {
102109
103test "container member access usingnamespace decls" {110test "container member access usingnamespace decls" {
104 if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest;111 if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest;
112 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
105113
106 var foo = Bar{};114 var foo = Bar{};
107 foo.two();115 foo.two();
test/behavior/var_args.zig+1-1
...@@ -192,8 +192,8 @@ test "variadic functions" {...@@ -192,8 +192,8 @@ test "variadic functions" {
192 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO192 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
193 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO193 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
194 if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest; // TODO194 if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest; // TODO
195 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
196 if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest;195 if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest;
196 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
197 if (builtin.os.tag != .macos and builtin.cpu.arch.isAARCH64()) {197 if (builtin.os.tag != .macos and builtin.cpu.arch.isAARCH64()) {
198 // https://github.com/ziglang/zig/issues/14096198 // https://github.com/ziglang/zig/issues/14096
199 return error.SkipZigTest;199 return error.SkipZigTest;
test/behavior/vector.zig+22-1
...@@ -11,6 +11,7 @@ test "implicit cast vector to array - bool" {...@@ -11,6 +11,7 @@ test "implicit cast vector to array - bool" {
11 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO11 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
12 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO12 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
13 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO13 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
14 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
1415
15 const S = struct {16 const S = struct {
16 fn doTheTest() !void {17 fn doTheTest() !void {
...@@ -29,6 +30,7 @@ test "vector wrap operators" {...@@ -29,6 +30,7 @@ test "vector wrap operators" {
29 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO30 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
30 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO31 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
31 if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest;32 if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest;
33 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
32 if (builtin.zig_backend == .stage2_x86_64 and34 if (builtin.zig_backend == .stage2_x86_64 and
33 !comptime std.Target.x86.featureSetHas(builtin.cpu.features, .sse4_1)) return error.SkipZigTest;35 !comptime std.Target.x86.featureSetHas(builtin.cpu.features, .sse4_1)) return error.SkipZigTest;
3436
...@@ -54,6 +56,7 @@ test "vector bin compares with mem.eql" {...@@ -54,6 +56,7 @@ test "vector bin compares with mem.eql" {
54 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO56 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
55 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO57 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
56 if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest;58 if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest;
59 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
5760
58 const S = struct {61 const S = struct {
59 fn doTheTest() !void {62 fn doTheTest() !void {
...@@ -79,6 +82,7 @@ test "vector int operators" {...@@ -79,6 +82,7 @@ test "vector int operators" {
79 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO82 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
80 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO83 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
81 if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest;84 if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest;
85 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
8286
83 const S = struct {87 const S = struct {
84 fn doTheTest() !void {88 fn doTheTest() !void {
...@@ -149,6 +153,7 @@ test "vector bit operators" {...@@ -149,6 +153,7 @@ test "vector bit operators" {
149 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO153 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
150 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO154 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
151 if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest;155 if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest;
156 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
152157
153 const S = struct {158 const S = struct {
154 fn doTheTest() !void {159 fn doTheTest() !void {
...@@ -169,6 +174,7 @@ test "implicit cast vector to array" {...@@ -169,6 +174,7 @@ test "implicit cast vector to array" {
169 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO174 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
170 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO175 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
171 if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest;176 if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest;
177 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
172178
173 const S = struct {179 const S = struct {
174 fn doTheTest() !void {180 fn doTheTest() !void {
...@@ -187,6 +193,7 @@ test "array to vector" {...@@ -187,6 +193,7 @@ test "array to vector" {
187 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO193 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
188 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO194 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
189 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO195 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
196 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
190197
191 const S = struct {198 const S = struct {
192 fn doTheTest() !void {199 fn doTheTest() !void {
...@@ -245,6 +252,7 @@ test "array to vector with element type coercion" {...@@ -245,6 +252,7 @@ test "array to vector with element type coercion" {
245 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO252 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
246 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO253 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
247 if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest; // TODO254 if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest; // TODO
255 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
248 if (builtin.zig_backend == .stage2_x86_64 and builtin.target.ofmt != .elf and builtin.target.ofmt != .macho) return error.SkipZigTest;256 if (builtin.zig_backend == .stage2_x86_64 and builtin.target.ofmt != .elf and builtin.target.ofmt != .macho) return error.SkipZigTest;
249 if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest;257 if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest;
250258
...@@ -287,7 +295,6 @@ test "tuple to vector" {...@@ -287,7 +295,6 @@ test "tuple to vector" {
287 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO295 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
288 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO296 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
289 if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest;297 if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest;
290 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
291298
292 const S = struct {299 const S = struct {
293 fn doTheTest() !void {300 fn doTheTest() !void {
...@@ -311,6 +318,7 @@ test "vector casts of sizes not divisible by 8" {...@@ -311,6 +318,7 @@ test "vector casts of sizes not divisible by 8" {
311 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO318 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
312 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO319 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
313 if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest;320 if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest;
321 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
314322
315 const S = struct {323 const S = struct {
316 fn doTheTest() !void {324 fn doTheTest() !void {
...@@ -350,6 +358,7 @@ test "vector @splat" {...@@ -350,6 +358,7 @@ test "vector @splat" {
350 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO358 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
351 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO359 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
352 if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest;360 if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest;
361 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
353362
354 if (builtin.zig_backend == .stage2_llvm and363 if (builtin.zig_backend == .stage2_llvm and
355 builtin.os.tag == .macos)364 builtin.os.tag == .macos)
...@@ -511,6 +520,7 @@ test "vector comparison operators" {...@@ -511,6 +520,7 @@ test "vector comparison operators" {
511 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO520 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
512 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO521 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
513 if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest;522 if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest;
523 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
514524
515 const S = struct {525 const S = struct {
516 fn doTheTest() !void {526 fn doTheTest() !void {
...@@ -557,6 +567,7 @@ test "vector division operators" {...@@ -557,6 +567,7 @@ test "vector division operators" {
557 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO567 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
558 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO568 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
559 if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest;569 if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest;
570 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
560571
561 const S = struct {572 const S = struct {
562 fn doTheTestDiv(comptime T: type, x: @Vector(4, T), y: @Vector(4, T)) !void {573 fn doTheTestDiv(comptime T: type, x: @Vector(4, T), y: @Vector(4, T)) !void {
...@@ -644,6 +655,7 @@ test "vector division operators" {...@@ -644,6 +655,7 @@ test "vector division operators" {
644655
645test "vector bitwise not operator" {656test "vector bitwise not operator" {
646 if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest; // TODO657 if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest; // TODO
658 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
647 if (builtin.zig_backend == .stage2_x86_64 and builtin.target.ofmt != .elf and builtin.target.ofmt != .macho) return error.SkipZigTest;659 if (builtin.zig_backend == .stage2_x86_64 and builtin.target.ofmt != .elf and builtin.target.ofmt != .macho) return error.SkipZigTest;
648 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO660 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
649 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO661 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
...@@ -681,6 +693,7 @@ test "vector shift operators" {...@@ -681,6 +693,7 @@ test "vector shift operators" {
681 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO693 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
682 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO694 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
683 if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest;695 if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest;
696 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
684697
685 const S = struct {698 const S = struct {
686 fn doTheTestShift(x: anytype, y: anytype) !void {699 fn doTheTestShift(x: anytype, y: anytype) !void {
...@@ -1038,6 +1051,7 @@ test "multiplication-assignment operator with an array operand" {...@@ -1038,6 +1051,7 @@ test "multiplication-assignment operator with an array operand" {
1038 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO1051 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
1039 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO1052 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
1040 if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest;1053 if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest;
1054 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
10411055
1042 const S = struct {1056 const S = struct {
1043 fn doTheTest() !void {1057 fn doTheTest() !void {
...@@ -1059,6 +1073,7 @@ test "@addWithOverflow" {...@@ -1059,6 +1073,7 @@ test "@addWithOverflow" {
1059 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO1073 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
1060 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO1074 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
1061 if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest;1075 if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest;
1076 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
1062 if (builtin.cpu.arch == .aarch64_be and builtin.zig_backend == .stage2_llvm) return error.SkipZigTest;1077 if (builtin.cpu.arch == .aarch64_be and builtin.zig_backend == .stage2_llvm) return error.SkipZigTest;
10631078
1064 const S = struct {1079 const S = struct {
...@@ -1109,6 +1124,7 @@ test "@subWithOverflow" {...@@ -1109,6 +1124,7 @@ test "@subWithOverflow" {
1109 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO1124 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
1110 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO1125 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
1111 if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest;1126 if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest;
1127 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
1112 if (builtin.cpu.arch == .aarch64_be and builtin.zig_backend == .stage2_llvm) return error.SkipZigTest;1128 if (builtin.cpu.arch == .aarch64_be and builtin.zig_backend == .stage2_llvm) return error.SkipZigTest;
11131129
1114 const S = struct {1130 const S = struct {
...@@ -1211,6 +1227,7 @@ test "loading the second vector from a slice of vectors" {...@@ -1211,6 +1227,7 @@ test "loading the second vector from a slice of vectors" {
1211 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO1227 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
1212 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO1228 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
1213 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO1229 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
1230 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
12141231
1215 @setRuntimeSafety(false);1232 @setRuntimeSafety(false);
1216 var small_bases = [2]@Vector(2, u8){1233 var small_bases = [2]@Vector(2, u8){
...@@ -1227,6 +1244,7 @@ test "array of vectors is copied" {...@@ -1227,6 +1244,7 @@ test "array of vectors is copied" {
1227 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO1244 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
1228 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO1245 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
1229 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO1246 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
1247 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
12301248
1231 const Vec3 = @Vector(3, i32);1249 const Vec3 = @Vector(3, i32);
1232 var points = [_]Vec3{1250 var points = [_]Vec3{
...@@ -1392,6 +1410,7 @@ test "store to vector in slice" {...@@ -1392,6 +1410,7 @@ test "store to vector in slice" {
1392 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO1410 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
1393 if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest; // TODO1411 if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest; // TODO
1394 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO1412 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
1413 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
1395 if (builtin.zig_backend == .stage2_x86_64 and builtin.target.ofmt != .elf and builtin.target.ofmt != .macho) return error.SkipZigTest;1414 if (builtin.zig_backend == .stage2_x86_64 and builtin.target.ofmt != .elf and builtin.target.ofmt != .macho) return error.SkipZigTest;
13961415
1397 var v = [_]@Vector(3, f32){1416 var v = [_]@Vector(3, f32){
...@@ -1508,6 +1527,7 @@ test "bitcast to vector with different child type" {...@@ -1508,6 +1527,7 @@ test "bitcast to vector with different child type" {
1508 if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest; // TODO1527 if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest; // TODO
1509 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO1528 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
1510 if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest;1529 if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest;
1530 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
15111531
1512 const S = struct {1532 const S = struct {
1513 fn doTheTest() !void {1533 fn doTheTest() !void {
...@@ -1565,6 +1585,7 @@ test "@reduce on bool vector" {...@@ -1565,6 +1585,7 @@ test "@reduce on bool vector" {
1565test "bitcast vector to array of smaller vectors" {1585test "bitcast vector to array of smaller vectors" {
1566 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO1586 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
1567 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO1587 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
1588 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
15681589
1569 const u8x32 = @Vector(32, u8);1590 const u8x32 = @Vector(32, u8);
1570 const u8x64 = @Vector(64, u8);1591 const u8x64 = @Vector(64, u8);
test/behavior/void.zig+1
...@@ -21,6 +21,7 @@ test "compare void with void compile time known" {...@@ -21,6 +21,7 @@ test "compare void with void compile time known" {
21test "iterate over a void slice" {21test "iterate over a void slice" {
22 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO22 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
23 if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest;23 if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest;
24 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
2425
25 var j: usize = 0;26 var j: usize = 0;
26 for (times(10), 0..) |_, i| {27 for (times(10), 0..) |_, i| {
test/behavior/while.zig+4
...@@ -38,6 +38,8 @@ fn staticWhileLoop2() i32 {...@@ -38,6 +38,8 @@ fn staticWhileLoop2() i32 {
38}38}
3939
40test "while with continue expression" {40test "while with continue expression" {
41 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
42
41 var sum: i32 = 0;43 var sum: i32 = 0;
42 {44 {
43 var i: i32 = 0;45 var i: i32 = 0;
...@@ -158,6 +160,7 @@ test "while with optional as condition with else" {...@@ -158,6 +160,7 @@ test "while with optional as condition with else" {
158 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest;160 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest;
159 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO161 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
160 if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest;162 if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest;
163 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
161164
162 numbers_left = 10;165 numbers_left = 10;
163 var sum: i32 = 0;166 var sum: i32 = 0;
...@@ -175,6 +178,7 @@ test "while with optional as condition with else" {...@@ -175,6 +178,7 @@ test "while with optional as condition with else" {
175test "while with error union condition" {178test "while with error union condition" {
176 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO179 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
177 if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest;180 if (builtin.zig_backend == .stage2_riscv64) return error.SkipZigTest;
181 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
178182
179 numbers_left = 10;183 numbers_left = 10;
180 var sum: i32 = 0;184 var sum: i32 = 0;