From 9a11174287c78e6f807823fdfbdf4c27c0cad3d9 Mon Sep 17 00:00:00 2001 From: Fangrui Song Date: Fri, 8 May 2020 16:50:34 -0700 Subject: [PATCH] [Driver] Add -fno-test-coverage --- clang/include/clang/Driver/Options.td | 1 + clang/lib/Driver/ToolChains/Clang.cpp | 3 ++- clang/test/Driver/coverage.c | 7 +++++++ 3 files changed, 10 insertions(+), 1 deletion(-) diff --git a/clang/include/clang/Driver/Options.td b/clang/include/clang/Driver/Options.td index ef8ccb5..0d00e34 100644 --- a/clang/include/clang/Driver/Options.td +++ b/clang/include/clang/Driver/Options.td @@ -1875,6 +1875,7 @@ def foptimization_record_passes_EQ : Joined<["-"], "foptimization-record-passes= MetaVarName<"">; def ftest_coverage : Flag<["-"], "ftest-coverage">, Group; +def fno_test_coverage : Flag<["-"], "fno-test-coverage">, Group; def fvectorize : Flag<["-"], "fvectorize">, Group, HelpText<"Enable the loop vectorization passes">; def fno_vectorize : Flag<["-"], "fno-vectorize">, Group; diff --git a/clang/lib/Driver/ToolChains/Clang.cpp b/clang/lib/Driver/ToolChains/Clang.cpp index 7d52d7f..42d5af7 100644 --- a/clang/lib/Driver/ToolChains/Clang.cpp +++ b/clang/lib/Driver/ToolChains/Clang.cpp @@ -861,7 +861,8 @@ static void addPGOAndCoverageFlags(const ToolChain &TC, Compilation &C, } } - bool EmitCovNotes = Args.hasArg(options::OPT_ftest_coverage) || + bool EmitCovNotes = Args.hasFlag(options::OPT_ftest_coverage, + options::OPT_fno_test_coverage, false) || Args.hasArg(options::OPT_coverage); bool EmitCovData = TC.needsGCovInstrumentation(Args); if (EmitCovNotes) diff --git a/clang/test/Driver/coverage.c b/clang/test/Driver/coverage.c index 4e1b49b..f8f49371 100644 --- a/clang/test/Driver/coverage.c +++ b/clang/test/Driver/coverage.c @@ -1,3 +1,10 @@ +// RUN: %clang -### -S -ftest-coverage %s 2>&1 | FileCheck --check-prefix=TEST-COVERAGE %s +// RUN: %clang -### -S -ftest-coverage -fno-test-coverage %s 2>&1 | FileCheck --check-prefix=NO-TEST-COVERAGE %s + +// TEST-COVERAGE: "-femit-coverage-notes" +// TEST-COVERAGE: "-coverage-notes-file" "{{.*}}{{/|\\\\}}coverage.gcno" +// NO-TEST-COVERAGE-NOT: "-coverage-notes-file" + // RUN: %clang -### -S -fprofile-arcs %s 2>&1 | FileCheck --check-prefix=PROFILE-ARCS %s // RUN: %clang -### -S -fprofile-arcs -fno-profile-arcs %s 2>&1 | FileCheck --check-prefix=NO-PROFILE-ARCS %s -- 2.7.4