[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