| ... | ... | @@ -11,7 +11,7 @@ const print = std.debug.print; |
| 11 | 11 | const expect = std.testing.expect; |
| 12 | 12 | const expectEqual = std.testing.expectEqual; |
| 13 | 13 | const have_i128 = builtin.cpu.arch != .x86 and !builtin.cpu.arch.isARM() and |
| 14 | | !builtin.cpu.arch.isMIPS() and !builtin.cpu.arch.isPPC(); |
| 14 | !builtin.cpu.arch.isMIPS() and !builtin.cpu.arch.isPowerPC32(); |
| 15 | 15 | |
| 16 | 16 | const have_f128 = builtin.cpu.arch.isX86() and !builtin.os.tag.isDarwin(); |
| 17 | 17 | const have_f80 = builtin.cpu.arch.isX86(); |
| ... | ... | @@ -123,8 +123,7 @@ test "C ABI floats" { |
| 123 | 123 | } |
| 124 | 124 | |
| 125 | 125 | test "C ABI long double" { |
| 126 | | if (builtin.cpu.arch.isPPC()) return error.SkipZigTest; |
| 127 | | if (builtin.cpu.arch.isPPC64()) return error.SkipZigTest; |
| 126 | if (builtin.cpu.arch.isPowerPC()) return error.SkipZigTest; |
| 128 | 127 | |
| 129 | 128 | c_long_double(12.34); |
| 130 | 129 | } |
| ... | ... | @@ -182,7 +181,7 @@ extern fn c_cmultf(a: ComplexFloat, b: ComplexFloat) ComplexFloat; |
| 182 | 181 | extern fn c_cmultd(a: ComplexDouble, b: ComplexDouble) ComplexDouble; |
| 183 | 182 | |
| 184 | 183 | const complex_abi_compatible = builtin.cpu.arch != .x86 and !builtin.cpu.arch.isMIPS() and |
| 185 | | !builtin.cpu.arch.isARM() and !builtin.cpu.arch.isPPC() and !builtin.cpu.arch.isRISCV(); |
| 184 | !builtin.cpu.arch.isARM() and !builtin.cpu.arch.isPowerPC32() and !builtin.cpu.arch.isRISCV(); |
| 186 | 185 | |
| 187 | 186 | test "C ABI complex float" { |
| 188 | 187 | if (!complex_abi_compatible) return error.SkipZigTest; |
| ... | ... | @@ -324,7 +323,7 @@ extern fn c_struct_u64_u64_8(usize, usize, usize, usize, usize, usize, usize, us |
| 324 | 323 | |
| 325 | 324 | test "C ABI struct u64 u64" { |
| 326 | 325 | if (builtin.cpu.arch.isMIPS()) return error.SkipZigTest; |
| 327 | | if (builtin.cpu.arch.isPPC()) return error.SkipZigTest; |
| 326 | if (builtin.cpu.arch.isPowerPC32()) return error.SkipZigTest; |
| 328 | 327 | |
| 329 | 328 | const s = c_ret_struct_u64_u64(); |
| 330 | 329 | try expect(s.a == 21); |
| ... | ... | @@ -361,7 +360,7 @@ extern fn c_struct_f32f32_f32(Struct_f32f32_f32) void; |
| 361 | 360 | |
| 362 | 361 | test "C ABI struct {f32,f32} f32" { |
| 363 | 362 | if (builtin.cpu.arch.isMIPS()) return error.SkipZigTest; |
| 364 | | if (builtin.cpu.arch.isPPC()) return error.SkipZigTest; |
| 363 | if (builtin.cpu.arch.isPowerPC32()) return error.SkipZigTest; |
| 365 | 364 | |
| 366 | 365 | const s = c_ret_struct_f32f32_f32(); |
| 367 | 366 | try expect(s.a.b == 1.0); |
| ... | ... | @@ -391,7 +390,7 @@ extern fn c_struct_f32_f32f32(Struct_f32_f32f32) void; |
| 391 | 390 | |
| 392 | 391 | test "C ABI struct f32 {f32,f32}" { |
| 393 | 392 | if (builtin.cpu.arch.isMIPS()) return error.SkipZigTest; |
| 394 | | if (builtin.cpu.arch.isPPC()) return error.SkipZigTest; |
| 393 | if (builtin.cpu.arch.isPowerPC32()) return error.SkipZigTest; |
| 395 | 394 | |
| 396 | 395 | const s = c_ret_struct_f32_f32f32(); |
| 397 | 396 | try expect(s.a == 1.0); |
| ... | ... | @@ -426,8 +425,7 @@ extern fn c_struct_u32_union_u32_u32u32(Struct_u32_Union_u32_u32u32) void; |
| 426 | 425 | |
| 427 | 426 | test "C ABI struct{u32,union{u32,struct{u32,u32}}}" { |
| 428 | 427 | if (builtin.cpu.arch.isMIPS()) return error.SkipZigTest; |
| 429 | | if (builtin.cpu.arch.isPPC()) return error.SkipZigTest; |
| 430 | | if (builtin.cpu.arch.isPPC64()) return error.SkipZigTest; |
| 428 | if (builtin.cpu.arch.isPowerPC()) return error.SkipZigTest; |
| 431 | 429 | |
| 432 | 430 | const s = c_ret_struct_u32_union_u32_u32u32(); |
| 433 | 431 | try expect(s.a == 1); |
| ... | ... | @@ -447,7 +445,7 @@ extern fn c_big_struct(BigStruct) void; |
| 447 | 445 | |
| 448 | 446 | test "C ABI big struct" { |
| 449 | 447 | if (builtin.cpu.arch.isMIPS()) return error.SkipZigTest; |
| 450 | | if (builtin.cpu.arch.isPPC()) return error.SkipZigTest; |
| 448 | if (builtin.cpu.arch.isPowerPC32()) return error.SkipZigTest; |
| 451 | 449 | |
| 452 | 450 | const s = BigStruct{ |
| 453 | 451 | .a = 1, |
| ... | ... | @@ -473,7 +471,7 @@ const BigUnion = extern union { |
| 473 | 471 | extern fn c_big_union(BigUnion) void; |
| 474 | 472 | |
| 475 | 473 | test "C ABI big union" { |
| 476 | | if (builtin.cpu.arch.isPPC()) return error.SkipZigTest; |
| 474 | if (builtin.cpu.arch.isPowerPC32()) return error.SkipZigTest; |
| 477 | 475 | |
| 478 | 476 | const x = BigUnion{ |
| 479 | 477 | .a = BigStruct{ |
| ... | ... | @@ -506,8 +504,7 @@ extern fn c_ret_med_struct_mixed() MedStructMixed; |
| 506 | 504 | |
| 507 | 505 | test "C ABI medium struct of ints and floats" { |
| 508 | 506 | if (builtin.cpu.arch.isMIPS()) return error.SkipZigTest; |
| 509 | | if (builtin.cpu.arch.isPPC()) return error.SkipZigTest; |
| 510 | | if (builtin.cpu.arch.isPPC64()) return error.SkipZigTest; |
| 507 | if (builtin.cpu.arch.isPowerPC()) return error.SkipZigTest; |
| 511 | 508 | |
| 512 | 509 | const s = MedStructMixed{ |
| 513 | 510 | .a = 1234, |
| ... | ... | @@ -539,8 +536,7 @@ extern fn c_ret_small_struct_ints() SmallStructInts; |
| 539 | 536 | test "C ABI small struct of ints" { |
| 540 | 537 | if (builtin.cpu.arch == .x86) return error.SkipZigTest; |
| 541 | 538 | if (builtin.cpu.arch.isMIPS()) return error.SkipZigTest; |
| 542 | | if (builtin.cpu.arch.isPPC()) return error.SkipZigTest; |
| 543 | | if (builtin.cpu.arch.isPPC64()) return error.SkipZigTest; |
| 539 | if (builtin.cpu.arch.isPowerPC()) return error.SkipZigTest; |
| 544 | 540 | |
| 545 | 541 | const s = SmallStructInts{ |
| 546 | 542 | .a = 1, |
| ... | ... | @@ -573,8 +569,7 @@ extern fn c_ret_med_struct_ints() MedStructInts; |
| 573 | 569 | |
| 574 | 570 | test "C ABI medium struct of ints" { |
| 575 | 571 | if (builtin.cpu.arch.isMIPS()) return error.SkipZigTest; |
| 576 | | if (builtin.cpu.arch.isPPC()) return error.SkipZigTest; |
| 577 | | if (builtin.cpu.arch.isPPC64()) return error.SkipZigTest; |
| 572 | if (builtin.cpu.arch.isPowerPC()) return error.SkipZigTest; |
| 578 | 573 | |
| 579 | 574 | const s = MedStructInts{ |
| 580 | 575 | .x = 1, |
| ... | ... | @@ -652,8 +647,7 @@ extern fn c_split_struct_ints(SplitStructInt) void; |
| 652 | 647 | test "C ABI split struct of ints" { |
| 653 | 648 | if (builtin.cpu.arch == .x86) return error.SkipZigTest; |
| 654 | 649 | if (builtin.cpu.arch.isMIPS()) return error.SkipZigTest; |
| 655 | | if (builtin.cpu.arch.isPPC()) return error.SkipZigTest; |
| 656 | | if (builtin.cpu.arch.isPPC64()) return error.SkipZigTest; |
| 650 | if (builtin.cpu.arch.isPowerPC()) return error.SkipZigTest; |
| 657 | 651 | |
| 658 | 652 | const s = SplitStructInt{ |
| 659 | 653 | .a = 1234, |
| ... | ... | @@ -680,8 +674,7 @@ extern fn c_ret_split_struct_mixed() SplitStructMixed; |
| 680 | 674 | test "C ABI split struct of ints and floats" { |
| 681 | 675 | if (builtin.cpu.arch == .x86) return error.SkipZigTest; |
| 682 | 676 | if (builtin.cpu.arch.isMIPS()) return error.SkipZigTest; |
| 683 | | if (builtin.cpu.arch.isPPC()) return error.SkipZigTest; |
| 684 | | if (builtin.cpu.arch.isPPC64()) return error.SkipZigTest; |
| 677 | if (builtin.cpu.arch.isPowerPC()) return error.SkipZigTest; |
| 685 | 678 | |
| 686 | 679 | const s = SplitStructMixed{ |
| 687 | 680 | .a = 1234, |
| ... | ... | @@ -708,7 +701,7 @@ extern fn c_multiple_struct_floats(FloatRect, FloatRect) void; |
| 708 | 701 | |
| 709 | 702 | test "C ABI sret and byval together" { |
| 710 | 703 | if (builtin.cpu.arch.isMIPS()) return error.SkipZigTest; |
| 711 | | if (builtin.cpu.arch.isPPC()) return error.SkipZigTest; |
| 704 | if (builtin.cpu.arch.isPowerPC32()) return error.SkipZigTest; |
| 712 | 705 | |
| 713 | 706 | const s = BigStruct{ |
| 714 | 707 | .a = 1, |
| ... | ... | @@ -760,8 +753,7 @@ extern fn c_big_struct_floats(Vector5) void; |
| 760 | 753 | |
| 761 | 754 | test "C ABI structs of floats as parameter" { |
| 762 | 755 | if (builtin.cpu.arch.isMIPS()) return error.SkipZigTest; |
| 763 | | if (builtin.cpu.arch.isPPC()) return error.SkipZigTest; |
| 764 | | if (builtin.cpu.arch.isPPC64()) return error.SkipZigTest; |
| 756 | if (builtin.cpu.arch.isPowerPC()) return error.SkipZigTest; |
| 765 | 757 | |
| 766 | 758 | const v3 = Vector3{ |
| 767 | 759 | .x = 3.0, |
| ... | ... | @@ -800,8 +792,7 @@ export fn zig_multiple_struct_ints(x: Rect, y: Rect) void { |
| 800 | 792 | } |
| 801 | 793 | |
| 802 | 794 | test "C ABI structs of ints as multiple parameters" { |
| 803 | | if (builtin.cpu.arch.isPPC()) return error.SkipZigTest; |
| 804 | | if (builtin.cpu.arch.isPPC64()) return error.SkipZigTest; |
| 795 | if (builtin.cpu.arch.isPowerPC()) return error.SkipZigTest; |
| 805 | 796 | |
| 806 | 797 | const r1 = Rect{ |
| 807 | 798 | .left = 1, |
| ... | ... | @@ -838,7 +829,7 @@ export fn zig_multiple_struct_floats(x: FloatRect, y: FloatRect) void { |
| 838 | 829 | |
| 839 | 830 | test "C ABI structs of floats as multiple parameters" { |
| 840 | 831 | if (builtin.cpu.arch.isMIPS()) return error.SkipZigTest; |
| 841 | | if (builtin.cpu.arch.isPPC()) return error.SkipZigTest; |
| 832 | if (builtin.cpu.arch.isPowerPC32()) return error.SkipZigTest; |
| 842 | 833 | |
| 843 | 834 | const r1 = FloatRect{ |
| 844 | 835 | .left = 1, |
| ... | ... | @@ -951,8 +942,7 @@ extern fn c_ret_struct_with_array() StructWithArray; |
| 951 | 942 | test "Struct with array as padding." { |
| 952 | 943 | if (builtin.cpu.arch == .x86) return error.SkipZigTest; |
| 953 | 944 | if (builtin.cpu.arch.isMIPS()) return error.SkipZigTest; |
| 954 | | if (builtin.cpu.arch.isPPC()) return error.SkipZigTest; |
| 955 | | if (builtin.cpu.arch.isPPC64()) return error.SkipZigTest; |
| 945 | if (builtin.cpu.arch.isPowerPC()) return error.SkipZigTest; |
| 956 | 946 | |
| 957 | 947 | c_struct_with_array(.{ .a = 1, .padding = undefined, .b = 2 }); |
| 958 | 948 | |
| ... | ... | @@ -977,7 +967,7 @@ extern fn c_ret_float_array_struct() FloatArrayStruct; |
| 977 | 967 | |
| 978 | 968 | test "Float array like struct" { |
| 979 | 969 | if (builtin.cpu.arch.isMIPS()) return error.SkipZigTest; |
| 980 | | if (builtin.cpu.arch.isPPC()) return error.SkipZigTest; |
| 970 | if (builtin.cpu.arch.isPowerPC32()) return error.SkipZigTest; |
| 981 | 971 | |
| 982 | 972 | c_float_array_struct(.{ |
| 983 | 973 | .origin = .{ |
| ... | ... | @@ -1004,7 +994,7 @@ extern fn c_ret_small_vec() SmallVec; |
| 1004 | 994 | |
| 1005 | 995 | test "small simd vector" { |
| 1006 | 996 | if (builtin.cpu.arch == .x86) return error.SkipZigTest; |
| 1007 | | if (builtin.cpu.arch.isPPC64()) return error.SkipZigTest; |
| 997 | if (builtin.cpu.arch.isPowerPC64()) return error.SkipZigTest; |
| 1008 | 998 | |
| 1009 | 999 | c_small_vec(.{ 1, 2 }); |
| 1010 | 1000 | |
| ... | ... | @@ -1022,7 +1012,7 @@ test "medium simd vector" { |
| 1022 | 1012 | if (builtin.zig_backend == .stage2_x86_64 and |
| 1023 | 1013 | !comptime std.Target.x86.featureSetHas(builtin.cpu.features, .avx)) return error.SkipZigTest; |
| 1024 | 1014 | |
| 1025 | | if (builtin.cpu.arch.isPPC64()) return error.SkipZigTest; |
| 1015 | if (builtin.cpu.arch.isPowerPC64()) return error.SkipZigTest; |
| 1026 | 1016 | |
| 1027 | 1017 | c_medium_vec(.{ 1, 2, 3, 4 }); |
| 1028 | 1018 | |
| ... | ... | @@ -1042,7 +1032,7 @@ test "big simd vector" { |
| 1042 | 1032 | if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; |
| 1043 | 1033 | |
| 1044 | 1034 | if (builtin.cpu.arch.isMIPS() and builtin.mode != .Debug) return error.SkipZigTest; |
| 1045 | | if (builtin.cpu.arch.isPPC64()) return error.SkipZigTest; |
| 1035 | if (builtin.cpu.arch.isPowerPC64()) return error.SkipZigTest; |
| 1046 | 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; |
| 1047 | 1037 | |
| 1048 | 1038 | c_big_vec(.{ 1, 2, 3, 4, 5, 6, 7, 8 }); |
| ... | ... | @@ -5352,7 +5342,7 @@ extern fn c_ret_ptr_size_float_struct() Vector2; |
| 5352 | 5342 | test "C ABI pointer sized float struct" { |
| 5353 | 5343 | if (builtin.cpu.arch.isMIPS()) return error.SkipZigTest; |
| 5354 | 5344 | if (builtin.cpu.arch.isRISCV()) return error.SkipZigTest; |
| 5355 | | if (builtin.cpu.arch.isPPC()) return error.SkipZigTest; |
| 5345 | if (builtin.cpu.arch.isPowerPC32()) return error.SkipZigTest; |
| 5356 | 5346 | |
| 5357 | 5347 | c_ptr_size_float_struct(.{ .x = 1, .y = 2 }); |
| 5358 | 5348 | |
| ... | ... | @@ -5374,29 +5364,25 @@ const DC = extern struct { v1: f64, v2: u8 }; |
| 5374 | 5364 | test "DC: Zig passes to C" { |
| 5375 | 5365 | if (builtin.cpu.arch.isMIPS()) return error.SkipZigTest; |
| 5376 | 5366 | if (builtin.cpu.arch.isRISCV()) return error.SkipZigTest; |
| 5377 | | if (builtin.cpu.arch.isPPC()) return error.SkipZigTest; |
| 5378 | | if (builtin.cpu.arch.isPPC64()) return error.SkipZigTest; |
| 5367 | if (builtin.cpu.arch.isPowerPC()) return error.SkipZigTest; |
| 5379 | 5368 | try expectOk(c_assert_DC(.{ .v1 = -0.25, .v2 = 15 })); |
| 5380 | 5369 | } |
| 5381 | 5370 | test "DC: Zig returns to C" { |
| 5382 | 5371 | if (builtin.cpu.arch.isMIPS() and builtin.mode != .Debug) return error.SkipZigTest; |
| 5383 | 5372 | if (builtin.cpu.arch.isRISCV()) return error.SkipZigTest; |
| 5384 | | if (builtin.cpu.arch.isPPC()) return error.SkipZigTest; |
| 5385 | | if (builtin.cpu.arch.isPPC64()) return error.SkipZigTest; |
| 5373 | if (builtin.cpu.arch.isPowerPC()) return error.SkipZigTest; |
| 5386 | 5374 | try expectOk(c_assert_ret_DC()); |
| 5387 | 5375 | } |
| 5388 | 5376 | test "DC: C passes to Zig" { |
| 5389 | 5377 | if (builtin.cpu.arch.isMIPS()) return error.SkipZigTest; |
| 5390 | 5378 | if (builtin.cpu.arch.isRISCV()) return error.SkipZigTest; |
| 5391 | | if (builtin.cpu.arch.isPPC()) return error.SkipZigTest; |
| 5392 | | if (builtin.cpu.arch.isPPC64()) return error.SkipZigTest; |
| 5379 | if (builtin.cpu.arch.isPowerPC()) return error.SkipZigTest; |
| 5393 | 5380 | try expectOk(c_send_DC()); |
| 5394 | 5381 | } |
| 5395 | 5382 | test "DC: C returns to Zig" { |
| 5396 | 5383 | if (builtin.cpu.arch.isMIPS() and builtin.mode != .Debug) return error.SkipZigTest; |
| 5397 | 5384 | if (builtin.cpu.arch.isRISCV()) return error.SkipZigTest; |
| 5398 | | if (builtin.cpu.arch.isPPC()) return error.SkipZigTest; |
| 5399 | | if (builtin.cpu.arch.isPPC64()) return error.SkipZigTest; |
| 5385 | if (builtin.cpu.arch.isPowerPC()) return error.SkipZigTest; |
| 5400 | 5386 | try expectEqual(DC{ .v1 = -0.25, .v2 = 15 }, c_ret_DC()); |
| 5401 | 5387 | } |
| 5402 | 5388 | |
| ... | ... | @@ -5421,14 +5407,12 @@ const CFF = extern struct { v1: u8, v2: f32, v3: f32 }; |
| 5421 | 5407 | test "CFF: Zig passes to C" { |
| 5422 | 5408 | if (builtin.target.cpu.arch == .x86) return error.SkipZigTest; |
| 5423 | 5409 | if (builtin.cpu.arch.isMIPS()) return error.SkipZigTest; |
| 5424 | | if (builtin.cpu.arch.isPPC()) return error.SkipZigTest; |
| 5425 | | if (builtin.cpu.arch.isPPC64()) return error.SkipZigTest; |
| 5410 | if (builtin.cpu.arch.isPowerPC()) return error.SkipZigTest; |
| 5426 | 5411 | try expectOk(c_assert_CFF(.{ .v1 = 39, .v2 = 0.875, .v3 = 1.0 })); |
| 5427 | 5412 | } |
| 5428 | 5413 | test "CFF: Zig returns to C" { |
| 5429 | 5414 | if (builtin.cpu.arch.isMIPS()) return error.SkipZigTest; |
| 5430 | | if (builtin.cpu.arch.isPPC()) return error.SkipZigTest; |
| 5431 | | if (builtin.cpu.arch.isPPC64()) return error.SkipZigTest; |
| 5415 | if (builtin.cpu.arch.isPowerPC()) return error.SkipZigTest; |
| 5432 | 5416 | try expectOk(c_assert_ret_CFF()); |
| 5433 | 5417 | } |
| 5434 | 5418 | test "CFF: C passes to Zig" { |
| ... | ... | @@ -5436,8 +5420,7 @@ test "CFF: C passes to Zig" { |
| 5436 | 5420 | if (builtin.cpu.arch.isRISCV() and builtin.mode != .Debug) return error.SkipZigTest; |
| 5437 | 5421 | if (builtin.cpu.arch == .aarch64 and builtin.mode != .Debug) return error.SkipZigTest; |
| 5438 | 5422 | if (builtin.cpu.arch.isMIPS()) return error.SkipZigTest; |
| 5439 | | if (builtin.cpu.arch.isPPC()) return error.SkipZigTest; |
| 5440 | | if (builtin.cpu.arch.isPPC64()) return error.SkipZigTest; |
| 5423 | if (builtin.cpu.arch.isPowerPC()) return error.SkipZigTest; |
| 5441 | 5424 | |
| 5442 | 5425 | try expectOk(c_send_CFF()); |
| 5443 | 5426 | } |
| ... | ... | @@ -5445,8 +5428,7 @@ test "CFF: C returns to Zig" { |
| 5445 | 5428 | if (builtin.cpu.arch == .aarch64 and builtin.mode != .Debug) return error.SkipZigTest; |
| 5446 | 5429 | if (builtin.cpu.arch.isRISCV() and builtin.mode != .Debug) return error.SkipZigTest; |
| 5447 | 5430 | if (builtin.cpu.arch.isMIPS()) return error.SkipZigTest; |
| 5448 | | if (builtin.cpu.arch.isPPC()) return error.SkipZigTest; |
| 5449 | | if (builtin.cpu.arch.isPPC64()) return error.SkipZigTest; |
| 5431 | if (builtin.cpu.arch.isPowerPC()) return error.SkipZigTest; |
| 5450 | 5432 | try expectEqual(CFF{ .v1 = 39, .v2 = 0.875, .v3 = 1.0 }, c_ret_CFF()); |
| 5451 | 5433 | } |
| 5452 | 5434 | pub extern fn c_assert_CFF(lv: CFF) c_int; |
| ... | ... | @@ -5470,26 +5452,22 @@ const PD = extern struct { v1: ?*anyopaque, v2: f64 }; |
| 5470 | 5452 | |
| 5471 | 5453 | test "PD: Zig passes to C" { |
| 5472 | 5454 | if (builtin.cpu.arch.isMIPS()) return error.SkipZigTest; |
| 5473 | | if (builtin.cpu.arch.isPPC()) return error.SkipZigTest; |
| 5474 | | if (builtin.cpu.arch.isPPC64()) return error.SkipZigTest; |
| 5455 | if (builtin.cpu.arch.isPowerPC()) return error.SkipZigTest; |
| 5475 | 5456 | try expectOk(c_assert_PD(.{ .v1 = null, .v2 = 0.5 })); |
| 5476 | 5457 | } |
| 5477 | 5458 | test "PD: Zig returns to C" { |
| 5478 | 5459 | if (builtin.cpu.arch.isMIPS() and builtin.mode != .Debug) return error.SkipZigTest; |
| 5479 | | if (builtin.cpu.arch.isPPC()) return error.SkipZigTest; |
| 5480 | | if (builtin.cpu.arch.isPPC64()) return error.SkipZigTest; |
| 5460 | if (builtin.cpu.arch.isPowerPC()) return error.SkipZigTest; |
| 5481 | 5461 | try expectOk(c_assert_ret_PD()); |
| 5482 | 5462 | } |
| 5483 | 5463 | test "PD: C passes to Zig" { |
| 5484 | 5464 | if (builtin.cpu.arch.isMIPS()) return error.SkipZigTest; |
| 5485 | | if (builtin.cpu.arch.isPPC()) return error.SkipZigTest; |
| 5486 | | if (builtin.cpu.arch.isPPC64()) return error.SkipZigTest; |
| 5465 | if (builtin.cpu.arch.isPowerPC()) return error.SkipZigTest; |
| 5487 | 5466 | try expectOk(c_send_PD()); |
| 5488 | 5467 | } |
| 5489 | 5468 | test "PD: C returns to Zig" { |
| 5490 | 5469 | if (builtin.cpu.arch.isMIPS() and builtin.mode != .Debug) return error.SkipZigTest; |
| 5491 | | if (builtin.cpu.arch.isPPC()) return error.SkipZigTest; |
| 5492 | | if (builtin.cpu.arch.isPPC64()) return error.SkipZigTest; |
| 5470 | if (builtin.cpu.arch.isPowerPC()) return error.SkipZigTest; |
| 5493 | 5471 | try expectEqual(PD{ .v1 = null, .v2 = 0.5 }, c_ret_PD()); |
| 5494 | 5472 | } |
| 5495 | 5473 | pub extern fn c_assert_PD(lv: PD) c_int; |
| ... | ... | @@ -5521,7 +5499,7 @@ const ByRef = extern struct { |
| 5521 | 5499 | extern fn c_modify_by_ref_param(ByRef) ByRef; |
| 5522 | 5500 | |
| 5523 | 5501 | test "C function modifies by ref param" { |
| 5524 | | if (builtin.cpu.arch.isPPC()) return error.SkipZigTest; |
| 5502 | if (builtin.cpu.arch.isPowerPC32()) return error.SkipZigTest; |
| 5525 | 5503 | |
| 5526 | 5504 | const res = c_modify_by_ref_param(.{ .val = 1, .arr = undefined }); |
| 5527 | 5505 | try expect(res.val == 42); |
| ... | ... | @@ -5543,7 +5521,7 @@ const ByVal = extern struct { |
| 5543 | 5521 | extern fn c_func_ptr_byval(*anyopaque, *anyopaque, ByVal, c_ulong, *anyopaque, c_ulong) void; |
| 5544 | 5522 | test "C function that takes byval struct called via function pointer" { |
| 5545 | 5523 | if (builtin.cpu.arch.isMIPS() and builtin.mode != .Debug) return error.SkipZigTest; |
| 5546 | | if (builtin.cpu.arch.isPPC()) return error.SkipZigTest; |
| 5524 | if (builtin.cpu.arch.isPowerPC32()) return error.SkipZigTest; |
| 5547 | 5525 | |
| 5548 | 5526 | var fn_ptr = &c_func_ptr_byval; |
| 5549 | 5527 | _ = &fn_ptr; |
| ... | ... | @@ -5574,8 +5552,7 @@ const f16_struct = extern struct { |
| 5574 | 5552 | extern fn c_f16_struct(f16_struct) f16_struct; |
| 5575 | 5553 | test "f16 struct" { |
| 5576 | 5554 | if (builtin.target.cpu.arch.isMIPS()) return error.SkipZigTest; |
| 5577 | | if (builtin.target.cpu.arch.isPPC()) return error.SkipZigTest; |
| 5578 | | if (builtin.target.cpu.arch.isPPC()) return error.SkipZigTest; |
| 5555 | if (builtin.target.cpu.arch.isPowerPC32()) return error.SkipZigTest; |
| 5579 | 5556 | if (builtin.cpu.arch.isARM() and builtin.mode != .Debug) return error.SkipZigTest; |
| 5580 | 5557 | |
| 5581 | 5558 | const a = c_f16_struct(.{ .a = 12 }); |
| ... | ... | @@ -5690,8 +5667,7 @@ const Coord2 = extern struct { |
| 5690 | 5667 | extern fn stdcall_coord2(Coord2, Coord2, Coord2) callconv(stdcall_callconv) Coord2; |
| 5691 | 5668 | test "Stdcall ABI structs" { |
| 5692 | 5669 | if (builtin.cpu.arch.isMIPS()) return error.SkipZigTest; |
| 5693 | | if (builtin.cpu.arch.isPPC()) return error.SkipZigTest; |
| 5694 | | if (builtin.cpu.arch.isPPC64()) return error.SkipZigTest; |
| 5670 | if (builtin.cpu.arch.isPowerPC()) return error.SkipZigTest; |
| 5695 | 5671 | |
| 5696 | 5672 | const res = stdcall_coord2( |
| 5697 | 5673 | .{ .x = 0x1111, .y = 0x2222 }, |
| ... | ... | @@ -5704,7 +5680,7 @@ test "Stdcall ABI structs" { |
| 5704 | 5680 | |
| 5705 | 5681 | extern fn stdcall_big_union(BigUnion) callconv(stdcall_callconv) void; |
| 5706 | 5682 | test "Stdcall ABI big union" { |
| 5707 | | if (builtin.cpu.arch.isPPC()) return error.SkipZigTest; |
| 5683 | if (builtin.cpu.arch.isPowerPC32()) return error.SkipZigTest; |
| 5708 | 5684 | |
| 5709 | 5685 | const x = BigUnion{ |
| 5710 | 5686 | .a = BigStruct{ |
| ... | ... | @@ -5776,7 +5752,7 @@ const byval_tail_callsite_attr = struct { |
| 5776 | 5752 | |
| 5777 | 5753 | test "byval tail callsite attribute" { |
| 5778 | 5754 | if (builtin.cpu.arch.isMIPS()) return error.SkipZigTest; |
| 5779 | | if (builtin.cpu.arch.isPPC()) return error.SkipZigTest; |
| 5755 | if (builtin.cpu.arch.isPowerPC32()) return error.SkipZigTest; |
| 5780 | 5756 | |
| 5781 | 5757 | // Originally reported at https://github.com/ziglang/zig/issues/16290 |
| 5782 | 5758 | // the bug was that the extern function had the byval attribute, but |