From: Viktor Kutuzov Date: Mon, 27 Oct 2014 11:26:01 +0000 (+0000) Subject: Allow thread sanitizer in clang driver on FreeBSD X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=fb7c59b4617847b4fc778d303332ea95ccb8c3e5;p=clang Allow thread sanitizer in clang driver on FreeBSD Differential Revision: http://reviews.llvm.org/D5994 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@220675 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/lib/Driver/SanitizerArgs.cpp b/lib/Driver/SanitizerArgs.cpp index 6a372b0848..4909a67d15 100644 --- a/lib/Driver/SanitizerArgs.cpp +++ b/lib/Driver/SanitizerArgs.cpp @@ -267,11 +267,16 @@ unsigned SanitizerArgs::filterUnsupportedKinds(const ToolChain &TC, const llvm::opt::Arg *A, bool DiagnoseErrors, unsigned &DiagnosedKinds) { + bool IsFreeBSD = TC.getTriple().getOS() == llvm::Triple::FreeBSD; bool IsLinux = TC.getTriple().getOS() == llvm::Triple::Linux; bool IsX86 = TC.getTriple().getArch() == llvm::Triple::x86; bool IsX86_64 = TC.getTriple().getArch() == llvm::Triple::x86_64; if (!(IsLinux && IsX86_64)) { - filterUnsupportedMask(TC, Kinds, Thread | Memory | DataFlow, Args, A, + filterUnsupportedMask(TC, Kinds, Memory | DataFlow, Args, A, + DiagnoseErrors, DiagnosedKinds); + } + if (!((IsLinux || IsFreeBSD) && IsX86_64)) { + filterUnsupportedMask(TC, Kinds, Thread, Args, A, DiagnoseErrors, DiagnosedKinds); } if (!(IsLinux && (IsX86 || IsX86_64))) {