]> granicus.if.org Git - clang/commitdiff
[tsan] Add Clang frontend support for TSan on OS X
authorKuba Brecka <kuba.brecka@gmail.com>
Fri, 6 Nov 2015 15:09:20 +0000 (15:09 +0000)
committerKuba Brecka <kuba.brecka@gmail.com>
Fri, 6 Nov 2015 15:09:20 +0000 (15:09 +0000)
We're currently in process of porting TSan to OS X, and quite a few of the initial support in the runtime library has already landed in trunk. This patch actually enables "-fsanitize=thread" in the frontend.

Differential Revision: http://reviews.llvm.org/D14440

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@252310 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Driver/ToolChains.cpp

index 43a8ff657dd7784590d7fc95ee78ffa33110ed5f..d39bfaa4bec13cb50fa3bcece00d80e35070c2bd 100644 (file)
@@ -389,6 +389,8 @@ void DarwinClang::AddLinkRuntimeLibArgs(const ArgList &Args,
     AddLinkSanitizerLibArgs(Args, CmdArgs, "asan");
   if (Sanitize.needsUbsanRt())
     AddLinkSanitizerLibArgs(Args, CmdArgs, "ubsan");
+  if (Sanitize.needsTsanRt())
+    AddLinkSanitizerLibArgs(Args, CmdArgs, "tsan");
 
   // Otherwise link libSystem, then the dynamic runtime library, and finally any
   // target specific static runtime library.
@@ -1199,6 +1201,7 @@ SanitizerMask Darwin::getSupportedSanitizers() const {
     if (!isMacosxVersionLT(10, 9))
       Res |= SanitizerKind::Vptr;
     Res |= SanitizerKind::SafeStack;
+    Res |= SanitizerKind::Thread;
   }
   return Res;
 }