summaryrefslogtreecommitdiffstats
path: root/clang/lib
diff options
context:
space:
mode:
authorPeter Collingbourne <peter@pcc.me.uk>2015-09-10 19:18:05 +0000
committerPeter Collingbourne <peter@pcc.me.uk>2015-09-10 19:18:05 +0000
commit24ec4924c0bb6c2c25fa2cc62b2145bab56ec7ee (patch)
tree5146eee7fc3a662af102e549643986190de9afff /clang/lib
parent9071e4a6fa566e46d22c055c9aad557b72292e48 (diff)
downloadbcm5719-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.cpp10
-rw-r--r--clang/lib/Driver/ToolChains.cpp1
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;
}
OpenPOWER on IntegriCloud