From e09d7c19f48a9c754c9918b8237477286cc8ed74 Mon Sep 17 00:00:00 2001 From: jyn Date: Sun, 26 Apr 2026 16:07:28 +0000 Subject: [PATCH] Explain why `-D warnings` doesn't affect linker-warnings --- compiler/rustc_middle/src/lint.rs | 12 ++++++++++++ tests/run-make/linker-warning/deny-warnings.txt | 1 + 2 files changed, 13 insertions(+) diff --git a/compiler/rustc_middle/src/lint.rs b/compiler/rustc_middle/src/lint.rs index 7ea059c5d29d..13cdc405a8df 100644 --- a/compiler/rustc_middle/src/lint.rs +++ b/compiler/rustc_middle/src/lint.rs @@ -305,6 +305,18 @@ fn explain_lint_level_source( } } } + + if let Some(warnings_group) = sess + .opts + .lint_opts + .iter() + .find_map(|(opt, level)| (opt == "warnings").then_some(level)) + .copied() + && warnings_group >= Level::Deny + && level < warnings_group + { + err.note_once(format!("the `{name}` lint ignores `-D warnings`")); + } } /// The innermost function for emitting lints implementing the [`trait@Diagnostic`] trait. diff --git a/tests/run-make/linker-warning/deny-warnings.txt b/tests/run-make/linker-warning/deny-warnings.txt index 53137252e119..7a187af46f70 100644 --- a/tests/run-make/linker-warning/deny-warnings.txt +++ b/tests/run-make/linker-warning/deny-warnings.txt @@ -1,6 +1,7 @@ warning: linker stderr: bar | = note: requested on the command line with `-W linker-messages` + = note: the `linker_messages` lint ignores `-D warnings` warning: 1 warning emitted