diff options
author | Volodymyr Sapsai <vsapsai@apple.com> | 2018-01-05 20:20:03 +0000 |
---|---|---|
committer | Volodymyr Sapsai <vsapsai@apple.com> | 2018-01-05 20:20:03 +0000 |
commit | 4ea49798a9f8aba74632132d45972e2ba56fcee9 (patch) | |
tree | 05e0503c6e846fe288de7ca9f7b74a9f0bd8588b /clang/lib/Basic | |
parent | 73584cb587e05a140c209c68ecb9e07d0cc8bf79 (diff) | |
download | bcm5719-llvm-4ea49798a9f8aba74632132d45972e2ba56fcee9.tar.gz bcm5719-llvm-4ea49798a9f8aba74632132d45972e2ba56fcee9.zip |
Fix TLS support check for Darwin 32-bit simulator targets.
Also instead of checking architecture explicitly, use recently added
"simulator" environment in the triple.
rdar://problem/35083787
Reviewers: arphaman, bob.wilson
Reviewed By: arphaman
Subscribers: gparker42, cfe-commits
Differential Revision: https://reviews.llvm.org/D41750
llvm-svn: 321890
Diffstat (limited to 'clang/lib/Basic')
-rw-r--r-- | clang/lib/Basic/Targets/OSTargets.h | 24 |
1 files changed, 15 insertions, 9 deletions
diff --git a/clang/lib/Basic/Targets/OSTargets.h b/clang/lib/Basic/Targets/OSTargets.h index 5af63615dc5..05fcd9367a1 100644 --- a/clang/lib/Basic/Targets/OSTargets.h +++ b/clang/lib/Basic/Targets/OSTargets.h @@ -95,16 +95,22 @@ public: 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) + // 64-bit iOS supported it from 8 onwards, 32-bit device from 9 onwards, + // 32-bit simulator from 10 onwards. + if (Triple.isArch64Bit()) 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); + else if (Triple.isArch32Bit()) { + if (!Triple.isSimulatorEnvironment()) + this->TLSSupported = !Triple.isOSVersionLT(9); + else + this->TLSSupported = !Triple.isOSVersionLT(10); + } + } else if (Triple.isWatchOS()) { + if (!Triple.isSimulatorEnvironment()) + this->TLSSupported = !Triple.isOSVersionLT(2); + else + this->TLSSupported = !Triple.isOSVersionLT(3); + } this->MCountName = "\01mcount"; } |