diff options
| author | Petr Hosek <phosek@chromium.org> | 2017-02-24 03:17:41 +0000 |
|---|---|---|
| committer | Petr Hosek <phosek@chromium.org> | 2017-02-24 03:17:41 +0000 |
| commit | 162540ec1da81657b8003ce1554a07b5d6f26c02 (patch) | |
| tree | 88e77feb655ddc242005c8416a1f3e8f84e53b67 | |
| parent | a7d5916308907624199161b9454487cc30482341 (diff) | |
| download | bcm5719-llvm-162540ec1da81657b8003ce1554a07b5d6f26c02.tar.gz bcm5719-llvm-162540ec1da81657b8003ce1554a07b5d6f26c02.zip | |
[Driver] Enable SafeStack for Fuchsia targets
The runtime support is provided directly by the Fuchsia system C
library.
Patch by Roland McGrath
Differential Revision: https://reviews.llvm.org/D30238
llvm-svn: 296082
| -rw-r--r-- | clang/lib/Driver/ToolChains.cpp | 6 | ||||
| -rw-r--r-- | clang/lib/Driver/ToolChains.h | 2 | ||||
| -rw-r--r-- | clang/test/Driver/fuchsia.c | 5 |
3 files changed, 13 insertions, 0 deletions
diff --git a/clang/lib/Driver/ToolChains.cpp b/clang/lib/Driver/ToolChains.cpp index 533206e4061..495cc0a73b7 100644 --- a/clang/lib/Driver/ToolChains.cpp +++ b/clang/lib/Driver/ToolChains.cpp @@ -4860,6 +4860,12 @@ void Fuchsia::AddCXXStdlibLibArgs(const ArgList &Args, CmdArgs.push_back("-lunwind"); } +SanitizerMask Fuchsia::getSupportedSanitizers() const { + SanitizerMask Res = ToolChain::getSupportedSanitizers(); + Res |= SanitizerKind::SafeStack; + return Res; +} + /// DragonFly - DragonFly tool chain which can call as(1) and ld(1) directly. DragonFly::DragonFly(const Driver &D, const llvm::Triple &Triple, diff --git a/clang/lib/Driver/ToolChains.h b/clang/lib/Driver/ToolChains.h index 8646efbf388..7810b76d1be 100644 --- a/clang/lib/Driver/ToolChains.h +++ b/clang/lib/Driver/ToolChains.h @@ -1095,6 +1095,8 @@ public: return llvm::DebuggerKind::GDB; } + SanitizerMask getSupportedSanitizers() const override; + RuntimeLibType GetRuntimeLibType(const llvm::opt::ArgList &Args) const override; CXXStdlibType diff --git a/clang/test/Driver/fuchsia.c b/clang/test/Driver/fuchsia.c index 75172edf6b2..58c2bbe533c 100644 --- a/clang/test/Driver/fuchsia.c +++ b/clang/test/Driver/fuchsia.c @@ -38,3 +38,8 @@ // CHECK-RELOCATABLE-NOT: "-pie" // CHECK-RELOCATABLE-NOT: "--build-id" // CHECK-RELOCATABLE: "-r" + +// RUN: %clang %s -### --target=x86_64-unknown-fuchsia \ +// RUN: -fsanitize=safe-stack 2>&1 \ +// RUN: | FileCheck %s -check-prefix=CHECK-SAFESTACK +// CHECK-SAFESTACK: "-fsanitize=safe-stack" |

