diff options
author | Peter Collingbourne <peter@pcc.me.uk> | 2015-09-10 19:18:05 +0000 |
---|---|---|
committer | Peter Collingbourne <peter@pcc.me.uk> | 2015-09-10 19:18:05 +0000 |
commit | 24ec4924c0bb6c2c25fa2cc62b2145bab56ec7ee (patch) | |
tree | 5146eee7fc3a662af102e549643986190de9afff /clang/lib | |
parent | 9071e4a6fa566e46d22c055c9aad557b72292e48 (diff) | |
download | bcm5719-llvm-24ec4924c0bb6c2c25fa2cc62b2145bab56ec7ee.tar.gz bcm5719-llvm-24ec4924c0bb6c2c25fa2cc62b2145bab56ec7ee.zip |
Driver: Support cfi-icall on all OSs when targeting x86/x86_64.
llvm-svn: 247324
Diffstat (limited to 'clang/lib')
-rw-r--r-- | clang/lib/Driver/ToolChain.cpp | 10 | ||||
-rw-r--r-- | clang/lib/Driver/ToolChains.cpp | 1 |
2 files changed, 7 insertions, 4 deletions
diff --git a/clang/lib/Driver/ToolChain.cpp b/clang/lib/Driver/ToolChain.cpp index e93487d28c2..b3b3959af4d 100644 --- a/clang/lib/Driver/ToolChain.cpp +++ b/clang/lib/Driver/ToolChain.cpp @@ -493,8 +493,12 @@ bool ToolChain::AddFastMathRuntimeIfAvailable(const ArgList &Args, SanitizerMask ToolChain::getSupportedSanitizers() const { // Return sanitizers which don't require runtime support and are not - // platform or architecture-dependent. + // platform dependent. using namespace SanitizerKind; - return (Undefined & ~Vptr & ~Function) | (CFI & ~CFIICall) | CFICastStrict | - UnsignedIntegerOverflow | LocalBounds; + SanitizerMask Res = (Undefined & ~Vptr & ~Function) | (CFI & ~CFIICall) | + CFICastStrict | UnsignedIntegerOverflow | LocalBounds; + if (getTriple().getArch() == llvm::Triple::x86 || + getTriple().getArch() == llvm::Triple::x86_64) + Res |= CFIICall; + return Res; } diff --git a/clang/lib/Driver/ToolChains.cpp b/clang/lib/Driver/ToolChains.cpp index c3f9b5876d7..7f0b9bb7472 100644 --- a/clang/lib/Driver/ToolChains.cpp +++ b/clang/lib/Driver/ToolChains.cpp @@ -3764,7 +3764,6 @@ SanitizerMask Linux::getSupportedSanitizers() const { if (IsX86_64 || IsMIPS64 || IsPowerPC64) Res |= SanitizerKind::Memory; if (IsX86 || IsX86_64) { - Res |= SanitizerKind::CFIICall; Res |= SanitizerKind::Function; Res |= SanitizerKind::SafeStack; } |