| ... | ... | @@ -322,7 +322,7 @@ extern fn c_struct_u64_u64_7(usize, usize, usize, usize, usize, usize, usize, St |
| 322 | 322 | extern fn c_struct_u64_u64_8(usize, usize, usize, usize, usize, usize, usize, usize, Struct_u64_u64) void; |
| 323 | 323 | |
| 324 | 324 | test "C ABI struct u64 u64" { |
| 325 | | if (builtin.cpu.arch.isMIPS()) return error.SkipZigTest; |
| 325 | if (builtin.cpu.arch.isMIPS64()) return error.SkipZigTest; |
| 326 | 326 | if (builtin.cpu.arch.isPowerPC32()) return error.SkipZigTest; |
| 327 | 327 | |
| 328 | 328 | const s = c_ret_struct_u64_u64(); |
| ... | ... | @@ -359,7 +359,7 @@ extern fn c_ret_struct_f32f32_f32() Struct_f32f32_f32; |
| 359 | 359 | extern fn c_struct_f32f32_f32(Struct_f32f32_f32) void; |
| 360 | 360 | |
| 361 | 361 | test "C ABI struct {f32,f32} f32" { |
| 362 | | if (builtin.cpu.arch.isMIPS()) return error.SkipZigTest; |
| 362 | if (builtin.cpu.arch.isMIPS64()) return error.SkipZigTest; |
| 363 | 363 | if (builtin.cpu.arch.isPowerPC32()) return error.SkipZigTest; |
| 364 | 364 | |
| 365 | 365 | const s = c_ret_struct_f32f32_f32(); |
| ... | ... | @@ -389,7 +389,7 @@ extern fn c_ret_struct_f32_f32f32() Struct_f32_f32f32; |
| 389 | 389 | extern fn c_struct_f32_f32f32(Struct_f32_f32f32) void; |
| 390 | 390 | |
| 391 | 391 | test "C ABI struct f32 {f32,f32}" { |
| 392 | | if (builtin.cpu.arch.isMIPS()) return error.SkipZigTest; |
| 392 | if (builtin.cpu.arch.isMIPS64()) return error.SkipZigTest; |
| 393 | 393 | if (builtin.cpu.arch.isPowerPC32()) return error.SkipZigTest; |
| 394 | 394 | |
| 395 | 395 | const s = c_ret_struct_f32_f32f32(); |
| ... | ... | @@ -424,7 +424,7 @@ extern fn c_ret_struct_u32_union_u32_u32u32() Struct_u32_Union_u32_u32u32; |
| 424 | 424 | extern fn c_struct_u32_union_u32_u32u32(Struct_u32_Union_u32_u32u32) void; |
| 425 | 425 | |
| 426 | 426 | test "C ABI struct{u32,union{u32,struct{u32,u32}}}" { |
| 427 | | if (builtin.cpu.arch.isMIPS()) return error.SkipZigTest; |
| 427 | if (builtin.cpu.arch.isMIPS64()) return error.SkipZigTest; |
| 428 | 428 | if (builtin.cpu.arch.isPowerPC()) return error.SkipZigTest; |
| 429 | 429 | |
| 430 | 430 | const s = c_ret_struct_u32_union_u32_u32u32(); |
| ... | ... | @@ -444,7 +444,7 @@ const BigStruct = extern struct { |
| 444 | 444 | extern fn c_big_struct(BigStruct) void; |
| 445 | 445 | |
| 446 | 446 | test "C ABI big struct" { |
| 447 | | if (builtin.cpu.arch.isMIPS()) return error.SkipZigTest; |
| 447 | if (builtin.cpu.arch.isMIPS64()) return error.SkipZigTest; |
| 448 | 448 | if (builtin.cpu.arch.isPowerPC32()) return error.SkipZigTest; |
| 449 | 449 | |
| 450 | 450 | const s = BigStruct{ |
| ... | ... | @@ -503,7 +503,7 @@ extern fn c_med_struct_mixed(MedStructMixed) void; |
| 503 | 503 | extern fn c_ret_med_struct_mixed() MedStructMixed; |
| 504 | 504 | |
| 505 | 505 | test "C ABI medium struct of ints and floats" { |
| 506 | | if (builtin.cpu.arch.isMIPS()) return error.SkipZigTest; |
| 506 | if (builtin.cpu.arch.isMIPS64()) return error.SkipZigTest; |
| 507 | 507 | if (builtin.cpu.arch.isPowerPC()) return error.SkipZigTest; |
| 508 | 508 | |
| 509 | 509 | const s = MedStructMixed{ |
| ... | ... | @@ -535,7 +535,7 @@ extern fn c_ret_small_struct_ints() SmallStructInts; |
| 535 | 535 | |
| 536 | 536 | test "C ABI small struct of ints" { |
| 537 | 537 | if (builtin.cpu.arch == .x86) return error.SkipZigTest; |
| 538 | | if (builtin.cpu.arch.isMIPS()) return error.SkipZigTest; |
| 538 | if (builtin.cpu.arch.isMIPS64()) return error.SkipZigTest; |
| 539 | 539 | if (builtin.cpu.arch.isPowerPC()) return error.SkipZigTest; |
| 540 | 540 | |
| 541 | 541 | const s = SmallStructInts{ |
| ... | ... | @@ -568,7 +568,7 @@ extern fn c_med_struct_ints(MedStructInts) void; |
| 568 | 568 | extern fn c_ret_med_struct_ints() MedStructInts; |
| 569 | 569 | |
| 570 | 570 | test "C ABI medium struct of ints" { |
| 571 | | if (builtin.cpu.arch.isMIPS()) return error.SkipZigTest; |
| 571 | if (builtin.cpu.arch.isMIPS64()) return error.SkipZigTest; |
| 572 | 572 | if (builtin.cpu.arch.isPowerPC()) return error.SkipZigTest; |
| 573 | 573 | |
| 574 | 574 | const s = MedStructInts{ |
| ... | ... | @@ -646,7 +646,7 @@ extern fn c_split_struct_ints(SplitStructInt) void; |
| 646 | 646 | |
| 647 | 647 | test "C ABI split struct of ints" { |
| 648 | 648 | if (builtin.cpu.arch == .x86) return error.SkipZigTest; |
| 649 | | if (builtin.cpu.arch.isMIPS()) return error.SkipZigTest; |
| 649 | if (builtin.cpu.arch.isMIPS64()) return error.SkipZigTest; |
| 650 | 650 | if (builtin.cpu.arch.isPowerPC()) return error.SkipZigTest; |
| 651 | 651 | |
| 652 | 652 | const s = SplitStructInt{ |
| ... | ... | @@ -673,7 +673,7 @@ extern fn c_ret_split_struct_mixed() SplitStructMixed; |
| 673 | 673 | |
| 674 | 674 | test "C ABI split struct of ints and floats" { |
| 675 | 675 | if (builtin.cpu.arch == .x86) return error.SkipZigTest; |
| 676 | | if (builtin.cpu.arch.isMIPS()) return error.SkipZigTest; |
| 676 | if (builtin.cpu.arch.isMIPS64()) return error.SkipZigTest; |
| 677 | 677 | if (builtin.cpu.arch.isPowerPC()) return error.SkipZigTest; |
| 678 | 678 | |
| 679 | 679 | const s = SplitStructMixed{ |
| ... | ... | @@ -700,7 +700,7 @@ extern fn c_multiple_struct_ints(Rect, Rect) void; |
| 700 | 700 | extern fn c_multiple_struct_floats(FloatRect, FloatRect) void; |
| 701 | 701 | |
| 702 | 702 | test "C ABI sret and byval together" { |
| 703 | | if (builtin.cpu.arch.isMIPS()) return error.SkipZigTest; |
| 703 | if (builtin.cpu.arch.isMIPS64()) return error.SkipZigTest; |
| 704 | 704 | if (builtin.cpu.arch.isPowerPC32()) return error.SkipZigTest; |
| 705 | 705 | |
| 706 | 706 | const s = BigStruct{ |
| ... | ... | @@ -752,7 +752,7 @@ const Vector5 = extern struct { |
| 752 | 752 | extern fn c_big_struct_floats(Vector5) void; |
| 753 | 753 | |
| 754 | 754 | test "C ABI structs of floats as parameter" { |
| 755 | | if (builtin.cpu.arch.isMIPS()) return error.SkipZigTest; |
| 755 | if (builtin.cpu.arch.isMIPS64()) return error.SkipZigTest; |
| 756 | 756 | if (builtin.cpu.arch.isPowerPC()) return error.SkipZigTest; |
| 757 | 757 | |
| 758 | 758 | const v3 = Vector3{ |
| ... | ... | @@ -828,7 +828,7 @@ export fn zig_multiple_struct_floats(x: FloatRect, y: FloatRect) void { |
| 828 | 828 | } |
| 829 | 829 | |
| 830 | 830 | test "C ABI structs of floats as multiple parameters" { |
| 831 | | if (builtin.cpu.arch.isMIPS()) return error.SkipZigTest; |
| 831 | if (builtin.cpu.arch.isMIPS64()) return error.SkipZigTest; |
| 832 | 832 | if (builtin.cpu.arch.isPowerPC32()) return error.SkipZigTest; |
| 833 | 833 | |
| 834 | 834 | const r1 = FloatRect{ |
| ... | ... | @@ -941,7 +941,7 @@ extern fn c_ret_struct_with_array() StructWithArray; |
| 941 | 941 | |
| 942 | 942 | test "Struct with array as padding." { |
| 943 | 943 | if (builtin.cpu.arch == .x86) return error.SkipZigTest; |
| 944 | | if (builtin.cpu.arch.isMIPS()) return error.SkipZigTest; |
| 944 | if (builtin.cpu.arch.isMIPS64()) return error.SkipZigTest; |
| 945 | 945 | if (builtin.cpu.arch.isPowerPC()) return error.SkipZigTest; |
| 946 | 946 | |
| 947 | 947 | c_struct_with_array(.{ .a = 1, .padding = undefined, .b = 2 }); |
| ... | ... | @@ -966,7 +966,7 @@ extern fn c_float_array_struct(FloatArrayStruct) void; |
| 966 | 966 | extern fn c_ret_float_array_struct() FloatArrayStruct; |
| 967 | 967 | |
| 968 | 968 | test "Float array like struct" { |
| 969 | | if (builtin.cpu.arch.isMIPS()) return error.SkipZigTest; |
| 969 | if (builtin.cpu.arch.isMIPS64()) return error.SkipZigTest; |
| 970 | 970 | if (builtin.cpu.arch.isPowerPC32()) return error.SkipZigTest; |
| 971 | 971 | |
| 972 | 972 | c_float_array_struct(.{ |
| ... | ... | @@ -1031,7 +1031,7 @@ extern fn c_ret_big_vec() BigVec; |
| 1031 | 1031 | test "big simd vector" { |
| 1032 | 1032 | if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; |
| 1033 | 1033 | |
| 1034 | | if (builtin.cpu.arch.isMIPS() and builtin.mode != .Debug) return error.SkipZigTest; |
| 1034 | if (builtin.cpu.arch.isMIPS64() and builtin.mode != .Debug) return error.SkipZigTest; |
| 1035 | 1035 | if (builtin.cpu.arch.isPowerPC64()) return error.SkipZigTest; |
| 1036 | 1036 | if (builtin.zig_backend == .stage2_llvm and builtin.cpu.arch == .x86_64 and builtin.os.tag == .macos and builtin.mode != .Debug) return error.SkipZigTest; |
| 1037 | 1037 | |
| ... | ... | @@ -5340,7 +5340,7 @@ extern fn c_ptr_size_float_struct(Vector2) void; |
| 5340 | 5340 | extern fn c_ret_ptr_size_float_struct() Vector2; |
| 5341 | 5341 | |
| 5342 | 5342 | test "C ABI pointer sized float struct" { |
| 5343 | | if (builtin.cpu.arch.isMIPS()) return error.SkipZigTest; |
| 5343 | if (builtin.cpu.arch.isMIPS64()) return error.SkipZigTest; |
| 5344 | 5344 | if (builtin.cpu.arch.isRISCV()) return error.SkipZigTest; |
| 5345 | 5345 | if (builtin.cpu.arch.isPowerPC32()) return error.SkipZigTest; |
| 5346 | 5346 | |
| ... | ... | @@ -5362,25 +5362,25 @@ pub inline fn expectOk(c_err: c_int) !void { |
| 5362 | 5362 | /// Tests for Double + Char struct |
| 5363 | 5363 | const DC = extern struct { v1: f64, v2: u8 }; |
| 5364 | 5364 | test "DC: Zig passes to C" { |
| 5365 | | if (builtin.cpu.arch.isMIPS()) return error.SkipZigTest; |
| 5365 | if (builtin.cpu.arch.isMIPS64()) return error.SkipZigTest; |
| 5366 | 5366 | if (builtin.cpu.arch.isRISCV()) return error.SkipZigTest; |
| 5367 | 5367 | if (builtin.cpu.arch.isPowerPC()) return error.SkipZigTest; |
| 5368 | 5368 | try expectOk(c_assert_DC(.{ .v1 = -0.25, .v2 = 15 })); |
| 5369 | 5369 | } |
| 5370 | 5370 | test "DC: Zig returns to C" { |
| 5371 | | if (builtin.cpu.arch.isMIPS() and builtin.mode != .Debug) return error.SkipZigTest; |
| 5371 | if (builtin.cpu.arch.isMIPS64() and builtin.mode != .Debug) return error.SkipZigTest; |
| 5372 | 5372 | if (builtin.cpu.arch.isRISCV()) return error.SkipZigTest; |
| 5373 | 5373 | if (builtin.cpu.arch.isPowerPC()) return error.SkipZigTest; |
| 5374 | 5374 | try expectOk(c_assert_ret_DC()); |
| 5375 | 5375 | } |
| 5376 | 5376 | test "DC: C passes to Zig" { |
| 5377 | | if (builtin.cpu.arch.isMIPS()) return error.SkipZigTest; |
| 5377 | if (builtin.cpu.arch.isMIPS64()) return error.SkipZigTest; |
| 5378 | 5378 | if (builtin.cpu.arch.isRISCV()) return error.SkipZigTest; |
| 5379 | 5379 | if (builtin.cpu.arch.isPowerPC()) return error.SkipZigTest; |
| 5380 | 5380 | try expectOk(c_send_DC()); |
| 5381 | 5381 | } |
| 5382 | 5382 | test "DC: C returns to Zig" { |
| 5383 | | if (builtin.cpu.arch.isMIPS() and builtin.mode != .Debug) return error.SkipZigTest; |
| 5383 | if (builtin.cpu.arch.isMIPS64() and builtin.mode != .Debug) return error.SkipZigTest; |
| 5384 | 5384 | if (builtin.cpu.arch.isRISCV()) return error.SkipZigTest; |
| 5385 | 5385 | if (builtin.cpu.arch.isPowerPC()) return error.SkipZigTest; |
| 5386 | 5386 | try expectEqual(DC{ .v1 = -0.25, .v2 = 15 }, c_ret_DC()); |
| ... | ... | @@ -5406,12 +5406,12 @@ const CFF = extern struct { v1: u8, v2: f32, v3: f32 }; |
| 5406 | 5406 | |
| 5407 | 5407 | test "CFF: Zig passes to C" { |
| 5408 | 5408 | if (builtin.target.cpu.arch == .x86) return error.SkipZigTest; |
| 5409 | | if (builtin.cpu.arch.isMIPS()) return error.SkipZigTest; |
| 5409 | if (builtin.cpu.arch.isMIPS64()) return error.SkipZigTest; |
| 5410 | 5410 | if (builtin.cpu.arch.isPowerPC()) return error.SkipZigTest; |
| 5411 | 5411 | try expectOk(c_assert_CFF(.{ .v1 = 39, .v2 = 0.875, .v3 = 1.0 })); |
| 5412 | 5412 | } |
| 5413 | 5413 | test "CFF: Zig returns to C" { |
| 5414 | | if (builtin.cpu.arch.isMIPS()) return error.SkipZigTest; |
| 5414 | if (builtin.cpu.arch.isMIPS64()) return error.SkipZigTest; |
| 5415 | 5415 | if (builtin.cpu.arch.isPowerPC()) return error.SkipZigTest; |
| 5416 | 5416 | try expectOk(c_assert_ret_CFF()); |
| 5417 | 5417 | } |
| ... | ... | @@ -5419,7 +5419,7 @@ test "CFF: C passes to Zig" { |
| 5419 | 5419 | if (builtin.target.cpu.arch == .x86) return error.SkipZigTest; |
| 5420 | 5420 | if (builtin.cpu.arch.isRISCV() and builtin.mode != .Debug) return error.SkipZigTest; |
| 5421 | 5421 | if (builtin.cpu.arch == .aarch64 and builtin.mode != .Debug) return error.SkipZigTest; |
| 5422 | | if (builtin.cpu.arch.isMIPS()) return error.SkipZigTest; |
| 5422 | if (builtin.cpu.arch.isMIPS64()) return error.SkipZigTest; |
| 5423 | 5423 | if (builtin.cpu.arch.isPowerPC()) return error.SkipZigTest; |
| 5424 | 5424 | |
| 5425 | 5425 | try expectOk(c_send_CFF()); |
| ... | ... | @@ -5427,7 +5427,7 @@ test "CFF: C passes to Zig" { |
| 5427 | 5427 | test "CFF: C returns to Zig" { |
| 5428 | 5428 | if (builtin.cpu.arch == .aarch64 and builtin.mode != .Debug) return error.SkipZigTest; |
| 5429 | 5429 | if (builtin.cpu.arch.isRISCV() and builtin.mode != .Debug) return error.SkipZigTest; |
| 5430 | | if (builtin.cpu.arch.isMIPS()) return error.SkipZigTest; |
| 5430 | if (builtin.cpu.arch.isMIPS64()) return error.SkipZigTest; |
| 5431 | 5431 | if (builtin.cpu.arch.isPowerPC()) return error.SkipZigTest; |
| 5432 | 5432 | try expectEqual(CFF{ .v1 = 39, .v2 = 0.875, .v3 = 1.0 }, c_ret_CFF()); |
| 5433 | 5433 | } |
| ... | ... | @@ -5451,22 +5451,22 @@ pub export fn zig_ret_CFF() CFF { |
| 5451 | 5451 | const PD = extern struct { v1: ?*anyopaque, v2: f64 }; |
| 5452 | 5452 | |
| 5453 | 5453 | test "PD: Zig passes to C" { |
| 5454 | | if (builtin.cpu.arch.isMIPS()) return error.SkipZigTest; |
| 5454 | if (builtin.cpu.arch.isMIPS64()) return error.SkipZigTest; |
| 5455 | 5455 | if (builtin.cpu.arch.isPowerPC()) return error.SkipZigTest; |
| 5456 | 5456 | try expectOk(c_assert_PD(.{ .v1 = null, .v2 = 0.5 })); |
| 5457 | 5457 | } |
| 5458 | 5458 | test "PD: Zig returns to C" { |
| 5459 | | if (builtin.cpu.arch.isMIPS() and builtin.mode != .Debug) return error.SkipZigTest; |
| 5459 | if (builtin.cpu.arch.isMIPS64() and builtin.mode != .Debug) return error.SkipZigTest; |
| 5460 | 5460 | if (builtin.cpu.arch.isPowerPC()) return error.SkipZigTest; |
| 5461 | 5461 | try expectOk(c_assert_ret_PD()); |
| 5462 | 5462 | } |
| 5463 | 5463 | test "PD: C passes to Zig" { |
| 5464 | | if (builtin.cpu.arch.isMIPS()) return error.SkipZigTest; |
| 5464 | if (builtin.cpu.arch.isMIPS64()) return error.SkipZigTest; |
| 5465 | 5465 | if (builtin.cpu.arch.isPowerPC()) return error.SkipZigTest; |
| 5466 | 5466 | try expectOk(c_send_PD()); |
| 5467 | 5467 | } |
| 5468 | 5468 | test "PD: C returns to Zig" { |
| 5469 | | if (builtin.cpu.arch.isMIPS() and builtin.mode != .Debug) return error.SkipZigTest; |
| 5469 | if (builtin.cpu.arch.isMIPS64() and builtin.mode != .Debug) return error.SkipZigTest; |
| 5470 | 5470 | if (builtin.cpu.arch.isPowerPC()) return error.SkipZigTest; |
| 5471 | 5471 | try expectEqual(PD{ .v1 = null, .v2 = 0.5 }, c_ret_PD()); |
| 5472 | 5472 | } |
| ... | ... | @@ -5520,7 +5520,7 @@ const ByVal = extern struct { |
| 5520 | 5520 | |
| 5521 | 5521 | extern fn c_func_ptr_byval(*anyopaque, *anyopaque, ByVal, c_ulong, *anyopaque, c_ulong) void; |
| 5522 | 5522 | test "C function that takes byval struct called via function pointer" { |
| 5523 | | if (builtin.cpu.arch.isMIPS() and builtin.mode != .Debug) return error.SkipZigTest; |
| 5523 | if (builtin.cpu.arch.isMIPS64() and builtin.mode != .Debug) return error.SkipZigTest; |
| 5524 | 5524 | if (builtin.cpu.arch.isPowerPC32()) return error.SkipZigTest; |
| 5525 | 5525 | |
| 5526 | 5526 | var fn_ptr = &c_func_ptr_byval; |
| ... | ... | @@ -5551,7 +5551,7 @@ const f16_struct = extern struct { |
| 5551 | 5551 | }; |
| 5552 | 5552 | extern fn c_f16_struct(f16_struct) f16_struct; |
| 5553 | 5553 | test "f16 struct" { |
| 5554 | | if (builtin.target.cpu.arch.isMIPS()) return error.SkipZigTest; |
| 5554 | if (builtin.target.cpu.arch.isMIPS64()) return error.SkipZigTest; |
| 5555 | 5555 | if (builtin.target.cpu.arch.isPowerPC32()) return error.SkipZigTest; |
| 5556 | 5556 | if (builtin.cpu.arch.isARM() and builtin.mode != .Debug) return error.SkipZigTest; |
| 5557 | 5557 | |
| ... | ... | @@ -5666,7 +5666,7 @@ const Coord2 = extern struct { |
| 5666 | 5666 | |
| 5667 | 5667 | extern fn stdcall_coord2(Coord2, Coord2, Coord2) callconv(stdcall_callconv) Coord2; |
| 5668 | 5668 | test "Stdcall ABI structs" { |
| 5669 | | if (builtin.cpu.arch.isMIPS()) return error.SkipZigTest; |
| 5669 | if (builtin.cpu.arch.isMIPS64()) return error.SkipZigTest; |
| 5670 | 5670 | if (builtin.cpu.arch.isPowerPC()) return error.SkipZigTest; |
| 5671 | 5671 | |
| 5672 | 5672 | const res = stdcall_coord2( |
| ... | ... | @@ -5751,7 +5751,7 @@ const byval_tail_callsite_attr = struct { |
| 5751 | 5751 | }; |
| 5752 | 5752 | |
| 5753 | 5753 | test "byval tail callsite attribute" { |
| 5754 | | if (builtin.cpu.arch.isMIPS()) return error.SkipZigTest; |
| 5754 | if (builtin.cpu.arch.isMIPS64()) return error.SkipZigTest; |
| 5755 | 5755 | if (builtin.cpu.arch.isPowerPC32()) return error.SkipZigTest; |
| 5756 | 5756 | |
| 5757 | 5757 | // Originally reported at https://github.com/ziglang/zig/issues/16290 |