| ... | ... | @@ -161,7 +161,7 @@ extern fn c_cmultf(a: ComplexFloat, b: ComplexFloat) ComplexFloat; |
| 161 | 161 | extern fn c_cmultd(a: ComplexDouble, b: ComplexDouble) ComplexDouble; |
| 162 | 162 | |
| 163 | 163 | const complex_abi_compatible = builtin.cpu.arch != .x86 and !builtin.cpu.arch.isMIPS() and |
| 164 | | !builtin.cpu.arch.isArm() and !builtin.cpu.arch.isPowerPC32() and !builtin.cpu.arch.isRISCV() and |
| 164 | !builtin.cpu.arch.isArm() and !builtin.cpu.arch.isPowerPC() and !builtin.cpu.arch.isRISCV() and |
| 165 | 165 | builtin.cpu.arch != .hexagon and |
| 166 | 166 | builtin.cpu.arch != .s390x and |
| 167 | 167 | !(builtin.cpu.arch.isLoongArch() and builtin.abi.float() == .soft); |
| ... | ... | @@ -15384,7 +15384,7 @@ test "struct u8, u8" { |
| 15384 | 15384 | if (builtin.cpu.arch == .hexagon) return error.SkipZigTest; |
| 15385 | 15385 | if (builtin.cpu.arch == .loongarch64) return error.SkipZigTest; |
| 15386 | 15386 | if (builtin.cpu.arch.isMIPS64()) return error.SkipZigTest; |
| 15387 | | if (builtin.cpu.arch.isPowerPC()) return error.SkipZigTest; |
| 15387 | if (builtin.cpu.arch.isPowerPC32()) return error.SkipZigTest; |
| 15388 | 15388 | if (builtin.cpu.arch == .x86) return error.SkipZigTest; |
| 15389 | 15389 | |
| 15390 | 15390 | const s = c_ret_struct_u8_u8(); |
| ... | ... | @@ -15418,7 +15418,7 @@ test "struct u8, u8, u8" { |
| 15418 | 15418 | if (builtin.cpu.arch == .hexagon) return error.SkipZigTest; |
| 15419 | 15419 | if (builtin.cpu.arch == .loongarch64) return error.SkipZigTest; |
| 15420 | 15420 | if (builtin.cpu.arch.isMIPS64()) return error.SkipZigTest; |
| 15421 | | if (builtin.cpu.arch.isPowerPC()) return error.SkipZigTest; |
| 15421 | if (builtin.cpu.arch.isPowerPC32()) return error.SkipZigTest; |
| 15422 | 15422 | if (builtin.cpu.arch == .x86) return error.SkipZigTest; |
| 15423 | 15423 | |
| 15424 | 15424 | const s = c_ret_struct_u8_u8_u8(); |
| ... | ... | @@ -15455,7 +15455,7 @@ test "struct u8, u8, u8, u8" { |
| 15455 | 15455 | if (builtin.cpu.arch == .hexagon) return error.SkipZigTest; |
| 15456 | 15456 | if (builtin.cpu.arch == .loongarch64) return error.SkipZigTest; |
| 15457 | 15457 | if (builtin.cpu.arch.isMIPS64()) return error.SkipZigTest; |
| 15458 | | if (builtin.cpu.arch.isPowerPC()) return error.SkipZigTest; |
| 15458 | if (builtin.cpu.arch.isPowerPC32()) return error.SkipZigTest; |
| 15459 | 15459 | if (builtin.cpu.arch == .x86) return error.SkipZigTest; |
| 15460 | 15460 | |
| 15461 | 15461 | const s = c_ret_struct_u8_u8_u8_u8(); |
| ... | ... | @@ -15516,7 +15516,7 @@ test "struct u16, u16" { |
| 15516 | 15516 | if (builtin.cpu.arch == .hexagon) return error.SkipZigTest; |
| 15517 | 15517 | if (builtin.cpu.arch == .loongarch64) return error.SkipZigTest; |
| 15518 | 15518 | if (builtin.cpu.arch.isMIPS64()) return error.SkipZigTest; |
| 15519 | | if (builtin.cpu.arch.isPowerPC()) return error.SkipZigTest; |
| 15519 | if (builtin.cpu.arch.isPowerPC32()) return error.SkipZigTest; |
| 15520 | 15520 | if (builtin.cpu.arch == .x86) return error.SkipZigTest; |
| 15521 | 15521 | |
| 15522 | 15522 | const s = c_ret_struct_u16_u16(); |
| ... | ... | @@ -15550,7 +15550,7 @@ test "struct u16, u16, u16" { |
| 15550 | 15550 | if (builtin.cpu.arch == .hexagon) return error.SkipZigTest; |
| 15551 | 15551 | if (builtin.cpu.arch == .loongarch64) return error.SkipZigTest; |
| 15552 | 15552 | if (builtin.cpu.arch.isMIPS64()) return error.SkipZigTest; |
| 15553 | | if (builtin.cpu.arch.isPowerPC()) return error.SkipZigTest; |
| 15553 | if (builtin.cpu.arch.isPowerPC32()) return error.SkipZigTest; |
| 15554 | 15554 | if (builtin.cpu.arch.isRiscv32()) return error.SkipZigTest; |
| 15555 | 15555 | if (builtin.cpu.arch == .x86) return error.SkipZigTest; |
| 15556 | 15556 | |
| ... | ... | @@ -15588,7 +15588,7 @@ test "struct u16, u16, u16, u16" { |
| 15588 | 15588 | if (builtin.cpu.arch == .hexagon) return error.SkipZigTest; |
| 15589 | 15589 | if (builtin.cpu.arch == .loongarch64) return error.SkipZigTest; |
| 15590 | 15590 | if (builtin.cpu.arch.isMIPS64()) return error.SkipZigTest; |
| 15591 | | if (builtin.cpu.arch.isPowerPC()) return error.SkipZigTest; |
| 15591 | if (builtin.cpu.arch.isPowerPC32()) return error.SkipZigTest; |
| 15592 | 15592 | if (builtin.cpu.arch.isRiscv32()) return error.SkipZigTest; |
| 15593 | 15593 | if (builtin.cpu.arch == .x86) return error.SkipZigTest; |
| 15594 | 15594 | |
| ... | ... | @@ -15649,7 +15649,7 @@ extern fn c_test_struct_u32_u32() void; |
| 15649 | 15649 | test "struct u32, u32" { |
| 15650 | 15650 | if (builtin.cpu.arch == .loongarch64) return error.SkipZigTest; |
| 15651 | 15651 | if (builtin.cpu.arch.isMIPS64()) return error.SkipZigTest; |
| 15652 | | if (builtin.cpu.arch.isPowerPC()) return error.SkipZigTest; |
| 15652 | if (builtin.cpu.arch.isPowerPC32()) return error.SkipZigTest; |
| 15653 | 15653 | if (builtin.cpu.arch.isRiscv32()) return error.SkipZigTest; |
| 15654 | 15654 | if (builtin.cpu.arch == .x86 and builtin.os.tag == .windows) return error.SkipZigTest; |
| 15655 | 15655 | |
| ... | ... | @@ -15684,7 +15684,7 @@ test "struct u32, u32, u32" { |
| 15684 | 15684 | if (builtin.cpu.arch == .hexagon) return error.SkipZigTest; |
| 15685 | 15685 | if (builtin.cpu.arch == .loongarch64) return error.SkipZigTest; |
| 15686 | 15686 | if (builtin.cpu.arch.isMIPS64()) return error.SkipZigTest; |
| 15687 | | if (builtin.cpu.arch.isPowerPC()) return error.SkipZigTest; |
| 15687 | if (builtin.cpu.arch.isPowerPC32()) return error.SkipZigTest; |
| 15688 | 15688 | |
| 15689 | 15689 | const s = c_ret_struct_u32_u32_u32(); |
| 15690 | 15690 | try expect(s.a == 8); |
| ... | ... | @@ -15720,7 +15720,7 @@ test "struct u32, u32, u32, u32" { |
| 15720 | 15720 | if (builtin.cpu.arch == .hexagon) return error.SkipZigTest; |
| 15721 | 15721 | if (builtin.cpu.arch == .loongarch64) return error.SkipZigTest; |
| 15722 | 15722 | if (builtin.cpu.arch.isMIPS64()) return error.SkipZigTest; |
| 15723 | | if (builtin.cpu.arch.isPowerPC()) return error.SkipZigTest; |
| 15723 | if (builtin.cpu.arch.isPowerPC32()) return error.SkipZigTest; |
| 15724 | 15724 | |
| 15725 | 15725 | const s = c_ret_struct_u32_u32_u32_u32(); |
| 15726 | 15726 | try expect(s.a == 10); |
| ... | ... | @@ -15866,7 +15866,7 @@ extern fn c_test_struct_u64_u64_u64() void; |
| 15866 | 15866 | test "struct u64, u64, u64" { |
| 15867 | 15867 | if (builtin.cpu.arch == .hexagon) return error.SkipZigTest; |
| 15868 | 15868 | if (builtin.cpu.arch == .loongarch64) return error.SkipZigTest; |
| 15869 | | if (builtin.cpu.arch.isPowerPC()) return error.SkipZigTest; |
| 15869 | if (builtin.cpu.arch.isPowerPC32()) return error.SkipZigTest; |
| 15870 | 15870 | |
| 15871 | 15871 | const s = c_ret_struct_u64_u64_u64(); |
| 15872 | 15872 | try expect(s.a == 8); |
| ... | ... | @@ -15901,7 +15901,7 @@ extern fn c_test_struct_u64_u64_u64_u64() void; |
| 15901 | 15901 | test "struct u64, u64, u64, u64" { |
| 15902 | 15902 | if (builtin.cpu.arch == .hexagon) return error.SkipZigTest; |
| 15903 | 15903 | if (builtin.cpu.arch == .loongarch64) return error.SkipZigTest; |
| 15904 | | if (builtin.cpu.arch.isPowerPC()) return error.SkipZigTest; |
| 15904 | if (builtin.cpu.arch.isPowerPC32()) return error.SkipZigTest; |
| 15905 | 15905 | |
| 15906 | 15906 | const s = c_ret_struct_u64_u64_u64_u64(); |
| 15907 | 15907 | try expect(s.a == 10); |
| ... | ... | @@ -15930,7 +15930,7 @@ extern fn c_test_struct_f32() void; |
| 15930 | 15930 | |
| 15931 | 15931 | test "struct f32" { |
| 15932 | 15932 | if (builtin.cpu.arch.isMIPS64()) return error.SkipZigTest; |
| 15933 | | if (builtin.cpu.arch.isPowerPC32()) return error.SkipZigTest; |
| 15933 | if (builtin.cpu.arch.isPowerPC()) return error.SkipZigTest; |
| 15934 | 15934 | if (builtin.cpu.arch == .x86 and builtin.os.tag == .windows) return error.SkipZigTest; |
| 15935 | 15935 | |
| 15936 | 15936 | const s = c_ret_struct_f32(); |
| ... | ... | @@ -16173,7 +16173,7 @@ test "struct {f32, f32}, f32" { |
| 16173 | 16173 | if (builtin.cpu.arch == .hexagon) return error.SkipZigTest; |
| 16174 | 16174 | if (builtin.cpu.arch == .loongarch64) return error.SkipZigTest; |
| 16175 | 16175 | if (builtin.cpu.arch.isMIPS64()) return error.SkipZigTest; |
| 16176 | | if (builtin.cpu.arch.isPowerPC32()) return error.SkipZigTest; |
| 16176 | if (builtin.cpu.arch.isPowerPC()) return error.SkipZigTest; |
| 16177 | 16177 | |
| 16178 | 16178 | const s = c_ret_struct_f32f32_f32(); |
| 16179 | 16179 | try expect(s.a.b == 1.0); |
| ... | ... | @@ -16206,7 +16206,7 @@ test "struct f32, {f32, f32}" { |
| 16206 | 16206 | if (builtin.cpu.arch == .hexagon) return error.SkipZigTest; |
| 16207 | 16207 | if (builtin.cpu.arch == .loongarch64) return error.SkipZigTest; |
| 16208 | 16208 | if (builtin.cpu.arch.isMIPS64()) return error.SkipZigTest; |
| 16209 | | if (builtin.cpu.arch.isPowerPC32()) return error.SkipZigTest; |
| 16209 | if (builtin.cpu.arch.isPowerPC()) return error.SkipZigTest; |
| 16210 | 16210 | |
| 16211 | 16211 | const s = c_ret_struct_f32_f32f32(); |
| 16212 | 16212 | try expect(s.a == 1.0); |
| ... | ... | @@ -16234,7 +16234,7 @@ extern fn c_test_struct_f64() void; |
| 16234 | 16234 | |
| 16235 | 16235 | test "struct f64" { |
| 16236 | 16236 | if (builtin.cpu.arch.isArm() and builtin.abi.float() == .soft) return error.SkipZigTest; |
| 16237 | | if (builtin.cpu.arch.isPowerPC32()) return error.SkipZigTest; |
| 16237 | if (builtin.cpu.arch.isPowerPC()) return error.SkipZigTest; |
| 16238 | 16238 | if (builtin.cpu.arch.isRiscv32()) return error.SkipZigTest; |
| 16239 | 16239 | if (builtin.cpu.arch == .x86 and builtin.os.tag == .windows) return error.SkipZigTest; |
| 16240 | 16240 | |
| ... | ... | @@ -16265,7 +16265,7 @@ extern fn c_test_struct_f64_f64() void; |
| 16265 | 16265 | test "struct f64, f64" { |
| 16266 | 16266 | if (builtin.cpu.arch.isArm() and builtin.abi.float() == .soft) return error.SkipZigTest; |
| 16267 | 16267 | if (builtin.cpu.arch == .hexagon) return error.SkipZigTest; |
| 16268 | | if (builtin.cpu.arch.isPowerPC32()) return error.SkipZigTest; |
| 16268 | if (builtin.cpu.arch.isPowerPC()) return error.SkipZigTest; |
| 16269 | 16269 | |
| 16270 | 16270 | const s = c_ret_struct_f64_f64(); |
| 16271 | 16271 | try expect(s.a == 6); |
| ... | ... | @@ -16297,7 +16297,7 @@ extern fn c_test_struct_f64_f64_f64() void; |
| 16297 | 16297 | test "struct f64, f64, f64" { |
| 16298 | 16298 | if (builtin.cpu.arch == .hexagon) return error.SkipZigTest; |
| 16299 | 16299 | if (builtin.cpu.arch == .loongarch64) return error.SkipZigTest; |
| 16300 | | if (builtin.cpu.arch.isPowerPC32()) return error.SkipZigTest; |
| 16300 | if (builtin.cpu.arch.isPowerPC()) return error.SkipZigTest; |
| 16301 | 16301 | |
| 16302 | 16302 | const s = c_ret_struct_f64_f64_f64(); |
| 16303 | 16303 | try expect(s.a == 8); |
| ... | ... | @@ -16332,7 +16332,7 @@ extern fn c_test_struct_f64_f64_f64_f64() void; |
| 16332 | 16332 | test "struct f64, f64, f64, f64" { |
| 16333 | 16333 | if (builtin.cpu.arch == .hexagon) return error.SkipZigTest; |
| 16334 | 16334 | if (builtin.cpu.arch == .loongarch64) return error.SkipZigTest; |
| 16335 | | if (builtin.cpu.arch.isPowerPC32()) return error.SkipZigTest; |
| 16335 | if (builtin.cpu.arch.isPowerPC()) return error.SkipZigTest; |
| 16336 | 16336 | |
| 16337 | 16337 | const s = c_ret_struct_f64_f64_f64_f64(); |
| 16338 | 16338 | try expect(s.a == 10); |
| ... | ... | @@ -16370,7 +16370,7 @@ extern fn c_test_struct_f64_f64_f64_f64_f64() void; |
| 16370 | 16370 | test "struct f64, f64, f64, f64, f64" { |
| 16371 | 16371 | if (builtin.cpu.arch == .hexagon) return error.SkipZigTest; |
| 16372 | 16372 | if (builtin.cpu.arch == .loongarch64) return error.SkipZigTest; |
| 16373 | | if (builtin.cpu.arch.isPowerPC32()) return error.SkipZigTest; |
| 16373 | if (builtin.cpu.arch.isPowerPC()) return error.SkipZigTest; |
| 16374 | 16374 | |
| 16375 | 16375 | const s = c_ret_struct_f64_f64_f64_f64_f64(); |
| 16376 | 16376 | try expect(s.a == 12); |
| ... | ... | @@ -16409,7 +16409,7 @@ test "struct{u32,union{u32,struct{u32,u32}}}" { |
| 16409 | 16409 | if (builtin.cpu.arch == .hexagon) return error.SkipZigTest; |
| 16410 | 16410 | if (builtin.cpu.arch == .loongarch64) return error.SkipZigTest; |
| 16411 | 16411 | if (builtin.cpu.arch.isMIPS64()) return error.SkipZigTest; |
| 16412 | | if (builtin.cpu.arch.isPowerPC()) return error.SkipZigTest; |
| 16412 | if (builtin.cpu.arch.isPowerPC32()) return error.SkipZigTest; |
| 16413 | 16413 | |
| 16414 | 16414 | const s = c_ret_struct_u32_union_u32_u32u32(); |
| 16415 | 16415 | try expect(s.a == 1); |
| ... | ... | @@ -16427,10 +16427,10 @@ extern fn c_mut_struct_i32_i32(Struct_i32_i32) Struct_i32_i32; |
| 16427 | 16427 | extern fn c_struct_i32_i32(Struct_i32_i32) void; |
| 16428 | 16428 | |
| 16429 | 16429 | test "struct i32 i32" { |
| 16430 | if (builtin.cpu.arch.isLoongArch()) return error.SkipZigTest; |
| 16430 | 16431 | if (builtin.cpu.arch.isMIPS64()) return error.SkipZigTest; |
| 16431 | | if (builtin.cpu.arch.isPowerPC()) return error.SkipZigTest; |
| 16432 | if (builtin.cpu.arch.isPowerPC32()) return error.SkipZigTest; |
| 16432 | 16433 | if (builtin.cpu.arch.isRiscv32()) return error.SkipZigTest; |
| 16433 | | if (builtin.cpu.arch.isLoongArch()) return error.SkipZigTest; |
| 16434 | 16434 | if (builtin.cpu.arch == .x86 and builtin.os.tag == .windows) return error.SkipZigTest; |
| 16435 | 16435 | |
| 16436 | 16436 | const s: Struct_i32_i32 = .{ |
| ... | ... | @@ -16460,10 +16460,10 @@ const BigStruct = extern struct { |
| 16460 | 16460 | extern fn c_big_struct(BigStruct) void; |
| 16461 | 16461 | |
| 16462 | 16462 | test "big struct" { |
| 16463 | | if (builtin.cpu.arch.isMIPS64()) return error.SkipZigTest; |
| 16464 | | if (builtin.cpu.arch.isPowerPC()) return error.SkipZigTest; |
| 16465 | | if (builtin.cpu.arch.isLoongArch()) return error.SkipZigTest; |
| 16466 | 16463 | if (builtin.cpu.arch == .hexagon) return error.SkipZigTest; |
| 16464 | if (builtin.cpu.arch.isLoongArch()) return error.SkipZigTest; |
| 16465 | if (builtin.cpu.arch.isMIPS64()) return error.SkipZigTest; |
| 16466 | if (builtin.cpu.arch.isPowerPC32()) return error.SkipZigTest; |
| 16467 | 16467 | |
| 16468 | 16468 | const s = BigStruct{ |
| 16469 | 16469 | .a = 1, |
| ... | ... | @@ -16489,9 +16489,9 @@ const BigUnion = extern union { |
| 16489 | 16489 | extern fn c_big_union(BigUnion) void; |
| 16490 | 16490 | |
| 16491 | 16491 | test "big union" { |
| 16492 | | if (builtin.cpu.arch.isPowerPC32()) return error.SkipZigTest; |
| 16493 | | if (builtin.cpu.arch.isLoongArch()) return error.SkipZigTest; |
| 16494 | 16492 | if (builtin.cpu.arch == .hexagon) return error.SkipZigTest; |
| 16493 | if (builtin.cpu.arch.isLoongArch()) return error.SkipZigTest; |
| 16494 | if (builtin.cpu.arch.isPowerPC32()) return error.SkipZigTest; |
| 16495 | 16495 | |
| 16496 | 16496 | const x = BigUnion{ |
| 16497 | 16497 | .a = BigStruct{ |
| ... | ... | @@ -16523,10 +16523,10 @@ extern fn c_med_struct_mixed(MedStructMixed) void; |
| 16523 | 16523 | extern fn c_ret_med_struct_mixed() MedStructMixed; |
| 16524 | 16524 | |
| 16525 | 16525 | test "medium struct of ints and floats" { |
| 16526 | | if (builtin.cpu.arch.isMIPS64()) return error.SkipZigTest; |
| 16527 | | if (builtin.cpu.arch.isPowerPC()) return error.SkipZigTest; |
| 16528 | | if (builtin.cpu.arch.isLoongArch()) return error.SkipZigTest; |
| 16529 | 16526 | if (builtin.cpu.arch == .hexagon) return error.SkipZigTest; |
| 16527 | if (builtin.cpu.arch.isLoongArch()) return error.SkipZigTest; |
| 16528 | if (builtin.cpu.arch.isMIPS64()) return error.SkipZigTest; |
| 16529 | if (builtin.cpu.arch.isPowerPC32()) return error.SkipZigTest; |
| 16530 | 16530 | |
| 16531 | 16531 | const s = MedStructMixed{ |
| 16532 | 16532 | .a = 1234, |
| ... | ... | @@ -16602,11 +16602,11 @@ const SplitStructInt = extern struct { |
| 16602 | 16602 | extern fn c_split_struct_ints(SplitStructInt) void; |
| 16603 | 16603 | |
| 16604 | 16604 | test "split struct of ints" { |
| 16605 | | if (builtin.cpu.arch == .x86) return error.SkipZigTest; |
| 16606 | | if (builtin.cpu.arch.isMIPS64()) return error.SkipZigTest; |
| 16607 | | if (builtin.cpu.arch.isPowerPC()) return error.SkipZigTest; |
| 16608 | | if (builtin.cpu.arch.isLoongArch()) return error.SkipZigTest; |
| 16609 | 16605 | if (builtin.cpu.arch == .hexagon) return error.SkipZigTest; |
| 16606 | if (builtin.cpu.arch.isLoongArch()) return error.SkipZigTest; |
| 16607 | if (builtin.cpu.arch.isMIPS64()) return error.SkipZigTest; |
| 16608 | if (builtin.cpu.arch.isPowerPC32()) return error.SkipZigTest; |
| 16609 | if (builtin.cpu.arch == .x86) return error.SkipZigTest; |
| 16610 | 16610 | |
| 16611 | 16611 | const s = SplitStructInt{ |
| 16612 | 16612 | .a = 1234, |
| ... | ... | @@ -16631,11 +16631,11 @@ extern fn c_split_struct_mixed(SplitStructMixed) void; |
| 16631 | 16631 | extern fn c_ret_split_struct_mixed() SplitStructMixed; |
| 16632 | 16632 | |
| 16633 | 16633 | test "split struct of ints and floats" { |
| 16634 | | if (builtin.cpu.arch == .x86) return error.SkipZigTest; |
| 16635 | | if (builtin.cpu.arch.isMIPS64()) return error.SkipZigTest; |
| 16636 | | if (builtin.cpu.arch.isPowerPC()) return error.SkipZigTest; |
| 16637 | | if (builtin.cpu.arch.isLoongArch()) return error.SkipZigTest; |
| 16638 | 16634 | if (builtin.cpu.arch == .hexagon) return error.SkipZigTest; |
| 16635 | if (builtin.cpu.arch.isLoongArch()) return error.SkipZigTest; |
| 16636 | if (builtin.cpu.arch.isMIPS64()) return error.SkipZigTest; |
| 16637 | if (builtin.cpu.arch.isPowerPC32()) return error.SkipZigTest; |
| 16638 | if (builtin.cpu.arch == .x86) return error.SkipZigTest; |
| 16639 | 16639 | |
| 16640 | 16640 | const s = SplitStructMixed{ |
| 16641 | 16641 | .a = 1234, |
| ... | ... | @@ -16658,10 +16658,10 @@ export fn zig_split_struct_mixed(x: SplitStructMixed) void { |
| 16658 | 16658 | extern fn c_big_struct_both(BigStruct) BigStruct; |
| 16659 | 16659 | |
| 16660 | 16660 | test "sret and byval together" { |
| 16661 | | if (builtin.cpu.arch.isMIPS64()) return error.SkipZigTest; |
| 16662 | | if (builtin.cpu.arch.isPowerPC()) return error.SkipZigTest; |
| 16663 | | if (builtin.cpu.arch.isLoongArch()) return error.SkipZigTest; |
| 16664 | 16661 | if (builtin.cpu.arch == .hexagon) return error.SkipZigTest; |
| 16662 | if (builtin.cpu.arch.isLoongArch()) return error.SkipZigTest; |
| 16663 | if (builtin.cpu.arch.isMIPS64()) return error.SkipZigTest; |
| 16664 | if (builtin.cpu.arch.isPowerPC32()) return error.SkipZigTest; |
| 16665 | 16665 | |
| 16666 | 16666 | const s = BigStruct{ |
| 16667 | 16667 | .a = 1, |
| ... | ... | @@ -16771,11 +16771,11 @@ extern fn c_struct_with_array(StructWithArray) void; |
| 16771 | 16771 | extern fn c_ret_struct_with_array() StructWithArray; |
| 16772 | 16772 | |
| 16773 | 16773 | test "Struct with array as padding." { |
| 16774 | | if (builtin.cpu.arch == .x86) return error.SkipZigTest; |
| 16775 | | if (builtin.cpu.arch.isMIPS64()) return error.SkipZigTest; |
| 16776 | | if (builtin.cpu.arch.isPowerPC()) return error.SkipZigTest; |
| 16777 | | if (builtin.cpu.arch.isLoongArch()) return error.SkipZigTest; |
| 16778 | 16774 | if (builtin.cpu.arch == .hexagon) return error.SkipZigTest; |
| 16775 | if (builtin.cpu.arch.isLoongArch()) return error.SkipZigTest; |
| 16776 | if (builtin.cpu.arch.isMIPS64()) return error.SkipZigTest; |
| 16777 | if (builtin.cpu.arch.isPowerPC32()) return error.SkipZigTest; |
| 16778 | if (builtin.cpu.arch == .x86) return error.SkipZigTest; |
| 16779 | 16779 | |
| 16780 | 16780 | c_struct_with_array(.{ .a = 1, .padding = undefined, .b = 2 }); |
| 16781 | 16781 | |
| ... | ... | @@ -16799,10 +16799,10 @@ extern fn c_float_array_struct(FloatArrayStruct) void; |
| 16799 | 16799 | extern fn c_ret_float_array_struct() FloatArrayStruct; |
| 16800 | 16800 | |
| 16801 | 16801 | test "Float array like struct" { |
| 16802 | | if (builtin.cpu.arch.isMIPS64()) return error.SkipZigTest; |
| 16803 | | if (builtin.cpu.arch.isPowerPC32()) return error.SkipZigTest; |
| 16804 | | if (builtin.cpu.arch.isLoongArch()) return error.SkipZigTest; |
| 16805 | 16802 | if (builtin.cpu.arch == .hexagon) return error.SkipZigTest; |
| 16803 | if (builtin.cpu.arch.isLoongArch()) return error.SkipZigTest; |
| 16804 | if (builtin.cpu.arch.isMIPS64()) return error.SkipZigTest; |
| 16805 | if (builtin.cpu.arch.isPowerPC()) return error.SkipZigTest; |
| 16806 | 16806 | |
| 16807 | 16807 | c_float_array_struct(.{ |
| 16808 | 16808 | .origin = .{ |
| ... | ... | @@ -16833,33 +16833,37 @@ pub inline fn expectOk(c_err: c_int) !void { |
| 16833 | 16833 | /// Tests for Double + Char struct |
| 16834 | 16834 | const DC = extern struct { v1: f64, v2: u8 }; |
| 16835 | 16835 | test "DC: Zig passes to C" { |
| 16836 | if (builtin.cpu.arch == .hexagon) return error.SkipZigTest; |
| 16837 | if (builtin.cpu.arch.isLoongArch()) return error.SkipZigTest; |
| 16836 | 16838 | if (builtin.cpu.arch.isMIPS64()) return error.SkipZigTest; |
| 16839 | if (builtin.cpu.arch.isPowerPC32()) return error.SkipZigTest; |
| 16837 | 16840 | if (builtin.cpu.arch.isRISCV()) return error.SkipZigTest; |
| 16838 | | if (builtin.cpu.arch.isPowerPC()) return error.SkipZigTest; |
| 16839 | | if (builtin.cpu.arch.isLoongArch()) return error.SkipZigTest; |
| 16840 | | if (builtin.cpu.arch == .hexagon) return error.SkipZigTest; |
| 16841 | |
| 16841 | 16842 | try expectOk(c_assert_DC(.{ .v1 = -0.25, .v2 = 15 })); |
| 16842 | 16843 | } |
| 16843 | 16844 | test "DC: Zig returns to C" { |
| 16845 | if (builtin.cpu.arch.isLoongArch()) return error.SkipZigTest; |
| 16844 | 16846 | if (builtin.cpu.arch.isMIPS64()) return error.SkipZigTest; |
| 16847 | if (builtin.cpu.arch.isPowerPC32()) return error.SkipZigTest; |
| 16845 | 16848 | if (builtin.cpu.arch.isRISCV()) return error.SkipZigTest; |
| 16846 | | if (builtin.cpu.arch.isPowerPC()) return error.SkipZigTest; |
| 16847 | | if (builtin.cpu.arch.isLoongArch()) return error.SkipZigTest; |
| 16849 | |
| 16848 | 16850 | try expectOk(c_assert_ret_DC()); |
| 16849 | 16851 | } |
| 16850 | 16852 | test "DC: C passes to Zig" { |
| 16853 | if (builtin.cpu.arch == .hexagon) return error.SkipZigTest; |
| 16854 | if (builtin.cpu.arch.isLoongArch()) return error.SkipZigTest; |
| 16851 | 16855 | if (builtin.cpu.arch.isMIPS64()) return error.SkipZigTest; |
| 16856 | if (builtin.cpu.arch.isPowerPC32()) return error.SkipZigTest; |
| 16852 | 16857 | if (builtin.cpu.arch.isRISCV()) return error.SkipZigTest; |
| 16853 | | if (builtin.cpu.arch.isPowerPC()) return error.SkipZigTest; |
| 16854 | | if (builtin.cpu.arch.isLoongArch()) return error.SkipZigTest; |
| 16855 | | if (builtin.cpu.arch == .hexagon) return error.SkipZigTest; |
| 16858 | |
| 16856 | 16859 | try expectOk(c_send_DC()); |
| 16857 | 16860 | } |
| 16858 | 16861 | test "DC: C returns to Zig" { |
| 16862 | if (builtin.cpu.arch.isLoongArch()) return error.SkipZigTest; |
| 16859 | 16863 | if (builtin.cpu.arch.isMIPS64()) return error.SkipZigTest; |
| 16864 | if (builtin.cpu.arch.isPowerPC32()) return error.SkipZigTest; |
| 16860 | 16865 | if (builtin.cpu.arch.isRISCV()) return error.SkipZigTest; |
| 16861 | | if (builtin.cpu.arch.isPowerPC()) return error.SkipZigTest; |
| 16862 | | if (builtin.cpu.arch.isLoongArch()) return error.SkipZigTest; |
| 16866 | |
| 16863 | 16867 | try expectEqual(DC{ .v1 = -0.25, .v2 = 15 }, c_ret_DC()); |
| 16864 | 16868 | } |
| 16865 | 16869 | |
| ... | ... | @@ -16884,32 +16888,35 @@ const CFF = extern struct { v1: u8, v2: f32, v3: f32 }; |
| 16884 | 16888 | test "CFF: Zig passes to C" { |
| 16885 | 16889 | if (builtin.target.cpu.arch == .x86) return error.SkipZigTest; |
| 16886 | 16890 | if (builtin.cpu.arch.isMIPS64()) return error.SkipZigTest; |
| 16887 | | if (builtin.cpu.arch.isPowerPC()) return error.SkipZigTest; |
| 16891 | if (builtin.cpu.arch.isPowerPC32()) return error.SkipZigTest; |
| 16888 | 16892 | if (builtin.cpu.arch.isLoongArch()) return error.SkipZigTest; |
| 16889 | 16893 | if (builtin.cpu.arch == .hexagon) return error.SkipZigTest; |
| 16894 | |
| 16890 | 16895 | try expectOk(c_assert_CFF(.{ .v1 = 39, .v2 = 0.875, .v3 = 1.0 })); |
| 16891 | 16896 | } |
| 16892 | 16897 | test "CFF: Zig returns to C" { |
| 16893 | 16898 | if (builtin.cpu.arch.isMIPS64()) return error.SkipZigTest; |
| 16894 | | if (builtin.cpu.arch.isPowerPC()) return error.SkipZigTest; |
| 16899 | if (builtin.cpu.arch.isPowerPC32()) return error.SkipZigTest; |
| 16895 | 16900 | if (builtin.cpu.arch.isLoongArch()) return error.SkipZigTest; |
| 16901 | |
| 16896 | 16902 | try expectOk(c_assert_ret_CFF()); |
| 16897 | 16903 | } |
| 16898 | 16904 | test "CFF: C passes to Zig" { |
| 16899 | | if (builtin.target.cpu.arch == .x86) return error.SkipZigTest; |
| 16900 | | if (builtin.cpu.arch.isRISCV() and builtin.mode != .debug) return error.SkipZigTest; |
| 16901 | | if (builtin.cpu.arch.isMIPS64()) return error.SkipZigTest; |
| 16902 | | if (builtin.cpu.arch.isPowerPC()) return error.SkipZigTest; |
| 16903 | | if (builtin.cpu.arch.isLoongArch()) return error.SkipZigTest; |
| 16904 | 16905 | if (builtin.cpu.arch == .hexagon) return error.SkipZigTest; |
| 16906 | if (builtin.cpu.arch.isLoongArch()) return error.SkipZigTest; |
| 16907 | if (builtin.cpu.arch.isMIPS64()) return error.SkipZigTest; |
| 16908 | if (builtin.cpu.arch.isPowerPC32()) return error.SkipZigTest; |
| 16909 | if (builtin.cpu.arch.isRISCV() and builtin.mode != .debug) return error.SkipZigTest; |
| 16910 | if (builtin.target.cpu.arch == .x86) return error.SkipZigTest; |
| 16905 | 16911 | |
| 16906 | 16912 | try expectOk(c_send_CFF()); |
| 16907 | 16913 | } |
| 16908 | 16914 | test "CFF: C returns to Zig" { |
| 16909 | | if (builtin.cpu.arch.isRISCV() and builtin.mode != .debug) return error.SkipZigTest; |
| 16910 | | if (builtin.cpu.arch.isMIPS64()) return error.SkipZigTest; |
| 16911 | | if (builtin.cpu.arch.isPowerPC()) return error.SkipZigTest; |
| 16912 | 16915 | if (builtin.cpu.arch.isLoongArch()) return error.SkipZigTest; |
| 16916 | if (builtin.cpu.arch.isMIPS64()) return error.SkipZigTest; |
| 16917 | if (builtin.cpu.arch.isPowerPC32()) return error.SkipZigTest; |
| 16918 | if (builtin.cpu.arch.isRISCV() and builtin.mode != .debug) return error.SkipZigTest; |
| 16919 | |
| 16913 | 16920 | try expectEqual(CFF{ .v1 = 39, .v2 = 0.875, .v3 = 1.0 }, c_ret_CFF()); |
| 16914 | 16921 | } |
| 16915 | 16922 | pub extern fn c_assert_CFF(lv: CFF) c_int; |
| ... | ... | @@ -16932,31 +16939,35 @@ pub export fn zig_ret_CFF() CFF { |
| 16932 | 16939 | const PD = extern struct { v1: ?*anyopaque, v2: f64 }; |
| 16933 | 16940 | |
| 16934 | 16941 | test "PD: Zig passes to C" { |
| 16935 | | if (builtin.cpu.arch.isMIPS64()) return error.SkipZigTest; |
| 16936 | | if (builtin.cpu.arch.isPowerPC()) return error.SkipZigTest; |
| 16937 | | if (builtin.cpu.arch.isLoongArch()) return error.SkipZigTest; |
| 16938 | 16942 | if (builtin.cpu.arch == .hexagon) return error.SkipZigTest; |
| 16943 | if (builtin.cpu.arch.isLoongArch()) return error.SkipZigTest; |
| 16944 | if (builtin.cpu.arch.isMIPS64()) return error.SkipZigTest; |
| 16945 | if (builtin.cpu.arch.isPowerPC32()) return error.SkipZigTest; |
| 16939 | 16946 | if (builtin.cpu.arch == .x86 and builtin.os.tag == .windows) return error.SkipZigTest; |
| 16947 | |
| 16940 | 16948 | try expectOk(c_assert_PD(.{ .v1 = null, .v2 = 0.5 })); |
| 16941 | 16949 | } |
| 16942 | 16950 | test "PD: Zig returns to C" { |
| 16943 | | if (builtin.cpu.arch.isMIPS64()) return error.SkipZigTest; |
| 16944 | | if (builtin.cpu.arch.isPowerPC()) return error.SkipZigTest; |
| 16945 | 16951 | if (builtin.cpu.arch.isLoongArch()) return error.SkipZigTest; |
| 16952 | if (builtin.cpu.arch.isMIPS64()) return error.SkipZigTest; |
| 16953 | if (builtin.cpu.arch.isPowerPC32()) return error.SkipZigTest; |
| 16954 | |
| 16946 | 16955 | try expectOk(c_assert_ret_PD()); |
| 16947 | 16956 | } |
| 16948 | 16957 | test "PD: C passes to Zig" { |
| 16949 | | if (builtin.cpu.arch.isMIPS64()) return error.SkipZigTest; |
| 16950 | | if (builtin.cpu.arch.isPowerPC()) return error.SkipZigTest; |
| 16951 | | if (builtin.cpu.arch.isLoongArch()) return error.SkipZigTest; |
| 16952 | 16958 | if (builtin.cpu.arch == .hexagon) return error.SkipZigTest; |
| 16959 | if (builtin.cpu.arch.isLoongArch()) return error.SkipZigTest; |
| 16960 | if (builtin.cpu.arch.isMIPS64()) return error.SkipZigTest; |
| 16961 | if (builtin.cpu.arch.isPowerPC32()) return error.SkipZigTest; |
| 16953 | 16962 | if (builtin.cpu.arch == .x86 and builtin.os.tag == .windows) return error.SkipZigTest; |
| 16963 | |
| 16954 | 16964 | try expectOk(c_send_PD()); |
| 16955 | 16965 | } |
| 16956 | 16966 | test "PD: C returns to Zig" { |
| 16957 | | if (builtin.cpu.arch.isMIPS64()) return error.SkipZigTest; |
| 16958 | | if (builtin.cpu.arch.isPowerPC()) return error.SkipZigTest; |
| 16959 | 16967 | if (builtin.cpu.arch.isLoongArch()) return error.SkipZigTest; |
| 16968 | if (builtin.cpu.arch.isMIPS64()) return error.SkipZigTest; |
| 16969 | if (builtin.cpu.arch.isPowerPC32()) return error.SkipZigTest; |
| 16970 | |
| 16960 | 16971 | try expectEqual(PD{ .v1 = null, .v2 = 0.5 }, c_ret_PD()); |
| 16961 | 16972 | } |
| 16962 | 16973 | pub extern fn c_assert_PD(lv: PD) c_int; |
| ... | ... | @@ -17010,10 +17021,10 @@ const ByVal = extern struct { |
| 17010 | 17021 | |
| 17011 | 17022 | extern fn c_func_ptr_byval(*anyopaque, *anyopaque, ByVal, c_ulong, *anyopaque, c_ulong) void; |
| 17012 | 17023 | test "C function that takes byval struct called via function pointer" { |
| 17024 | if (builtin.cpu.arch == .hexagon) return error.SkipZigTest; |
| 17025 | if (builtin.cpu.arch.isLoongArch()) return error.SkipZigTest; |
| 17013 | 17026 | if (builtin.cpu.arch.isMIPS64()) return error.SkipZigTest; |
| 17014 | 17027 | if (builtin.cpu.arch.isPowerPC32()) return error.SkipZigTest; |
| 17015 | | if (builtin.cpu.arch.isLoongArch()) return error.SkipZigTest; |
| 17016 | | if (builtin.cpu.arch == .hexagon) return error.SkipZigTest; |
| 17017 | 17028 | |
| 17018 | 17029 | var fn_ptr = &c_func_ptr_byval; |
| 17019 | 17030 | _ = &fn_ptr; |
| ... | ... | @@ -17032,17 +17043,16 @@ test "C function that takes byval struct called via function pointer" { |
| 17032 | 17043 | |
| 17033 | 17044 | extern fn c_f16(f16) f16; |
| 17034 | 17045 | test "f16 bare" { |
| 17035 | | if (builtin.cpu.arch == .x86_64) return error.SkipZigTest; |
| 17036 | | if (builtin.cpu.arch == .x86) return error.SkipZigTest; |
| 17046 | if (builtin.cpu.arch.isArm()) return error.SkipZigTest; |
| 17037 | 17047 | if (builtin.cpu.arch == .hexagon) return error.SkipZigTest; |
| 17038 | 17048 | if (builtin.cpu.arch.isLoongArch()) return error.SkipZigTest; |
| 17039 | 17049 | if (builtin.cpu.arch.isMIPS()) return error.SkipZigTest; |
| 17050 | if (builtin.cpu.arch.isPowerPC()) return error.SkipZigTest; |
| 17040 | 17051 | if (builtin.cpu.arch.isRISCV()) return error.SkipZigTest; |
| 17041 | 17052 | if (builtin.cpu.arch == .s390x) return error.SkipZigTest; |
| 17042 | 17053 | if (builtin.cpu.arch.isWasm()) return error.SkipZigTest; |
| 17043 | | if (builtin.cpu.arch.isPowerPC()) return error.SkipZigTest; |
| 17044 | | |
| 17045 | | if (builtin.cpu.arch.isArm()) return error.SkipZigTest; |
| 17054 | if (builtin.cpu.arch == .x86) return error.SkipZigTest; |
| 17055 | if (builtin.cpu.arch == .x86_64) return error.SkipZigTest; |
| 17046 | 17056 | |
| 17047 | 17057 | const a = c_f16(12); |
| 17048 | 17058 | try expect(a == 34); |
| ... | ... | @@ -17053,9 +17063,9 @@ const f16_struct = extern struct { |
| 17053 | 17063 | }; |
| 17054 | 17064 | extern fn c_f16_struct(f16_struct) f16_struct; |
| 17055 | 17065 | test "f16 struct" { |
| 17066 | if (builtin.cpu.arch.isArm() and builtin.mode != .debug) return error.SkipZigTest; |
| 17056 | 17067 | if (builtin.target.cpu.arch.isMIPS64()) return error.SkipZigTest; |
| 17057 | 17068 | if (builtin.target.cpu.arch.isPowerPC32()) return error.SkipZigTest; |
| 17058 | | if (builtin.cpu.arch.isArm() and builtin.mode != .debug) return error.SkipZigTest; |
| 17059 | 17069 | if (builtin.cpu.arch == .s390x) return error.SkipZigTest; |
| 17060 | 17070 | if (builtin.cpu.arch == .x86 and builtin.os.tag == .windows) return error.SkipZigTest; |
| 17061 | 17071 | |
| ... | ... | @@ -17162,10 +17172,10 @@ const Coord2 = extern struct { |
| 17162 | 17172 | |
| 17163 | 17173 | extern fn stdcall_coord2(Coord2, Coord2, Coord2) callconv(stdcall_callconv) Coord2; |
| 17164 | 17174 | test "Stdcall ABI structs" { |
| 17175 | if (builtin.cpu.arch == .hexagon) return error.SkipZigTest; |
| 17176 | if (builtin.cpu.arch.isLoongArch()) return error.SkipZigTest; |
| 17165 | 17177 | if (builtin.cpu.arch.isMIPS64()) return error.SkipZigTest; |
| 17166 | 17178 | if (builtin.cpu.arch.isPowerPC()) return error.SkipZigTest; |
| 17167 | | if (builtin.cpu.arch.isLoongArch()) return error.SkipZigTest; |
| 17168 | | if (builtin.cpu.arch == .hexagon) return error.SkipZigTest; |
| 17169 | 17179 | if (builtin.cpu.arch == .x86 and builtin.os.tag == .windows) return error.SkipZigTest; |
| 17170 | 17180 | |
| 17171 | 17181 | const res = stdcall_coord2( |
| ... | ... | @@ -17179,9 +17189,9 @@ test "Stdcall ABI structs" { |
| 17179 | 17189 | |
| 17180 | 17190 | extern fn stdcall_big_union(BigUnion) callconv(stdcall_callconv) void; |
| 17181 | 17191 | test "Stdcall ABI big union" { |
| 17182 | | if (builtin.cpu.arch.isPowerPC32()) return error.SkipZigTest; |
| 17183 | | if (builtin.cpu.arch.isLoongArch()) return error.SkipZigTest; |
| 17184 | 17192 | if (builtin.cpu.arch == .hexagon) return error.SkipZigTest; |
| 17193 | if (builtin.cpu.arch.isLoongArch()) return error.SkipZigTest; |
| 17194 | if (builtin.cpu.arch.isPowerPC32()) return error.SkipZigTest; |
| 17185 | 17195 | |
| 17186 | 17196 | const x = BigUnion{ |
| 17187 | 17197 | .a = BigStruct{ |
| ... | ... | @@ -17253,10 +17263,10 @@ const byval_tail_callsite_attr = struct { |
| 17253 | 17263 | }; |
| 17254 | 17264 | |
| 17255 | 17265 | test "byval tail callsite attribute" { |
| 17256 | | if (builtin.cpu.arch.isMIPS64()) return error.SkipZigTest; |
| 17257 | | if (builtin.cpu.arch.isPowerPC32()) return error.SkipZigTest; |
| 17258 | | if (builtin.cpu.arch.isLoongArch()) return error.SkipZigTest; |
| 17259 | 17266 | if (builtin.cpu.arch == .hexagon) return error.SkipZigTest; |
| 17267 | if (builtin.cpu.arch.isLoongArch()) return error.SkipZigTest; |
| 17268 | if (builtin.cpu.arch.isMIPS64()) return error.SkipZigTest; |
| 17269 | if (builtin.cpu.arch.isPowerPC()) return error.SkipZigTest; |
| 17260 | 17270 | |
| 17261 | 17271 | // Originally reported at https://github.com/ziglang/zig/issues/16290 |
| 17262 | 17272 | // the bug was that the extern function had the byval attribute, but |