diff options
Diffstat (limited to 'clang/lib')
-rw-r--r-- | clang/lib/Driver/SanitizerArgs.cpp | 3 | ||||
-rw-r--r-- | clang/lib/Driver/ToolChains.cpp | 4 | ||||
-rw-r--r-- | clang/lib/Driver/ToolChains.h | 1 |
3 files changed, 8 insertions, 0 deletions
diff --git a/clang/lib/Driver/SanitizerArgs.cpp b/clang/lib/Driver/SanitizerArgs.cpp index e4e6c02767b..17037108abe 100644 --- a/clang/lib/Driver/SanitizerArgs.cpp +++ b/clang/lib/Driver/SanitizerArgs.cpp @@ -268,6 +268,9 @@ SanitizerArgs::SanitizerArgs(const ToolChain &TC, } } + // Enable toolchain specific default sanitizers if not explicitly disabled. + Kinds |= TC.getDefaultSanitizers() & ~AllRemove; + // We disable the vptr sanitizer if it was enabled by group expansion but RTTI // is disabled. if ((Kinds & Vptr) && diff --git a/clang/lib/Driver/ToolChains.cpp b/clang/lib/Driver/ToolChains.cpp index fd69ca87c28..11ded7cd5eb 100644 --- a/clang/lib/Driver/ToolChains.cpp +++ b/clang/lib/Driver/ToolChains.cpp @@ -2988,6 +2988,10 @@ SanitizerMask CloudABI::getSupportedSanitizers() const { return Res; } +SanitizerMask CloudABI::getDefaultSanitizers() const { + return SanitizerKind::SafeStack; +} + /// OpenBSD - OpenBSD tool chain which can call as(1) and ld(1) directly. OpenBSD::OpenBSD(const Driver &D, const llvm::Triple &Triple, diff --git a/clang/lib/Driver/ToolChains.h b/clang/lib/Driver/ToolChains.h index 49283a9c201..d0418349bfa 100644 --- a/clang/lib/Driver/ToolChains.h +++ b/clang/lib/Driver/ToolChains.h @@ -620,6 +620,7 @@ public: bool isPIEDefault() const override { return false; } SanitizerMask getSupportedSanitizers() const override; + SanitizerMask getDefaultSanitizers() const override; protected: Tool *buildLinker() const override; |