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