| ... | @@ -10,6 +10,7 @@ top_level_field: i32, | ... | @@ -10,6 +10,7 @@ top_level_field: i32, |
| 10 | | 10 | |
| 11 | test "top level fields" { | 11 | test "top level fields" { |
| 12 | if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; | 12 | if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; |
| | 13 | if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO |
| 13 | | 14 | |
| 14 | var instance = @This(){ | 15 | var instance = @This(){ |
| 15 | .top_level_field = 1234, | 16 | .top_level_field = 1234, |
| ... | @@ -85,6 +86,7 @@ const StructFoo = struct { | ... | @@ -85,6 +86,7 @@ const StructFoo = struct { |
| 85 | test "structs" { | 86 | test "structs" { |
| 86 | if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; | 87 | if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; |
| 87 | if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; | 88 | if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; |
| | 89 | if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO |
| 88 | | 90 | |
| 89 | var foo: StructFoo = undefined; | 91 | var foo: StructFoo = undefined; |
| 90 | @memset(@ptrCast([*]u8, &foo), 0, @sizeOf(StructFoo)); | 92 | @memset(@ptrCast([*]u8, &foo), 0, @sizeOf(StructFoo)); |
| ... | @@ -103,6 +105,7 @@ fn testMutation(foo: *StructFoo) void { | ... | @@ -103,6 +105,7 @@ fn testMutation(foo: *StructFoo) void { |
| 103 | | 105 | |
| 104 | test "struct byval assign" { | 106 | test "struct byval assign" { |
| 105 | if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; | 107 | if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; |
| | 108 | if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO |
| 106 | | 109 | |
| 107 | var foo1: StructFoo = undefined; | 110 | var foo1: StructFoo = undefined; |
| 108 | var foo2: StructFoo = undefined; | 111 | var foo2: StructFoo = undefined; |
| ... | @@ -136,6 +139,7 @@ fn returnEmptyStructInstance() StructWithNoFields { | ... | @@ -136,6 +139,7 @@ fn returnEmptyStructInstance() StructWithNoFields { |
| 136 | | 139 | |
| 137 | test "fn call of struct field" { | 140 | test "fn call of struct field" { |
| 138 | if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; | 141 | if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; |
| | 142 | if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO |
| 139 | | 143 | |
| 140 | const Foo = struct { | 144 | const Foo = struct { |
| 141 | ptr: fn () i32, | 145 | ptr: fn () i32, |
| ... | @@ -191,6 +195,7 @@ const MemberFnRand = struct { | ... | @@ -191,6 +195,7 @@ const MemberFnRand = struct { |
| 191 | | 195 | |
| 192 | test "return struct byval from function" { | 196 | test "return struct byval from function" { |
| 193 | if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; | 197 | if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; |
| | 198 | if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO |
| 194 | | 199 | |
| 195 | const bar = makeBar2(1234, 5678); | 200 | const bar = makeBar2(1234, 5678); |
| 196 | try expect(bar.y == 5678); | 201 | try expect(bar.y == 5678); |
| ... | @@ -238,6 +243,7 @@ test "usingnamespace within struct scope" { | ... | @@ -238,6 +243,7 @@ test "usingnamespace within struct scope" { |
| 238 | | 243 | |
| 239 | test "struct field init with catch" { | 244 | test "struct field init with catch" { |
| 240 | if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; | 245 | if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; |
| | 246 | if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO |
| 241 | | 247 | |
| 242 | const S = struct { | 248 | const S = struct { |
| 243 | fn doTheTest() !void { | 249 | fn doTheTest() !void { |
| ... | @@ -263,6 +269,7 @@ const blah: packed struct { | ... | @@ -263,6 +269,7 @@ const blah: packed struct { |
| 263 | } = undefined; | 269 | } = undefined; |
| 264 | | 270 | |
| 265 | test "bit field alignment" { | 271 | test "bit field alignment" { |
| | 272 | if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO |
| 266 | try expect(@TypeOf(&blah.b) == *align(1:3:1) const u3); | 273 | try expect(@TypeOf(&blah.b) == *align(1:3:1) const u3); |
| 267 | } | 274 | } |
| 268 | | 275 | |
| ... | @@ -278,6 +285,7 @@ const Val = struct { | ... | @@ -278,6 +285,7 @@ const Val = struct { |
| 278 | test "struct point to self" { | 285 | test "struct point to self" { |
| 279 | if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; | 286 | if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; |
| 280 | if (builtin.zig_backend == .stage2_c) return error.SkipZigTest; // TODO | 287 | if (builtin.zig_backend == .stage2_c) return error.SkipZigTest; // TODO |
| | 288 | if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO |
| 281 | | 289 | |
| 282 | var root: Node = undefined; | 290 | var root: Node = undefined; |
| 283 | root.val.x = 1; | 291 | root.val.x = 1; |
| ... | @@ -293,6 +301,7 @@ test "struct point to self" { | ... | @@ -293,6 +301,7 @@ test "struct point to self" { |
| 293 | | 301 | |
| 294 | test "void struct fields" { | 302 | test "void struct fields" { |
| 295 | if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; | 303 | if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; |
| | 304 | if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO |
| 296 | | 305 | |
| 297 | const foo = VoidStructFieldsFoo{ | 306 | const foo = VoidStructFieldsFoo{ |
| 298 | .a = void{}, | 307 | .a = void{}, |
| ... | @@ -311,6 +320,7 @@ const VoidStructFieldsFoo = struct { | ... | @@ -311,6 +320,7 @@ const VoidStructFieldsFoo = struct { |
| 311 | test "return empty struct from fn" { | 320 | test "return empty struct from fn" { |
| 312 | if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; | 321 | if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; |
| 313 | if (builtin.zig_backend == .stage2_c) return error.SkipZigTest; // TODO | 322 | if (builtin.zig_backend == .stage2_c) return error.SkipZigTest; // TODO |
| | 323 | if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO |
| 314 | | 324 | |
| 315 | _ = testReturnEmptyStructFromFn(); | 325 | _ = testReturnEmptyStructFromFn(); |
| 316 | } | 326 | } |
| ... | @@ -322,6 +332,7 @@ fn testReturnEmptyStructFromFn() EmptyStruct2 { | ... | @@ -322,6 +332,7 @@ fn testReturnEmptyStructFromFn() EmptyStruct2 { |
| 322 | test "pass slice of empty struct to fn" { | 332 | test "pass slice of empty struct to fn" { |
| 323 | if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; | 333 | if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; |
| 324 | if (builtin.zig_backend == .stage2_c) return error.SkipZigTest; // TODO | 334 | if (builtin.zig_backend == .stage2_c) return error.SkipZigTest; // TODO |
| | 335 | if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO |
| 325 | | 336 | |
| 326 | try expect(testPassSliceOfEmptyStructToFn(&[_]EmptyStruct2{EmptyStruct2{}}) == 1); | 337 | try expect(testPassSliceOfEmptyStructToFn(&[_]EmptyStruct2{EmptyStruct2{}}) == 1); |
| 327 | } | 338 | } |
| ... | @@ -334,6 +345,7 @@ test "self-referencing struct via array member" { | ... | @@ -334,6 +345,7 @@ test "self-referencing struct via array member" { |
| 334 | if (builtin.zig_backend == .stage2_c) return error.SkipZigTest; // TODO | 345 | if (builtin.zig_backend == .stage2_c) return error.SkipZigTest; // TODO |
| 335 | if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO | 346 | if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO |
| 336 | if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO | 347 | if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO |
| | 348 | if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO |
| 337 | | 349 | |
| 338 | const T = struct { | 350 | const T = struct { |
| 339 | children: [1]*@This(), | 351 | children: [1]*@This(), |
| ... | @@ -359,6 +371,7 @@ const EmptyStruct = struct { | ... | @@ -359,6 +371,7 @@ const EmptyStruct = struct { |
| 359 | test "align 1 field before self referential align 8 field as slice return type" { | 371 | test "align 1 field before self referential align 8 field as slice return type" { |
| 360 | if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; | 372 | if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; |
| 361 | if (builtin.zig_backend == .stage2_c) return error.SkipZigTest; // TODO | 373 | if (builtin.zig_backend == .stage2_c) return error.SkipZigTest; // TODO |
| | 374 | if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO |
| 362 | | 375 | |
| 363 | const result = alloc(Expr); | 376 | const result = alloc(Expr); |
| 364 | try expect(result.len == 0); | 377 | try expect(result.len == 0); |
| ... | @@ -384,6 +397,7 @@ test "packed struct" { | ... | @@ -384,6 +397,7 @@ test "packed struct" { |
| 384 | if (builtin.zig_backend == .stage2_c) return error.SkipZigTest; // TODO | 397 | if (builtin.zig_backend == .stage2_c) return error.SkipZigTest; // TODO |
| 385 | if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO | 398 | if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO |
| 386 | if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO | 399 | if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO |
| | 400 | if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO |
| 387 | | 401 | |
| 388 | var foo = APackedStruct{ | 402 | var foo = APackedStruct{ |
| 389 | .x = 1, | 403 | .x = 1, |
| ... | @@ -412,6 +426,7 @@ test "packed struct 24bits" { | ... | @@ -412,6 +426,7 @@ test "packed struct 24bits" { |
| 412 | if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO | 426 | if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO |
| 413 | if (builtin.cpu.arch == .wasm32) return error.SkipZigTest; // TODO | 427 | if (builtin.cpu.arch == .wasm32) return error.SkipZigTest; // TODO |
| 414 | if (builtin.cpu.arch == .arm) return error.SkipZigTest; // TODO | 428 | if (builtin.cpu.arch == .arm) return error.SkipZigTest; // TODO |
| | 429 | if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO |
| 415 | | 430 | |
| 416 | comptime { | 431 | comptime { |
| 417 | // stage1 gets the wrong answer for sizeof | 432 | // stage1 gets the wrong answer for sizeof |
| ... | @@ -458,6 +473,7 @@ test "runtime struct initialization of bitfield" { | ... | @@ -458,6 +473,7 @@ test "runtime struct initialization of bitfield" { |
| 458 | if (builtin.zig_backend == .stage2_c) return error.SkipZigTest; // TODO | 473 | if (builtin.zig_backend == .stage2_c) return error.SkipZigTest; // TODO |
| 459 | if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO | 474 | if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO |
| 460 | if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO | 475 | if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO |
| | 476 | if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO |
| 461 | | 477 | |
| 462 | const s1 = Nibbles{ | 478 | const s1 = Nibbles{ |
| 463 | .x = x1, | 479 | .x = x1, |
| ... | @@ -502,6 +518,7 @@ test "packed struct fields are ordered from LSB to MSB" { | ... | @@ -502,6 +518,7 @@ test "packed struct fields are ordered from LSB to MSB" { |
| 502 | if (builtin.zig_backend == .stage2_c) return error.SkipZigTest; // TODO | 518 | if (builtin.zig_backend == .stage2_c) return error.SkipZigTest; // TODO |
| 503 | if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO | 519 | if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO |
| 504 | if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO | 520 | if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO |
| | 521 | if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO |
| 505 | | 522 | |
| 506 | var all: u64 = 0x7765443322221111; | 523 | var all: u64 = 0x7765443322221111; |
| 507 | var bytes: [8]u8 = undefined; | 524 | var bytes: [8]u8 = undefined; |
| ... | @@ -523,6 +540,7 @@ test "implicit cast packed struct field to const ptr" { | ... | @@ -523,6 +540,7 @@ test "implicit cast packed struct field to const ptr" { |
| 523 | if (builtin.zig_backend == .stage2_c) return error.SkipZigTest; // TODO | 540 | if (builtin.zig_backend == .stage2_c) return error.SkipZigTest; // TODO |
| 524 | if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO | 541 | if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO |
| 525 | if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO | 542 | if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO |
| | 543 | if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO |
| 526 | | 544 | |
| 527 | const LevelUpMove = packed struct { | 545 | const LevelUpMove = packed struct { |
| 528 | move_id: u9, | 546 | move_id: u9, |
| ... | @@ -543,6 +561,7 @@ test "zero-bit field in packed struct" { | ... | @@ -543,6 +561,7 @@ test "zero-bit field in packed struct" { |
| 543 | if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest; // TODO | 561 | if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest; // TODO |
| 544 | if (builtin.zig_backend == .stage2_c) return error.SkipZigTest; // TODO | 562 | if (builtin.zig_backend == .stage2_c) return error.SkipZigTest; // TODO |
| 545 | if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO | 563 | if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO |
| | 564 | if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO |
| 546 | | 565 | |
| 547 | const S = packed struct { | 566 | const S = packed struct { |
| 548 | x: u10, | 567 | x: u10, |
| ... | @@ -554,6 +573,7 @@ test "zero-bit field in packed struct" { | ... | @@ -554,6 +573,7 @@ test "zero-bit field in packed struct" { |
| 554 | | 573 | |
| 555 | test "packed struct with non-ABI-aligned field" { | 574 | test "packed struct with non-ABI-aligned field" { |
| 556 | if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; | 575 | if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; |
| | 576 | if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO |
| 557 | if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest; // TODO | 577 | if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest; // TODO |
| 558 | if (builtin.zig_backend == .stage2_c) return error.SkipZigTest; // TODO | 578 | if (builtin.zig_backend == .stage2_c) return error.SkipZigTest; // TODO |
| 559 | if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO | 579 | if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO |
| ... | @@ -588,6 +608,7 @@ test "bit field access" { | ... | @@ -588,6 +608,7 @@ test "bit field access" { |
| 588 | if (builtin.zig_backend == .stage2_c) return error.SkipZigTest; // TODO | 608 | if (builtin.zig_backend == .stage2_c) return error.SkipZigTest; // TODO |
| 589 | if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO | 609 | if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO |
| 590 | if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO | 610 | if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO |
| | 611 | if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO |
| 591 | | 612 | |
| 592 | var data = bit_field_1; | 613 | var data = bit_field_1; |
| 593 | try expect(getA(&data) == 1); | 614 | try expect(getA(&data) == 1); |
| ... | @@ -618,6 +639,7 @@ fn getC(data: *const BitField1) u2 { | ... | @@ -618,6 +639,7 @@ fn getC(data: *const BitField1) u2 { |
| 618 | test "default struct initialization fields" { | 639 | test "default struct initialization fields" { |
| 619 | if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; | 640 | if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; |
| 620 | if (builtin.zig_backend == .stage2_c) return error.SkipZigTest; // TODO | 641 | if (builtin.zig_backend == .stage2_c) return error.SkipZigTest; // TODO |
| | 642 | if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO |
| 621 | | 643 | |
| 622 | const S = struct { | 644 | const S = struct { |
| 623 | a: i32 = 1234, | 645 | a: i32 = 1234, |
| ... | @@ -645,6 +667,7 @@ test "packed array 24bits" { | ... | @@ -645,6 +667,7 @@ test "packed array 24bits" { |
| 645 | if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; | 667 | if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; |
| 646 | if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; | 668 | if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; |
| 647 | if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; | 669 | if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; |
| | 670 | if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO |
| 648 | | 671 | |
| 649 | comptime { | 672 | comptime { |
| 650 | try expect(@sizeOf([9]Foo32Bits) == 9 * 4); | 673 | try expect(@sizeOf([9]Foo32Bits) == 9 * 4); |
| ... | @@ -701,6 +724,7 @@ const FooArray24Bits = packed struct { | ... | @@ -701,6 +724,7 @@ const FooArray24Bits = packed struct { |
| 701 | test "aligned array of packed struct" { | 724 | test "aligned array of packed struct" { |
| 702 | // Stage2 has different packed struct semantics. | 725 | // Stage2 has different packed struct semantics. |
| 703 | if (builtin.zig_backend != .stage1) return error.SkipZigTest; | 726 | if (builtin.zig_backend != .stage1) return error.SkipZigTest; |
| | 727 | if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO |
| 704 | | 728 | |
| 705 | comptime { | 729 | comptime { |
| 706 | try expect(@sizeOf(FooStructAligned) == 2); | 730 | try expect(@sizeOf(FooStructAligned) == 2); |
| ... | @@ -730,6 +754,7 @@ test "pointer to packed struct member in a stack variable" { | ... | @@ -730,6 +754,7 @@ test "pointer to packed struct member in a stack variable" { |
| 730 | if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO | 754 | if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO |
| 731 | if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO | 755 | if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO |
| 732 | if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO | 756 | if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO |
| | 757 | if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO |
| 733 | | 758 | |
| 734 | const S = packed struct { | 759 | const S = packed struct { |
| 735 | a: u2, | 760 | a: u2, |
| ... | @@ -747,6 +772,7 @@ test "packed struct with u0 field access" { | ... | @@ -747,6 +772,7 @@ test "packed struct with u0 field access" { |
| 747 | if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest; // TODO | 772 | if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest; // TODO |
| 748 | if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO | 773 | if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO |
| 749 | if (builtin.zig_backend == .stage2_c) return error.SkipZigTest; // TODO | 774 | if (builtin.zig_backend == .stage2_c) return error.SkipZigTest; // TODO |
| | 775 | if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO |
| 750 | | 776 | |
| 751 | const S = packed struct { | 777 | const S = packed struct { |
| 752 | f0: u0, | 778 | f0: u0, |
| ... | @@ -758,6 +784,7 @@ test "packed struct with u0 field access" { | ... | @@ -758,6 +784,7 @@ test "packed struct with u0 field access" { |
| 758 | test "access to global struct fields" { | 784 | test "access to global struct fields" { |
| 759 | if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO | 785 | if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO |
| 760 | if (builtin.zig_backend == .stage2_c) return error.SkipZigTest; // TODO | 786 | if (builtin.zig_backend == .stage2_c) return error.SkipZigTest; // TODO |
| | 787 | if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO |
| 761 | | 788 | |
| 762 | g_foo.bar.value = 42; | 789 | g_foo.bar.value = 42; |
| 763 | try expect(g_foo.bar.value == 42); | 790 | try expect(g_foo.bar.value == 42); |
| ... | @@ -782,6 +809,7 @@ test "packed struct with fp fields" { | ... | @@ -782,6 +809,7 @@ test "packed struct with fp fields" { |
| 782 | if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO | 809 | if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO |
| 783 | if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO | 810 | if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO |
| 784 | if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO | 811 | if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO |
| | 812 | if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO |
| 785 | if (builtin.zig_backend == .stage2_c) return error.SkipZigTest; // TODO | 813 | if (builtin.zig_backend == .stage2_c) return error.SkipZigTest; // TODO |
| 786 | | 814 | |
| 787 | const S = packed struct { | 815 | const S = packed struct { |
| ... | @@ -859,6 +887,7 @@ test "packed struct field passed to generic function" { | ... | @@ -859,6 +887,7 @@ test "packed struct field passed to generic function" { |
| 859 | if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO | 887 | if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO |
| 860 | if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO | 888 | if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO |
| 861 | if (builtin.zig_backend == .stage2_c) return error.SkipZigTest; // TODO | 889 | if (builtin.zig_backend == .stage2_c) return error.SkipZigTest; // TODO |
| | 890 | if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO |
| 862 | | 891 | |
| 863 | const S = struct { | 892 | const S = struct { |
| 864 | const P = packed struct { | 893 | const P = packed struct { |
| ... | @@ -975,6 +1004,7 @@ test "tuple element initialized with fn call" { | ... | @@ -975,6 +1004,7 @@ test "tuple element initialized with fn call" { |
| 975 | if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO | 1004 | if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO |
| 976 | if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO | 1005 | if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO |
| 977 | if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO | 1006 | if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO |
| | 1007 | if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO |
| 978 | | 1008 | |
| 979 | const S = struct { | 1009 | const S = struct { |
| 980 | fn doTheTest() !void { | 1010 | fn doTheTest() !void { |
| ... | @@ -1012,6 +1042,7 @@ test "type coercion of anon struct literal to struct" { | ... | @@ -1012,6 +1042,7 @@ test "type coercion of anon struct literal to struct" { |
| 1012 | if (builtin.zig_backend == .stage2_c) return error.SkipZigTest; // TODO | 1042 | if (builtin.zig_backend == .stage2_c) return error.SkipZigTest; // TODO |
| 1013 | if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO | 1043 | if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO |
| 1014 | if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO | 1044 | if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO |
| | 1045 | if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO |
| 1015 | | 1046 | |
| 1016 | const S = struct { | 1047 | const S = struct { |
| 1017 | const S2 = struct { | 1048 | const S2 = struct { |
| ... | @@ -1050,6 +1081,7 @@ test "type coercion of pointer to anon struct literal to pointer to struct" { | ... | @@ -1050,6 +1081,7 @@ test "type coercion of pointer to anon struct literal to pointer to struct" { |
| 1050 | if (builtin.zig_backend == .stage2_c) return error.SkipZigTest; // TODO | 1081 | if (builtin.zig_backend == .stage2_c) return error.SkipZigTest; // TODO |
| 1051 | if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO | 1082 | if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO |
| 1052 | if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO | 1083 | if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO |
| | 1084 | if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO |
| 1053 | | 1085 | |
| 1054 | const S = struct { | 1086 | const S = struct { |
| 1055 | const S2 = struct { | 1087 | const S2 = struct { |
| ... | @@ -1089,6 +1121,7 @@ test "packed struct with undefined initializers" { | ... | @@ -1089,6 +1121,7 @@ test "packed struct with undefined initializers" { |
| 1089 | if (builtin.zig_backend == .stage2_c) return error.SkipZigTest; // TODO | 1121 | if (builtin.zig_backend == .stage2_c) return error.SkipZigTest; // TODO |
| 1090 | if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO | 1122 | if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO |
| 1091 | if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO | 1123 | if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO |
| | 1124 | if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO |
| 1092 | | 1125 | |
| 1093 | const S = struct { | 1126 | const S = struct { |
| 1094 | const P = packed struct { | 1127 | const P = packed struct { |
| ... | @@ -1119,6 +1152,7 @@ test "for loop over pointers to struct, getting field from struct pointer" { | ... | @@ -1119,6 +1152,7 @@ test "for loop over pointers to struct, getting field from struct pointer" { |
| 1119 | if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO | 1152 | if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO |
| 1120 | if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO | 1153 | if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO |
| 1121 | if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO | 1154 | if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO |
| | 1155 | if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO |
| 1122 | | 1156 | |
| 1123 | const S = struct { | 1157 | const S = struct { |
| 1124 | const Foo = struct { | 1158 | const Foo = struct { |
| ... | @@ -1160,6 +1194,7 @@ test "anon init through error unions and optionals" { | ... | @@ -1160,6 +1194,7 @@ test "anon init through error unions and optionals" { |
| 1160 | if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO | 1194 | if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO |
| 1161 | if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO | 1195 | if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO |
| 1162 | if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO | 1196 | if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO |
| | 1197 | if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO |
| 1163 | | 1198 | |
| 1164 | const S = struct { | 1199 | const S = struct { |
| 1165 | a: u32, | 1200 | a: u32, |
| ... | @@ -1188,6 +1223,7 @@ test "anon init through optional" { | ... | @@ -1188,6 +1223,7 @@ test "anon init through optional" { |
| 1188 | if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO | 1223 | if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO |
| 1189 | if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO | 1224 | if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO |
| 1190 | if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO | 1225 | if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO |
| | 1226 | if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO |
| 1191 | | 1227 | |
| 1192 | const S = struct { | 1228 | const S = struct { |
| 1193 | a: u32, | 1229 | a: u32, |
| ... | @@ -1209,6 +1245,7 @@ test "anon init through error union" { | ... | @@ -1209,6 +1245,7 @@ test "anon init through error union" { |
| 1209 | if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO | 1245 | if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO |
| 1210 | if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO | 1246 | if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO |
| 1211 | if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO | 1247 | if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO |
| | 1248 | if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO |
| 1212 | | 1249 | |
| 1213 | const S = struct { | 1250 | const S = struct { |
| 1214 | a: u32, | 1251 | a: u32, |
| ... | @@ -1230,6 +1267,7 @@ test "typed init through error unions and optionals" { | ... | @@ -1230,6 +1267,7 @@ test "typed init through error unions and optionals" { |
| 1230 | if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO | 1267 | if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO |
| 1231 | if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO | 1268 | if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO |
| 1232 | if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO | 1269 | if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO |
| | 1270 | if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO |
| 1233 | | 1271 | |
| 1234 | const S = struct { | 1272 | const S = struct { |
| 1235 | a: u32, | 1273 | a: u32, |
| ... | @@ -1254,6 +1292,7 @@ test "typed init through error unions and optionals" { | ... | @@ -1254,6 +1292,7 @@ test "typed init through error unions and optionals" { |
| 1254 | | 1292 | |
| 1255 | test "initialize struct with empty literal" { | 1293 | test "initialize struct with empty literal" { |
| 1256 | if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO | 1294 | if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO |
| | 1295 | if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO |
| 1257 | | 1296 | |
| 1258 | const S = struct { x: i32 = 1234 }; | 1297 | const S = struct { x: i32 = 1234 }; |
| 1259 | var s: S = .{}; | 1298 | var s: S = .{}; |
| ... | @@ -1262,6 +1301,7 @@ test "initialize struct with empty literal" { | ... | @@ -1262,6 +1301,7 @@ test "initialize struct with empty literal" { |
| 1262 | | 1301 | |
| 1263 | test "loading a struct pointer perfoms a copy" { | 1302 | test "loading a struct pointer perfoms a copy" { |
| 1264 | if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO | 1303 | if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO |
| | 1304 | if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO |
| 1265 | | 1305 | |
| 1266 | const S = struct { | 1306 | const S = struct { |
| 1267 | a: i32, | 1307 | a: i32, |
| ... | @@ -1295,6 +1335,7 @@ test "packed struct aggregate init" { | ... | @@ -1295,6 +1335,7 @@ test "packed struct aggregate init" { |
| 1295 | if (builtin.zig_backend == .stage2_c) return error.SkipZigTest; // TODO | 1335 | if (builtin.zig_backend == .stage2_c) return error.SkipZigTest; // TODO |
| 1296 | if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO | 1336 | if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO |
| 1297 | if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO | 1337 | if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO |
| | 1338 | if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO |
| 1298 | | 1339 | |
| 1299 | const S = struct { | 1340 | const S = struct { |
| 1300 | fn foo(a: i2, b: i6) u8 { | 1341 | fn foo(a: i2, b: i6) u8 { |
| ... | @@ -1315,6 +1356,7 @@ test "packed struct field access via pointer" { | ... | @@ -1315,6 +1356,7 @@ test "packed struct field access via pointer" { |
| 1315 | if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO | 1356 | if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO |
| 1316 | if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO | 1357 | if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO |
| 1317 | if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO | 1358 | if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO |
| | 1359 | if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO |
| 1318 | | 1360 | |
| 1319 | const S = struct { | 1361 | const S = struct { |
| 1320 | fn doTheTest() !void { | 1362 | fn doTheTest() !void { |
| ... | @@ -1355,6 +1397,7 @@ test "store to comptime field" { | ... | @@ -1355,6 +1397,7 @@ test "store to comptime field" { |
| 1355 | | 1397 | |
| 1356 | test "struct field init value is size of the struct" { | 1398 | test "struct field init value is size of the struct" { |
| 1357 | if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO | 1399 | if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO |
| | 1400 | if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO |
| 1358 | | 1401 | |
| 1359 | const namespace = struct { | 1402 | const namespace = struct { |
| 1360 | const S = extern struct { | 1403 | const S = extern struct { |