about summary refs log tree commit diff
diff options
context:
space:
mode:
authorJonas Schievink <jonasschievink@gmail.com>2020-08-26 22:11:53 +0200
committerJonas Schievink <jonasschievink@gmail.com>2020-10-12 01:45:00 +0200
commit4f5394199b9823df781501e70a81bb30638cfb73 (patch)
treea9507f62ff285c756516931331df5c7a3c0686d7
parentc71248b70870960af9993de4f31d3cba9bbce7e8 (diff)
downloadrust-4f5394199b9823df781501e70a81bb30638cfb73.tar.gz
rust-4f5394199b9823df781501e70a81bb30638cfb73.zip
Fix -Clinker-plugin-lto with opt-levels s and z
-rw-r--r--compiler/rustc_codegen_ssa/src/back/linker.rs4
-rw-r--r--src/test/ui/lto-opt-level-s.rs6
-rw-r--r--src/test/ui/lto-opt-level-z.rs6
3 files changed, 13 insertions, 3 deletions
diff --git a/compiler/rustc_codegen_ssa/src/back/linker.rs b/compiler/rustc_codegen_ssa/src/back/linker.rs
index 0ddf8bd316f..09dc51c57c2 100644
--- a/compiler/rustc_codegen_ssa/src/back/linker.rs
+++ b/compiler/rustc_codegen_ssa/src/back/linker.rs
@@ -221,10 +221,8 @@ impl<'a> GccLinker<'a> {
         let opt_level = match self.sess.opts.optimize {
             config::OptLevel::No => "O0",
             config::OptLevel::Less => "O1",
-            config::OptLevel::Default => "O2",
+            config::OptLevel::Default | config::OptLevel::Size | config::OptLevel::SizeMin => "O2",
             config::OptLevel::Aggressive => "O3",
-            config::OptLevel::Size => "Os",
-            config::OptLevel::SizeMin => "Oz",
         };
 
         self.linker_arg(&format!("-plugin-opt={}", opt_level));
diff --git a/src/test/ui/lto-opt-level-s.rs b/src/test/ui/lto-opt-level-s.rs
new file mode 100644
index 00000000000..ad3934efdd8
--- /dev/null
+++ b/src/test/ui/lto-opt-level-s.rs
@@ -0,0 +1,6 @@
+// compile-flags: -Clinker-plugin-lto -Copt-level=s
+// build-pass
+
+#![crate_type = "rlib"]
+
+pub fn foo() {}
diff --git a/src/test/ui/lto-opt-level-z.rs b/src/test/ui/lto-opt-level-z.rs
new file mode 100644
index 00000000000..3e77eb6170f
--- /dev/null
+++ b/src/test/ui/lto-opt-level-z.rs
@@ -0,0 +1,6 @@
+// compile-flags: -Clinker-plugin-lto -Copt-level=z
+// build-pass
+
+#![crate_type = "rlib"]
+
+pub fn foo() {}