about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--compiler/rustc_codegen_ssa/src/back/link.rs12
-rw-r--r--tests/ui/print-request/emit-warning-while-exe-and-print-link-info.rs2
-rw-r--r--tests/ui/print-request/emit-warning-while-exe-and-print-link-info.stderr2
3 files changed, 8 insertions, 8 deletions
diff --git a/compiler/rustc_codegen_ssa/src/back/link.rs b/compiler/rustc_codegen_ssa/src/back/link.rs
index 28c7b5b2745..1e9d9338b13 100644
--- a/compiler/rustc_codegen_ssa/src/back/link.rs
+++ b/compiler/rustc_codegen_ssa/src/back/link.rs
@@ -68,19 +68,19 @@ pub fn ensure_removed(dcx: DiagCtxtHandle<'_>, path: &Path) {
     }
 }
 
-fn check_link_info_print_request(sess: &Session, crate_type: CrateType) {
+fn check_link_info_print_request(sess: &Session, crate_types: &[CrateType]) {
     let print_native_static_libs =
         sess.opts.prints.iter().any(|p| p.kind == PrintKind::NativeStaticLibs);
+    let has_staticlib = crate_types.iter().any(|ct| *ct == CrateType::Staticlib);
     if print_native_static_libs {
-        if crate_type != CrateType::Staticlib {
+        if !has_staticlib {
             sess.dcx()
                 .warn(format!("cannot output linkage information without staticlib crate-type"));
             sess.dcx()
                 .note(format!("consider `--crate-type staticlib` to print linkage information"));
         } else if !sess.opts.output_types.should_link() {
-            sess.dcx().warn(format!(
-                    "cannot output linkage information when --emit link is not passed"
-                ));
+            sess.dcx()
+                .warn(format!("cannot output linkage information when --emit link is not passed"));
         }
     }
 }
@@ -196,7 +196,7 @@ pub fn link_binary(
             }
         }
 
-        check_link_info_print_request(sess, crate_type);
+        check_link_info_print_request(sess, &codegen_results.crate_info.crate_types);
     }
 
     // Remove the temporary object file and metadata if we aren't saving temps.
diff --git a/tests/ui/print-request/emit-warning-while-exe-and-print-link-info.rs b/tests/ui/print-request/emit-warning-while-exe-and-print-link-info.rs
index 48f5475c884..3e9ca457a9c 100644
--- a/tests/ui/print-request/emit-warning-while-exe-and-print-link-info.rs
+++ b/tests/ui/print-request/emit-warning-while-exe-and-print-link-info.rs
@@ -1,3 +1,3 @@
 //@ compile-flags: --print native-static-libs --crate-type staticlib  --emit metadata
 //@ check-pass
-//~? WARN skipping link step due to conflict: cannot output linkage information without emitting link
+//~? WARN cannot output linkage information when --emit link is not passed
diff --git a/tests/ui/print-request/emit-warning-while-exe-and-print-link-info.stderr b/tests/ui/print-request/emit-warning-while-exe-and-print-link-info.stderr
index 0b46d2f6848..b32e1437d6b 100644
--- a/tests/ui/print-request/emit-warning-while-exe-and-print-link-info.stderr
+++ b/tests/ui/print-request/emit-warning-while-exe-and-print-link-info.stderr
@@ -1,4 +1,4 @@
-warning: skipping link step due to conflict: cannot output linkage information without emitting link
+warning: cannot output linkage information when --emit link is not passed
 
 warning: 1 warning emitted