[clang] 0d4a33b - [Driver] Don't warn -Wunused-command-line-argument for --coverage -ftest-coverage -fprofile-arcs
Fangrui Song via cfe-commits
cfe-commits at lists.llvm.org
Fri May 8 16:31:23 PDT 2020
Author: Fangrui Song
Date: 2020-05-08T16:31:15-07:00
New Revision: 0d4a33ba61b7f1622eda4ec60c74a7eb7b1fcbcf
URL: https://github.com/llvm/llvm-project/commit/0d4a33ba61b7f1622eda4ec60c74a7eb7b1fcbcf
DIFF: https://github.com/llvm/llvm-project/commit/0d4a33ba61b7f1622eda4ec60c74a7eb7b1fcbcf.diff
LOG: [Driver] Don't warn -Wunused-command-line-argument for --coverage -ftest-coverage -fprofile-arcs
Added:
Modified:
clang/lib/Driver/ToolChain.cpp
clang/lib/Driver/ToolChains/Clang.cpp
clang/test/Driver/coverage.c
Removed:
################################################################################
diff --git a/clang/lib/Driver/ToolChain.cpp b/clang/lib/Driver/ToolChain.cpp
index a6bc953d6a51..c8f6207ec584 100644
--- a/clang/lib/Driver/ToolChain.cpp
+++ b/clang/lib/Driver/ToolChain.cpp
@@ -512,9 +512,9 @@ bool ToolChain::needsProfileRT(const ArgList &Args) {
}
bool ToolChain::needsGCovInstrumentation(const llvm::opt::ArgList &Args) {
- return Args.hasFlag(options::OPT_fprofile_arcs, options::OPT_fno_profile_arcs,
- false) ||
- Args.hasArg(options::OPT_coverage);
+ return Args.hasArg(options::OPT_coverage) ||
+ Args.hasFlag(options::OPT_fprofile_arcs, options::OPT_fno_profile_arcs,
+ false);
}
Tool *ToolChain::SelectTool(const JobAction &JA) const {
diff --git a/clang/lib/Driver/ToolChains/Clang.cpp b/clang/lib/Driver/ToolChains/Clang.cpp
index 04c05a8f53e3..7d52d7faa48f 100644
--- a/clang/lib/Driver/ToolChains/Clang.cpp
+++ b/clang/lib/Driver/ToolChains/Clang.cpp
@@ -863,9 +863,7 @@ static void addPGOAndCoverageFlags(const ToolChain &TC, Compilation &C,
bool EmitCovNotes = Args.hasArg(options::OPT_ftest_coverage) ||
Args.hasArg(options::OPT_coverage);
- bool EmitCovData = Args.hasFlag(options::OPT_fprofile_arcs,
- options::OPT_fno_profile_arcs, false) ||
- Args.hasArg(options::OPT_coverage);
+ bool EmitCovData = TC.needsGCovInstrumentation(Args);
if (EmitCovNotes)
CmdArgs.push_back("-femit-coverage-notes");
if (EmitCovData)
diff --git a/clang/test/Driver/coverage.c b/clang/test/Driver/coverage.c
index 24e8ac9d888b..4e1b49bd3a72 100644
--- a/clang/test/Driver/coverage.c
+++ b/clang/test/Driver/coverage.c
@@ -12,6 +12,9 @@
// GCNO-LOCATION: "-coverage-notes-file" "{{.*}}/foo/bar.gcno"
// GCNO-LOCATION-REL: "-coverage-notes-file" "{{.*}}{{/|\\\\}}foo/bar.gcno"
+/// Don't warn -Wunused-command-line-argument.
+// RUN: %clang -E -Werror --coverage -ftest-coverage -fprofile-arcs %s
+
/// Test -fprofile-dir=
// RUN: not %clang -S -Werror -fprofile-dir=abc %s
// RUN: not %clang -S -Werror -ftest-coverage -fprofile-dir=abc %s
More information about the cfe-commits
mailing list