aboutsummaryrefslogtreecommitdiff
path: root/clang/lib/Driver/ToolChain.cpp
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/Driver/ToolChain.cpp
parent9071e4a6fa566e46d22c055c9aad557b72292e48 (diff)
downloadllvm-24ec4924c0bb6c2c25fa2cc62b2145bab56ec7ee.zip
llvm-24ec4924c0bb6c2c25fa2cc62b2145bab56ec7ee.tar.gz
llvm-24ec4924c0bb6c2c25fa2cc62b2145bab56ec7ee.tar.bz2
Driver: Support cfi-icall on all OSs when targeting x86/x86_64.
llvm-svn: 247324
Diffstat (limited to 'clang/lib/Driver/ToolChain.cpp')
-rw-r--r--clang/lib/Driver/ToolChain.cpp10
1 files changed, 7 insertions, 3 deletions
diff --git a/clang/lib/Driver/ToolChain.cpp b/clang/lib/Driver/ToolChain.cpp
index e93487d..b3b3959 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;
}