diff options
| author | Ana-Maria <mihalacheana.maria@yahoo.com> | 2020-02-18 15:36:05 +0000 |
|---|---|---|
| committer | Ana-Maria <mihalacheana.maria@yahoo.com> | 2020-02-18 15:36:05 +0000 |
| commit | b0302806680da26e686ce6f0432044fcbdb4b373 (patch) | |
| tree | 8f66c3bbd1f318e5a2b8953850459c1bb028ee32 /src | |
| parent | 6317721cd951030f1f28801c34931c3c2322bc06 (diff) | |
| download | rust-b0302806680da26e686ce6f0432044fcbdb4b373.tar.gz rust-b0302806680da26e686ce6f0432044fcbdb4b373.zip | |
Blacklist powerpc-unknown-linux-gnu as having non-ignored GNU C ZSTs.
Diffstat (limited to 'src')
| -rw-r--r-- | src/librustc/ty/layout.rs | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/src/librustc/ty/layout.rs b/src/librustc/ty/layout.rs index e8bf2eb9a12..753808bc254 100644 --- a/src/librustc/ty/layout.rs +++ b/src/librustc/ty/layout.rs @@ -2547,6 +2547,8 @@ where target.target_os == "linux" && target.arch == "s390x" && target.target_env == "gnu"; let linux_sparc64 = target.target_os == "linux" && target.arch == "sparc64" && target.target_env == "gnu"; + let linux_powerpc = + target.target_os == "linux" && target.arch == "powerpc" && target.target_env == "gnu"; let rust_abi = match sig.abi { RustIntrinsic | PlatformIntrinsic | Rust | RustCall => true, _ => false, @@ -2617,9 +2619,12 @@ where if arg.layout.is_zst() { // For some forsaken reason, x86_64-pc-windows-gnu // doesn't ignore zero-sized struct arguments. - // The same is true for s390x-unknown-linux-gnu - // and sparc64-unknown-linux-gnu. - if is_return || rust_abi || (!win_x64_gnu && !linux_s390x && !linux_sparc64) { + // The same is true for s390x-unknown-linux-gnu, + // sparc64-unknown-linux-gnu and powerpc-unknown-linux-gnu. + if is_return + || rust_abi + || (!win_x64_gnu && !linux_s390x && !linux_sparc64 && !linux_powerpc) + { arg.mode = PassMode::Ignore; } } |
