[llvm-branch-commits] [clang] 4cde428 - [clang] Stop parsing warning suppression mappings in driver (#125722)
Tom Stellard via llvm-branch-commits
llvm-branch-commits at lists.llvm.org
Fri Feb 7 12:50:47 PST 2025
Author: kadir çetinkaya
Date: 2025-02-07T12:49:40-08:00
New Revision: 4cde428de0fe9f16d6c2d8fdbe501aa701c9c6ea
URL: https://github.com/llvm/llvm-project/commit/4cde428de0fe9f16d6c2d8fdbe501aa701c9c6ea
DIFF: https://github.com/llvm/llvm-project/commit/4cde428de0fe9f16d6c2d8fdbe501aa701c9c6ea.diff
LOG: [clang] Stop parsing warning suppression mappings in driver (#125722)
This gets rid of some extra IO from driver startup, and possiblity of
emitting warnings twice.
(cherry picked from commit df22bbe2beb57687c76402bc0cfdf7901a31cf29)
Added:
clang/test/Driver/warning-suppression-mappings-not-parsed.cpp
Modified:
clang/tools/driver/driver.cpp
Removed:
################################################################################
diff --git a/clang/test/Driver/warning-suppression-mappings-not-parsed.cpp b/clang/test/Driver/warning-suppression-mappings-not-parsed.cpp
new file mode 100644
index 000000000000000..8f52fb1c6cc7d6c
--- /dev/null
+++ b/clang/test/Driver/warning-suppression-mappings-not-parsed.cpp
@@ -0,0 +1,5 @@
+// RUN: rm -rf %t
+// RUN: mkdir -p %t
+// RUN: echo '[unknown-warning]' > %t/foo.txt
+// RUN: %clang -fdriver-only --warning-suppression-mappings=%t/foo.txt %s | FileCheck -allow-empty %s
+// CHECK-NOT: unknown warning option 'unknown-warning'
diff --git a/clang/tools/driver/driver.cpp b/clang/tools/driver/driver.cpp
index 74923247b7ee169..00c00cea16f470f 100644
--- a/clang/tools/driver/driver.cpp
+++ b/clang/tools/driver/driver.cpp
@@ -318,6 +318,10 @@ int clang_main(int Argc, char **Argv, const llvm::ToolContext &ToolContext) {
IntrusiveRefCntPtr<DiagnosticOptions> DiagOpts =
CreateAndPopulateDiagOpts(Args);
+ // Driver's diagnostics don't use suppression mappings, so don't bother
+ // parsing them. CC1 still receives full args, so this doesn't impact other
+ // actions.
+ DiagOpts->DiagnosticSuppressionMappingsFile.clear();
TextDiagnosticPrinter *DiagClient
= new TextDiagnosticPrinter(llvm::errs(), &*DiagOpts);
More information about the llvm-branch-commits
mailing list