Skip to content

Commit b030280

Browse files
committed
Blacklist powerpc-unknown-linux-gnu as having non-ignored GNU C ZSTs.
1 parent 6317721 commit b030280

File tree

1 file changed

+8
-3
lines changed

1 file changed

+8
-3
lines changed

src/librustc/ty/layout.rs

+8-3
Original file line numberDiff line numberDiff line change
@@ -2547,6 +2547,8 @@ where
25472547
target.target_os == "linux" && target.arch == "s390x" && target.target_env == "gnu";
25482548
let linux_sparc64 =
25492549
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";
25502552
let rust_abi = match sig.abi {
25512553
RustIntrinsic | PlatformIntrinsic | Rust | RustCall => true,
25522554
_ => false,
@@ -2617,9 +2619,12 @@ where
26172619
if arg.layout.is_zst() {
26182620
// For some forsaken reason, x86_64-pc-windows-gnu
26192621
// 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+
{
26232628
arg.mode = PassMode::Ignore;
26242629
}
26252630
}

0 commit comments

Comments
 (0)