about summary refs log tree commit diff
path: root/src
diff options
context:
space:
mode:
authorAna-Maria <mihalacheana.maria@yahoo.com>2020-02-18 15:36:05 +0000
committerAna-Maria <mihalacheana.maria@yahoo.com>2020-02-18 15:36:05 +0000
commitb0302806680da26e686ce6f0432044fcbdb4b373 (patch)
tree8f66c3bbd1f318e5a2b8953850459c1bb028ee32 /src
parent6317721cd951030f1f28801c34931c3c2322bc06 (diff)
downloadrust-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.rs11
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;
                 }
             }