diff options
| author | Viktor Kutuzov <vkutuzov@accesssoftek.com> | 2014-10-27 13:51:25 +0000 |
|---|---|---|
| committer | Viktor Kutuzov <vkutuzov@accesssoftek.com> | 2014-10-27 13:51:25 +0000 |
| commit | d553bcff4f1f5d4def5bd576fdacb41b7f4071ad (patch) | |
| tree | 14a84c1cfeeab076edb356d43d1d91a028617c90 /clang/lib | |
| parent | ce2fdb0a0ab0d9032de5bd16d8c832fa1884b9d0 (diff) | |
| download | bcm5719-llvm-d553bcff4f1f5d4def5bd576fdacb41b7f4071ad.tar.gz bcm5719-llvm-d553bcff4f1f5d4def5bd576fdacb41b7f4071ad.zip | |
Allow thread sanitizer in clang driver on FreeBSD
http://reviews.llvm.org/D5999
llvm-svn: 220680
Diffstat (limited to 'clang/lib')
| -rw-r--r-- | clang/lib/Driver/SanitizerArgs.cpp | 13 |
1 files changed, 9 insertions, 4 deletions
diff --git a/clang/lib/Driver/SanitizerArgs.cpp b/clang/lib/Driver/SanitizerArgs.cpp index 6a372b08481..a920ff95671 100644 --- a/clang/lib/Driver/SanitizerArgs.cpp +++ b/clang/lib/Driver/SanitizerArgs.cpp @@ -267,17 +267,22 @@ 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; + unsigned KindsToFilterOut = 0; if (!(IsLinux && IsX86_64)) { - filterUnsupportedMask(TC, Kinds, Thread | Memory | DataFlow, Args, A, - DiagnoseErrors, DiagnosedKinds); + KindsToFilterOut |= Memory | DataFlow; + } + if (!((IsLinux || IsFreeBSD) && IsX86_64)) { + KindsToFilterOut |= Thread; } if (!(IsLinux && (IsX86 || IsX86_64))) { - filterUnsupportedMask(TC, Kinds, Function, Args, A, DiagnoseErrors, - DiagnosedKinds); + KindsToFilterOut |= Function; } + filterUnsupportedMask(TC, Kinds, KindsToFilterOut, Args, A, DiagnoseErrors, + DiagnosedKinds); return Kinds; } |

