From 9bf05a90cd9f18ea0f9409c8924e71a811d2fcf7 Mon Sep 17 00:00:00 2001 From: Nico Weber Date: Thu, 18 Feb 2016 19:32:54 +0000 Subject: [PATCH] Make deprecation message for -fsanitize-coverage= with numeric argument friendlier. http://reviews.llvm.org/D17397 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@261247 91177308-0d34-0410-b5e6-96231b3b80d8 --- lib/Driver/SanitizerArgs.cpp | 14 +++++++++++--- test/Driver/fsanitize-coverage.c | 2 +- 2 files changed, 12 insertions(+), 4 deletions(-) diff --git a/lib/Driver/SanitizerArgs.cpp b/lib/Driver/SanitizerArgs.cpp index 10a506df71..9b60407ab2 100644 --- a/lib/Driver/SanitizerArgs.cpp +++ b/lib/Driver/SanitizerArgs.cpp @@ -444,23 +444,31 @@ SanitizerArgs::SanitizerArgs(const ToolChain &TC, !StringRef(Arg->getValue(0)) .getAsInteger(0, LegacySanitizeCoverage) && LegacySanitizeCoverage >= 0 && LegacySanitizeCoverage <= 4) { - D.Diag(diag::warn_drv_deprecated_arg) - << Arg->getAsString(Args) << "-fsanitize-coverage=[func,bb,edge]"; - // TODO: Add deprecation notice for this form. switch (LegacySanitizeCoverage) { case 0: + D.Diag(diag::warn_drv_deprecated_arg) << Arg->getAsString(Args) + << "-fsanitize-coverage="; CoverageFeatures = 0; break; case 1: + D.Diag(diag::warn_drv_deprecated_arg) << Arg->getAsString(Args) + << "-fsanitize-coverage=func"; CoverageFeatures = CoverageFunc; break; case 2: + D.Diag(diag::warn_drv_deprecated_arg) << Arg->getAsString(Args) + << "-fsanitize-coverage=bb"; CoverageFeatures = CoverageBB; break; case 3: + D.Diag(diag::warn_drv_deprecated_arg) << Arg->getAsString(Args) + << "-fsanitize-coverage=edge"; CoverageFeatures = CoverageEdge; break; case 4: + D.Diag(diag::warn_drv_deprecated_arg) + << Arg->getAsString(Args) + << "-fsanitize-coverage=edge,indirect-calls"; CoverageFeatures = CoverageEdge | CoverageIndirCall; break; } diff --git a/test/Driver/fsanitize-coverage.c b/test/Driver/fsanitize-coverage.c index 2e12ff334f..3bb5deb961 100644 --- a/test/Driver/fsanitize-coverage.c +++ b/test/Driver/fsanitize-coverage.c @@ -22,7 +22,7 @@ // CHECK-SANITIZE-COVERAGE-FUNC_INDIR: fsanitize-coverage-indirect-calls // RUN: %clang -target x86_64-linux-gnu -fsanitize=address -fsanitize-coverage=3 %s -### 2>&1 | FileCheck %s --check-prefix=CHECK-SANITIZE-COVERAGE-3 -// CHECK-SANITIZE-COVERAGE-3: warning: argument '-fsanitize-coverage=3' is deprecated, use '-fsanitize-coverage=[func,bb,edge]' instead +// CHECK-SANITIZE-COVERAGE-3: warning: argument '-fsanitize-coverage=3' is deprecated, use '-fsanitize-coverage=edge' instead // // RUN: %clang -target x86_64-linux-gnu -fsanitize=address -fsanitize-coverage=5 %s -### 2>&1 | FileCheck %s --check-prefix=CHECK-SANITIZE-COVERAGE-5 // CHECK-SANITIZE-COVERAGE-5: error: unsupported argument '5' to option 'fsanitize-coverage=' -- 2.50.1