TLS is not supported on OpenBSD

This fixes PR13502 and adds a test to keep track of which
targets support TLS and which do not.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@161124 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Hans Wennborg 2012-08-01 18:53:19 +00:00
Родитель bf1febd6f7
Коммит e48667f2ca
2 изменённых файлов: 21 добавлений и 0 удалений

Просмотреть файл

@ -373,6 +373,7 @@ public:
OpenBSDTargetInfo(const std::string &triple)
: OSTargetInfo<Target>(triple) {
this->UserLabelPrefix = "";
this->TLSSupported = false;
llvm::Triple Triple(triple);
switch (Triple.getArch()) {

20
test/Sema/tls.c Normal file
Просмотреть файл

@ -0,0 +1,20 @@
// Test that TLS is correctly considered supported or unsupported for the
// different targets.
// Linux supports TLS.
// RUN: %clang_cc1 -triple x86_64-pc-linux-gnu %s
// RUN: %clang_cc1 -triple i386-pc-linux-gnu %s
// Darwin supports TLS since 10.7.
// RUN: %clang_cc1 -verify -triple x86_64-apple-darwin10 %s
// RUN: %clang_cc1 -triple x86_64-apple-macos10.7.0 %s
// FIXME: I thought it was supported actually?
// RUN: %clang_cc1 -verify -triple x86_64-pc-win32 %s
// RUN: %clang_cc1 -verify -triple i386-pc-win32 %s
// OpenBSD does not suppport TLS.
// RUN: %clang_cc1 -verify -triple x86_64-pc-openbsd %s
// RUN: %clang_cc1 -verify -triple i386-pc-openbsd %s
__thread int x; // expected-error {{thread-local storage is unsupported for the current target}}