diff options
author | Petr Hosek <phosek@chromium.org> | 2019-08-04 22:24:14 +0000 |
---|---|---|
committer | Petr Hosek <phosek@chromium.org> | 2019-08-04 22:24:14 +0000 |
commit | 85faa70e0470af2ea7ce765125350ece7a1d524a (patch) | |
tree | 4b0b4618bc9c78745a72d73387f5ab66281f018b /clang/lib/Driver/SanitizerArgs.cpp | |
parent | 305b961f64b75e73110e309341535f6d5a48ed72 (diff) | |
download | bcm5719-llvm-85faa70e0470af2ea7ce765125350ece7a1d524a.tar.gz bcm5719-llvm-85faa70e0470af2ea7ce765125350ece7a1d524a.zip |
[Driver] Support for disabling sanitizer runtime linking
This change introduces a pair of -fsanitize-link-runtime and
-fno-sanitize-link-runtime flags which can be used to control linking of
sanitizer runtimes. This is useful in certain environments like kernels
where existing runtime libraries cannot be used.
Differential Revision: https://reviews.llvm.org/D65029
llvm-svn: 367794
Diffstat (limited to 'clang/lib/Driver/SanitizerArgs.cpp')
-rw-r--r-- | clang/lib/Driver/SanitizerArgs.cpp | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/clang/lib/Driver/SanitizerArgs.cpp b/clang/lib/Driver/SanitizerArgs.cpp index 6b6a9feec42..baf3554b4b4 100644 --- a/clang/lib/Driver/SanitizerArgs.cpp +++ b/clang/lib/Driver/SanitizerArgs.cpp @@ -824,9 +824,15 @@ SanitizerArgs::SanitizerArgs(const ToolChain &TC, SafeStackRuntime = !TC.getTriple().isOSFuchsia(); } + LinkRuntimes = + Args.hasFlag(options::OPT_fsanitize_link_runtime, + options::OPT_fno_sanitize_link_runtime, LinkRuntimes); + // Parse -link-cxx-sanitizer flag. - LinkCXXRuntimes = - Args.hasArg(options::OPT_fsanitize_link_cxx_runtime) || D.CCCIsCXX(); + LinkCXXRuntimes = Args.hasArg(options::OPT_fsanitize_link_cxx_runtime, + options::OPT_fno_sanitize_link_cxx_runtime, + LinkCXXRuntimes) || + D.CCCIsCXX(); // Finally, initialize the set of available and recoverable sanitizers. Sanitizers.Mask |= Kinds; |