From: Kostya Serebryany Date: Mon, 18 Apr 2016 21:30:17 +0000 (+0000) Subject: [sanitizer-coverage] make sure coverage flags are not passed to clang if the driver... X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=84f5b6cd365d79c8312092a9f4d40f48f1ddacae;p=clang [sanitizer-coverage] make sure coverage flags are not passed to clang if the driver thinks they are unused git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@266673 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/lib/Driver/SanitizerArgs.cpp b/lib/Driver/SanitizerArgs.cpp index 17037108ab..ff9a0b4ca4 100644 --- a/lib/Driver/SanitizerArgs.cpp +++ b/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/test/Driver/fsanitize-coverage.c b/test/Driver/fsanitize-coverage.c index 19b4af43a2..a13b530f26 100644 --- a/test/Driver/fsanitize-coverage.c +++ b/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