forked from OSchip/llvm-project
ARM: allow __thread on OS versions that have the required runtime support.
llvm-svn: 257041
This commit is contained in:
parent
3f07d85826
commit
a12d0a99b1
|
@ -223,7 +223,24 @@ protected:
|
|||
|
||||
public:
|
||||
DarwinTargetInfo(const llvm::Triple &Triple) : OSTargetInfo<Target>(Triple) {
|
||||
this->TLSSupported = Triple.isMacOSX() && !Triple.isMacOSXVersionLT(10, 7);
|
||||
// By default, no TLS, and we whitelist permitted architecture/OS
|
||||
// combinations.
|
||||
this->TLSSupported = false;
|
||||
|
||||
if (Triple.isMacOSX())
|
||||
this->TLSSupported = !Triple.isMacOSXVersionLT(10, 7);
|
||||
else if (Triple.isiOS()) {
|
||||
// 64-bit iOS supported it from 8 onwards, 32-bit from 9 onwards.
|
||||
if (Triple.getArch() == llvm::Triple::x86_64 ||
|
||||
Triple.getArch() == llvm::Triple::aarch64)
|
||||
this->TLSSupported = !Triple.isOSVersionLT(8);
|
||||
else if (Triple.getArch() == llvm::Triple::x86 ||
|
||||
Triple.getArch() == llvm::Triple::arm ||
|
||||
Triple.getArch() == llvm::Triple::thumb)
|
||||
this->TLSSupported = !Triple.isOSVersionLT(9);
|
||||
} else if (Triple.isWatchOS())
|
||||
this->TLSSupported = !Triple.isOSVersionLT(2);
|
||||
|
||||
this->MCountName = "\01mcount";
|
||||
}
|
||||
|
||||
|
|
|
@ -0,0 +1,17 @@
|
|||
// RUN: not %clang_cc1 -fsyntax-only -triple x86_64-apple-macosx10.6 %s 2>&1 | FileCheck %s --check-prefix NO-TLS
|
||||
// RUN: %clang_cc1 -fsyntax-only -triple x86_64-apple-macosx10.7 %s 2>&1 | FileCheck %s --check-prefix TLS
|
||||
// RUN: not %clang_cc1 -fsyntax-only -triple arm64-apple-ios7.1 %s 2>&1 | FileCheck %s --check-prefix NO-TLS
|
||||
// RUN: %clang_cc1 -fsyntax-only -triple arm64-apple-ios8.0 %s 2>&1 | FileCheck %s --check-prefix TLS
|
||||
// RUN: not %clang_cc1 -fsyntax-only -triple thumbv7s-apple-ios8.3 %s 2>&1 | FileCheck %s --check-prefix NO-TLS
|
||||
// RUN: %clang_cc1 -fsyntax-only -triple thumbv7s-apple-ios9.0 %s 2>&1 | FileCheck %s --check-prefix TLS
|
||||
// RUN: %clang_cc1 -fsyntax-only -triple armv7-apple-ios9.0 %s 2>&1 | FileCheck %s --check-prefix TLS
|
||||
// RUN: not %clang_cc1 -fsyntax-only -triple thumbv7k-apple-watchos1.0 %s 2>&1 | FileCheck %s --check-prefix NO-TLS
|
||||
// RUN: %clang_cc1 -fsyntax-only -triple thumbv7k-apple-watchos2.0 %s 2>&1 | FileCheck %s --check-prefix TLS
|
||||
|
||||
|
||||
__thread int a;
|
||||
|
||||
// NO-TLS: thread-local storage is not supported for the current target
|
||||
// TLS-NOT: thread-local storage is not supported for the current target
|
||||
|
||||
wibble;
|
Loading…
Reference in New Issue