File tree 1 file changed +8
-3
lines changed
1 file changed +8
-3
lines changed Original file line number Diff line number Diff line change @@ -2547,6 +2547,8 @@ where
2547
2547
target. target_os == "linux" && target. arch == "s390x" && target. target_env == "gnu" ;
2548
2548
let linux_sparc64 =
2549
2549
target. target_os == "linux" && target. arch == "sparc64" && target. target_env == "gnu" ;
2550
+ let linux_powerpc =
2551
+ target. target_os == "linux" && target. arch == "powerpc" && target. target_env == "gnu" ;
2550
2552
let rust_abi = match sig. abi {
2551
2553
RustIntrinsic | PlatformIntrinsic | Rust | RustCall => true ,
2552
2554
_ => false ,
@@ -2617,9 +2619,12 @@ where
2617
2619
if arg. layout . is_zst ( ) {
2618
2620
// For some forsaken reason, x86_64-pc-windows-gnu
2619
2621
// doesn't ignore zero-sized struct arguments.
2620
- // The same is true for s390x-unknown-linux-gnu
2621
- // and sparc64-unknown-linux-gnu.
2622
- if is_return || rust_abi || ( !win_x64_gnu && !linux_s390x && !linux_sparc64) {
2622
+ // The same is true for s390x-unknown-linux-gnu,
2623
+ // sparc64-unknown-linux-gnu and powerpc-unknown-linux-gnu.
2624
+ if is_return
2625
+ || rust_abi
2626
+ || ( !win_x64_gnu && !linux_s390x && !linux_sparc64 && !linux_powerpc)
2627
+ {
2623
2628
arg. mode = PassMode :: Ignore ;
2624
2629
}
2625
2630
}
You can’t perform that action at this time.
0 commit comments