From: Kostya Serebryany Date: Wed, 4 May 2016 20:21:47 +0000 (+0000) Subject: document -f[no-]sanitize-recover=all and mention it in warning messages X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=7fd53abb77882aba48f878197a568274a99a4a6a;p=clang document -f[no-]sanitize-recover=all and mention it in warning messages git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@268540 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/docs/UsersManual.rst b/docs/UsersManual.rst index 7a9bdb96c5..018466db3e 100644 --- a/docs/UsersManual.rst +++ b/docs/UsersManual.rst @@ -985,6 +985,7 @@ are listed below. program. **-f[no-]sanitize-recover=check1,check2,...** +**-f[no-]sanitize-recover=all** Controls which checks enabled by ``-fsanitize=`` flag are non-fatal. If the check is fatal, program will halt after the first error diff --git a/lib/Driver/SanitizerArgs.cpp b/lib/Driver/SanitizerArgs.cpp index c63ff4be8a..5e6af4bd5c 100644 --- a/lib/Driver/SanitizerArgs.cpp +++ b/lib/Driver/SanitizerArgs.cpp @@ -340,11 +340,13 @@ SanitizerArgs::SanitizerArgs(const ToolChain &TC, for (const auto *Arg : Args) { const char *DeprecatedReplacement = nullptr; if (Arg->getOption().matches(options::OPT_fsanitize_recover)) { - DeprecatedReplacement = "-fsanitize-recover=undefined,integer"; + DeprecatedReplacement = + "-fsanitize-recover=undefined,integer' or '-fsanitize-recover=all"; RecoverableKinds |= expandSanitizerGroups(LegacyFsanitizeRecoverMask); Arg->claim(); } else if (Arg->getOption().matches(options::OPT_fno_sanitize_recover)) { - DeprecatedReplacement = "-fno-sanitize-recover=undefined,integer"; + DeprecatedReplacement = "-fno-sanitize-recover=undefined,integer' or " + "'-fno-sanitize-recover=all"; RecoverableKinds &= ~expandSanitizerGroups(LegacyFsanitizeRecoverMask); Arg->claim(); } else if (Arg->getOption().matches(options::OPT_fsanitize_recover_EQ)) { diff --git a/test/Driver/fsanitize.c b/test/Driver/fsanitize.c index 40cd49525e..2230ddb5c4 100644 --- a/test/Driver/fsanitize.c +++ b/test/Driver/fsanitize.c @@ -196,8 +196,8 @@ // CHECK-DIAG-RECOVER: unsupported argument 'unreachable' to option 'fsanitize-recover=' // RUN: %clang -target x86_64-linux-gnu %s -fsanitize=undefined -fsanitize-recover -fno-sanitize-recover -### 2>&1 | FileCheck %s --check-prefix=CHECK-DEPRECATED-RECOVER -// CHECK-DEPRECATED-RECOVER: argument '-fsanitize-recover' is deprecated, use '-fsanitize-recover=undefined,integer' instead -// CHECK-DEPRECATED-RECOVER: argument '-fno-sanitize-recover' is deprecated, use '-fno-sanitize-recover=undefined,integer' instead +// CHECK-DEPRECATED-RECOVER: argument '-fsanitize-recover' is deprecated, use '-fsanitize-recover=undefined,integer' or '-fsanitize-recover=all' instead +// CHECK-DEPRECATED-RECOVER: argument '-fno-sanitize-recover' is deprecated, use '-fno-sanitize-recover=undefined,integer' or '-fno-sanitize-recover=all' instead // CHECK-DEPRECATED-RECOVER-NOT: is deprecated // RUN: %clang -target x86_64-linux-gnu -fsanitize=leak %s -### 2>&1 | FileCheck %s --check-prefix=CHECK-SANL