r301994 - [sanitizer-coverage] add a deprecation warning to the old sanitizer-coverage flag combinations
Reid Kleckner via cfe-commits
cfe-commits at lists.llvm.org
Wed May 3 09:15:45 PDT 2017
This broke a WinASan test that builds with -Werror:
http://lab.llvm.org:8011/builders/sanitizer-windows/builds/10647
I tried to fix it in r302043, but I haven't finished testing it yet.
On Tue, May 2, 2017 at 6:27 PM, Kostya Serebryany via cfe-commits <
cfe-commits at lists.llvm.org> wrote:
> Author: kcc
> Date: Tue May 2 20:27:28 2017
> New Revision: 301994
>
> URL: http://llvm.org/viewvc/llvm-project?rev=301994&view=rev
> Log:
> [sanitizer-coverage] add a deprecation warning to the old
> sanitizer-coverage flag combinations
>
> Modified:
> cfe/trunk/lib/Driver/SanitizerArgs.cpp
> cfe/trunk/test/Driver/fsanitize-coverage.c
>
> Modified: cfe/trunk/lib/Driver/SanitizerArgs.cpp
> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Driver/
> SanitizerArgs.cpp?rev=301994&r1=301993&r2=301994&view=diff
> ============================================================
> ==================
> --- cfe/trunk/lib/Driver/SanitizerArgs.cpp (original)
> +++ cfe/trunk/lib/Driver/SanitizerArgs.cpp Tue May 2 20:27:28 2017
> @@ -511,7 +511,6 @@ SanitizerArgs::SanitizerArgs(const ToolC
> << "-fsanitize-coverage=edge";
> // Basic block tracing and 8-bit counters require some type of coverage
> // enabled.
> - int CoverageTypes = CoverageFunc | CoverageBB | CoverageEdge;
> if (CoverageFeatures & CoverageTraceBB)
> D.Diag(clang::diag::warn_drv_deprecated_arg)
> << "-fsanitize-coverage=trace-bb"
> @@ -520,9 +519,18 @@ SanitizerArgs::SanitizerArgs(const ToolC
> D.Diag(clang::diag::warn_drv_deprecated_arg)
> << "-fsanitize-coverage=8bit-counters"
> << "-fsanitize-coverage=trace-pc-guard";
> +
> + int InsertionPointTypes = CoverageFunc | CoverageBB | CoverageEdge;
> + if ((CoverageFeatures & InsertionPointTypes) &&
> + !(CoverageFeatures &(CoverageTracePC | CoverageTracePCGuard))) {
> + D.Diag(clang::diag::warn_drv_deprecated_arg)
> + << "-fsanitize-coverage=[func|bb|edge]"
> + << "-fsanitize-coverage=[func|bb|edge],[trace-pc-guard|trace-
> pc]";
> + }
> +
> // trace-pc w/o func/bb/edge implies edge.
> if ((CoverageFeatures & (CoverageTracePC | CoverageTracePCGuard)) &&
> - !(CoverageFeatures & CoverageTypes))
> + !(CoverageFeatures & InsertionPointTypes))
> CoverageFeatures |= CoverageEdge;
>
> if (AllAddedKinds & Address) {
>
> Modified: cfe/trunk/test/Driver/fsanitize-coverage.c
> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Driver/
> fsanitize-coverage.c?rev=301994&r1=301993&r2=301994&view=diff
> ============================================================
> ==================
> --- cfe/trunk/test/Driver/fsanitize-coverage.c (original)
> +++ cfe/trunk/test/Driver/fsanitize-coverage.c Tue May 2 20:27:28 2017
> @@ -4,12 +4,13 @@
> // CHECK-SANITIZE-COVERAGE-0-NOT: fsanitize-coverage-type
> // CHECK-SANITIZE-COVERAGE-0: -fsanitize=address
>
> -// RUN: %clang -target x86_64-linux-gnu -fsanitize=address
> -fsanitize-coverage=func %s -### 2>&1 | FileCheck %s
> --check-prefix=CHECK-SANITIZE-COVERAGE-FUNC
> -// RUN: %clang -target x86_64-linux-gnu -fsanitize=memory
> -fsanitize-coverage=func %s -### 2>&1 | FileCheck %s
> --check-prefix=CHECK-SANITIZE-COVERAGE-FUNC
> -// RUN: %clang -target x86_64-linux-gnu -fsanitize=leak
> -fsanitize-coverage=func %s -### 2>&1 | FileCheck %s
> --check-prefix=CHECK-SANITIZE-COVERAGE-FUNC
> -// RUN: %clang -target x86_64-linux-gnu -fsanitize=undefined
> -fsanitize-coverage=func %s -### 2>&1 | FileCheck %s
> --check-prefix=CHECK-SANITIZE-COVERAGE-FUNC
> -// RUN: %clang -target x86_64-linux-gnu -fsanitize=bool
> -fsanitize-coverage=func %s -### 2>&1 | FileCheck %s
> --check-prefix=CHECK-SANITIZE-COVERAGE-FUNC
> -// RUN: %clang -target x86_64-linux-gnu -fsanitize=dataflow
> -fsanitize-coverage=func %s -### 2>&1 | FileCheck %s
> --check-prefix=CHECK-SANITIZE-COVERAGE-FUNC
> +// RUN: %clang -target x86_64-linux-gnu -fsanitize=address
> -fsanitize-coverage=func,trace-pc %s -### 2>&1 | FileCheck %s
> --check-prefix=CHECK-SANITIZE-COVERAGE-FUNC
> +// RUN: %clang -target x86_64-linux-gnu -fsanitize=memory
> -fsanitize-coverage=func,trace-pc %s -### 2>&1 | FileCheck %s
> --check-prefix=CHECK-SANITIZE-COVERAGE-FUNC
> +// RUN: %clang -target x86_64-linux-gnu -fsanitize=leak
> -fsanitize-coverage=func,trace-pc %s -### 2>&1 | FileCheck %s
> --check-prefix=CHECK-SANITIZE-COVERAGE-FUNC
> +// RUN: %clang -target x86_64-linux-gnu -fsanitize=undefined
> -fsanitize-coverage=func,trace-pc %s -### 2>&1 | FileCheck %s
> --check-prefix=CHECK-SANITIZE-COVERAGE-FUNC
> +// RUN: %clang -target x86_64-linux-gnu -fsanitize=bool
> -fsanitize-coverage=func,trace-pc %s -### 2>&1 | FileCheck %s
> --check-prefix=CHECK-SANITIZE-COVERAGE-FUNC
> +// RUN: %clang -target x86_64-linux-gnu -fsanitize=dataflow
> -fsanitize-coverage=func,trace-pc %s -### 2>&1 | FileCheck %s
> --check-prefix=CHECK-SANITIZE-COVERAGE-FUNC
> +// RUN: %clang -target x86_64-linux-gnu
> -fsanitize-coverage=func,trace-pc %s -### 2>&1 | FileCheck %s
> --check-prefix=CHECK-SANITIZE-COVERAGE-FUNC
> // CHECK-SANITIZE-COVERAGE-FUNC: fsanitize-coverage-type=1
>
> // RUN: %clang -target x86_64-linux-gnu -fsanitize=address
> -fsanitize-coverage=bb %s -### 2>&1 | FileCheck %s
> --check-prefix=CHECK-SANITIZE-COVERAGE-BB
> @@ -25,13 +26,10 @@
> // RUN: %clang -target x86_64-linux-gnu -fsanitize=address
> -fsanitize-coverage=1 %s -### 2>&1 | FileCheck %s
> --check-prefix=CHECK-SANITIZE-COVERAGE-1
> // CHECK-SANITIZE-COVERAGE-1: warning: argument '-fsanitize-coverage=1'
> is deprecated, use '-fsanitize-coverage=trace-pc-guard' instead
>
> -// 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-FUNC
> -// 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
> +// RUN: %clang -target x86_64-linux-gnu -fsanitize=address
> -fsanitize-coverage=func %s -### 2>&1 | FileCheck %s
> --check-prefix=CHECK_FUNC_BB_EDGE_DEPRECATED
> +// RUN: %clang -target x86_64-linux-gnu -fsanitize=address
> -fsanitize-coverage=bb %s -### 2>&1 | FileCheck %s
> --check-prefix=CHECK_FUNC_BB_EDGE_DEPRECATED
> +// RUN: %clang -target x86_64-linux-gnu -fsanitize=address
> -fsanitize-coverage=edge %s -### 2>&1 | FileCheck %s
> --check-prefix=CHECK_FUNC_BB_EDGE_DEPRECATED
> +// CHECK_FUNC_BB_EDGE_DEPRECATED: warning: argument
> '-fsanitize-coverage=[func|bb|edge]' is deprecated, use
> '-fsanitize-coverage=[func|bb|edge],[trace-pc-guard|trace-pc]' instead
>
> // RUN: %clang -target x86_64-linux-gnu -fsanitize=address
> -fsanitize-coverage=edge,indirect-calls,trace-pc,trace-cmp,trace-div,trace-gep
> %s -### 2>&1 | FileCheck %s --check-prefix=CHECK-SANITIZE-
> COVERAGE-FEATURES
> // CHECK-SANITIZE-COVERAGE-FEATURES: -fsanitize-coverage-type=3
> @@ -82,7 +80,7 @@
> // CHECK-EXTEND-LEGACY: -fsanitize-coverage-type=1
> // CHECK-EXTEND-LEGACY: -fsanitize-coverage-trace-cmp
>
> -// RUN: %clang_cl --target=i386-pc-win32 -fsanitize=address
> -fsanitize-coverage=func -c -### -- %s 2>&1 | FileCheck %s
> -check-prefix=CLANG-CL-COVERAGE
> +// RUN: %clang_cl --target=i386-pc-win32 -fsanitize=address
> -fsanitize-coverage=func,trace-pc-guard -c -### -- %s 2>&1 | FileCheck %s
> -check-prefix=CLANG-CL-COVERAGE
> // CLANG-CL-COVERAGE-NOT: error:
> // CLANG-CL-COVERAGE-NOT: warning:
> // CLANG-CL-COVERAGE-NOT: argument unused
>
>
> _______________________________________________
> cfe-commits mailing list
> cfe-commits at lists.llvm.org
> http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20170503/b0f52505/attachment-0001.html>
More information about the cfe-commits
mailing list