diff options
author | Viktor Kutuzov <vkutuzov@accesssoftek.com> | 2014-10-27 11:26:01 +0000 |
---|---|---|
committer | Viktor Kutuzov <vkutuzov@accesssoftek.com> | 2014-10-27 11:26:01 +0000 |
commit | bff42de11c85b66deba10d26594ca00d599aff91 (patch) | |
tree | 82956a7804f938657601732ff1f3e35cd642a824 /clang/lib | |
parent | adf81dbcc6ad8958946ae10a02cb21052920523b (diff) | |
download | bcm5719-llvm-bff42de11c85b66deba10d26594ca00d599aff91.tar.gz bcm5719-llvm-bff42de11c85b66deba10d26594ca00d599aff91.zip |
Allow thread sanitizer in clang driver on FreeBSD
Differential Revision: http://reviews.llvm.org/D5994
llvm-svn: 220675
Diffstat (limited to 'clang/lib')
-rw-r--r-- | clang/lib/Driver/SanitizerArgs.cpp | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/clang/lib/Driver/SanitizerArgs.cpp b/clang/lib/Driver/SanitizerArgs.cpp index 6a372b08481..4909a67d15d 100644 --- a/clang/lib/Driver/SanitizerArgs.cpp +++ b/clang/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))) { |