summaryrefslogtreecommitdiffstats
path: root/clang
diff options
context:
space:
mode:
authorKostya Serebryany <kcc@google.com>2016-04-18 21:30:17 +0000
committerKostya Serebryany <kcc@google.com>2016-04-18 21:30:17 +0000
commitf5b25f83e30af7c141af98f14dd9471c75b3aca8 (patch)
tree152761a80baad1436c3e597c5dfe76e0665a88bc /clang
parent6453786b2644433650cb091a480bbad63119c767 (diff)
downloadbcm5719-llvm-f5b25f83e30af7c141af98f14dd9471c75b3aca8.tar.gz
bcm5719-llvm-f5b25f83e30af7c141af98f14dd9471c75b3aca8.zip
[sanitizer-coverage] make sure coverage flags are not passed to clang if the driver thinks they are unused
llvm-svn: 266673
Diffstat (limited to 'clang')
-rw-r--r--clang/lib/Driver/SanitizerArgs.cpp2
-rw-r--r--clang/test/Driver/fsanitize-coverage.c1
2 files changed, 3 insertions, 0 deletions
diff --git a/clang/lib/Driver/SanitizerArgs.cpp b/clang/lib/Driver/SanitizerArgs.cpp
index 17037108abe..ff9a0b4ca4a 100644
--- a/clang/lib/Driver/SanitizerArgs.cpp
+++ b/clang/lib/Driver/SanitizerArgs.cpp
@@ -482,6 +482,8 @@ SanitizerArgs::SanitizerArgs(const ToolChain &TC,
if ((CoverageFeatures & CoverageTracePC) ||
(AllAddedKinds & SupportsCoverage)) {
Arg->claim();
+ } else {
+ CoverageFeatures = 0;
}
} else if (Arg->getOption().matches(options::OPT_fno_sanitize_coverage)) {
Arg->claim();
diff --git a/clang/test/Driver/fsanitize-coverage.c b/clang/test/Driver/fsanitize-coverage.c
index 19b4af43a2d..a13b530f265 100644
--- a/clang/test/Driver/fsanitize-coverage.c
+++ b/clang/test/Driver/fsanitize-coverage.c
@@ -35,6 +35,7 @@
// RUN: %clang -target x86_64-linux-gnu -fsanitize=thread -fsanitize-coverage=func %s -### 2>&1 | FileCheck %s --check-prefix=CHECK-SANITIZE-COVERAGE-UNUSED
// RUN: %clang -target x86_64-linux-gnu -fsanitize-coverage=func %s -### 2>&1 | FileCheck %s --check-prefix=CHECK-SANITIZE-COVERAGE-UNUSED
// CHECK-SANITIZE-COVERAGE-UNUSED: argument unused during compilation: '-fsanitize-coverage=func'
+// CHECK-SANITIZE-COVERAGE-UNUSED-NOT: -fsanitize-coverage-type=1
// RUN: %clang -target x86_64-linux-gnu -fsanitize=address -fsanitize-coverage=func -fno-sanitize=address %s -### 2>&1 | FileCheck %s --check-prefix=CHECK-SANITIZE-COVERAGE-SAN-DISABLED
// CHECK-SANITIZE-COVERAGE-SAN-DISABLED-NOT: argument unused
OpenPOWER on IntegriCloud