diff options
| -rw-r--r-- | clang/docs/UsersManual.rst | 1 | ||||
| -rw-r--r-- | clang/lib/Driver/SanitizerArgs.cpp | 6 | ||||
| -rw-r--r-- | clang/test/Driver/fsanitize.c | 4 | 
3 files changed, 7 insertions, 4 deletions
diff --git a/clang/docs/UsersManual.rst b/clang/docs/UsersManual.rst index 7a9bdb96c5b..018466db3ec 100644 --- a/clang/docs/UsersManual.rst +++ b/clang/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/clang/lib/Driver/SanitizerArgs.cpp b/clang/lib/Driver/SanitizerArgs.cpp index c63ff4be8a7..5e6af4bd5c1 100644 --- a/clang/lib/Driver/SanitizerArgs.cpp +++ b/clang/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/clang/test/Driver/fsanitize.c b/clang/test/Driver/fsanitize.c index 40cd49525ef..2230ddb5c41 100644 --- a/clang/test/Driver/fsanitize.c +++ b/clang/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  | 

