From 5458cd4027f534a9c02ade8fadb66701c47366be Mon Sep 17 00:00:00 2001 From: Thomas Lively Date: Wed, 29 May 2019 18:31:50 +0000 Subject: [WebAssembly] Support VPtr sanitizer for Emscripten Summary: After https://github.com/emscripten-core/emscripten/pull/8651, Emscripten supports the full UBSan runtime. This includes the VPtr sanitizer. This diff allows clang to generate code that uses the VPtr sanitizer for Emscripten. Patch by Guanzhong Chen Reviewers: tlively, aheejin Reviewed By: aheejin Subscribers: dschuff, sbc100, jgravelle-google, sunfish, cfe-commits Tags: #clang Differential Revision: https://reviews.llvm.org/D62559 llvm-svn: 362004 --- clang/lib/Driver/ToolChains/WebAssembly.cpp | 8 ++++++++ 1 file changed, 8 insertions(+) (limited to 'clang/lib/Driver/ToolChains/WebAssembly.cpp') diff --git a/clang/lib/Driver/ToolChains/WebAssembly.cpp b/clang/lib/Driver/ToolChains/WebAssembly.cpp index af6e856b9f9..7fffbbe6bf5 100644 --- a/clang/lib/Driver/ToolChains/WebAssembly.cpp +++ b/clang/lib/Driver/ToolChains/WebAssembly.cpp @@ -208,6 +208,14 @@ void WebAssembly::AddCXXStdlibLibArgs(const llvm::opt::ArgList &Args, } } +SanitizerMask WebAssembly::getSupportedSanitizers() const { + SanitizerMask Res = ToolChain::getSupportedSanitizers(); + if (getTriple().isOSEmscripten()) { + Res |= SanitizerKind::Vptr; + } + return Res; +} + Tool *WebAssembly::buildLinker() const { return new tools::wasm::Linker(*this); } -- cgit v1.2.3