summaryrefslogtreecommitdiffstats
path: root/clang
diff options
context:
space:
mode:
authorSaleem Abdulrasool <compnerd@compnerd.org>2015-10-29 03:36:38 +0000
committerSaleem Abdulrasool <compnerd@compnerd.org>2015-10-29 03:36:38 +0000
commit8f431e7c4c6ccc6947f25031a8d234ccfb034b2d (patch)
tree886ba88450b51abd3e8e5566adb3d39b01039b5f /clang
parentdbbd77921d93235bbda8c970e6a696318ce37a2b (diff)
downloadbcm5719-llvm-8f431e7c4c6ccc6947f25031a8d234ccfb034b2d.tar.gz
bcm5719-llvm-8f431e7c4c6ccc6947f25031a8d234ccfb034b2d.zip
Driver: tweak CrossWindows sanitizer support
Indicate support for ASAN on the CrossWindows toolchain. Although this is insufficient, this at least permits the handling of the driver flag. llvm-svn: 251598
Diffstat (limited to 'clang')
-rw-r--r--clang/lib/Driver/CrossWindowsToolChain.cpp6
-rw-r--r--clang/lib/Driver/ToolChains.h2
-rw-r--r--clang/test/Driver/windows-cross.c12
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={{.*}}"
+
OpenPOWER on IntegriCloud