diff options
Diffstat (limited to 'clang')
-rw-r--r-- | clang/lib/Driver/CrossWindowsToolChain.cpp | 6 | ||||
-rw-r--r-- | clang/lib/Driver/ToolChains.h | 2 | ||||
-rw-r--r-- | clang/test/Driver/windows-cross.c | 12 |
3 files changed, 20 insertions, 0 deletions
diff --git a/clang/lib/Driver/CrossWindowsToolChain.cpp b/clang/lib/Driver/CrossWindowsToolChain.cpp index ffb1469df21..57bf8963598 100644 --- a/clang/lib/Driver/CrossWindowsToolChain.cpp +++ b/clang/lib/Driver/CrossWindowsToolChain.cpp @@ -107,6 +107,12 @@ AddCXXStdlibLibArgs(const llvm::opt::ArgList &DriverArgs, } } +clang::SanitizerMask CrossWindowsToolChain::getSupportedSanitizers() const { + SanitizerMask Res = ToolChain::getSupportedSanitizers(); + Res |= SanitizerKind::Address; + return Res; +} + Tool *CrossWindowsToolChain::buildLinker() const { return new tools::CrossWindows::Linker(*this); } diff --git a/clang/lib/Driver/ToolChains.h b/clang/lib/Driver/ToolChains.h index fcb7561b1ff..4d25a3ba9fb 100644 --- a/clang/lib/Driver/ToolChains.h +++ b/clang/lib/Driver/ToolChains.h @@ -937,6 +937,8 @@ public: void AddCXXStdlibLibArgs(const llvm::opt::ArgList &Args, llvm::opt::ArgStringList &CmdArgs) const override; + SanitizerMask getSupportedSanitizers() const override; + protected: Tool *buildLinker() const override; Tool *buildAssembler() const override; diff --git a/clang/test/Driver/windows-cross.c b/clang/test/Driver/windows-cross.c index 7bc9ac72b4a..3f83adf71d7 100644 --- a/clang/test/Driver/windows-cross.c +++ b/clang/test/Driver/windows-cross.c @@ -40,5 +40,17 @@ // RUN: %clang -### -target armv7-windows-itanium --sysroot %S/Inputs/Windows/ARM/8.1 -B %S/Inputs/Windows/ARM/8.1/usr/bin -fuse-ld=lld-link2 -shared -o shared.dll -x c++ %s 2>&1 \ // RUN: | FileCheck %s --check-prefix CHECK-FUSE-LD + // CHECK-FUSE-LD: "{{.*}}lld-link2" +// RUN: %clang -### -target armv7-windows-itanium --sysroot %S/Inputs/Windows/ARM/8.1 -B %S/Inputs/Windows/ARM/8.1/usr/bin -fuse-ld=lld-link2 -shared -o shared.dll -fsanitize=address -x c++ %s 2>&1 \ +// RUN: | FileCheck %s --check-prefix CHECK-SANITIZE-ADDRESS + +// CHECK-SANITIZE-ADDRESS: "-fsanitize=address" + +// RUN: %clang -### -target armv7-windows-itanium --sysroot %S/Inputs/Windows/ARM/8.1 -B %S/Inputs/Windows/ARM/8.1/usr/bin -fuse-ld=lld-link2 -shared -o shared.dll -fsanitize=tsan -x c++ %s 2>&1 \ +// RUN: | FileCheck %s --check-prefix CHECK-SANITIZE-TSAN + +// CHECK-SANITIZE-TSAN: clang-3.8: error: unsupported argument 'tsan' to option 'fsanitize=' +// CHECK-SANITIZE-TSAN-NOT: "-fsanitize={{.*}}" + |