[cfe-commits] r161124 - in /cfe/trunk: lib/Basic/Targets.cpp test/Sema/tls.c

Hans Wennborg hans at hanshq.net
Wed Aug 1 11:53:19 PDT 2012


Author: hans
Date: Wed Aug  1 13:53:19 2012
New Revision: 161124

URL: http://llvm.org/viewvc/llvm-project?rev=161124&view=rev
Log:
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.

Added:
    cfe/trunk/test/Sema/tls.c
Modified:
    cfe/trunk/lib/Basic/Targets.cpp

Modified: cfe/trunk/lib/Basic/Targets.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Basic/Targets.cpp?rev=161124&r1=161123&r2=161124&view=diff
==============================================================================
--- cfe/trunk/lib/Basic/Targets.cpp (original)
+++ cfe/trunk/lib/Basic/Targets.cpp Wed Aug  1 13:53:19 2012
@@ -373,6 +373,7 @@
   OpenBSDTargetInfo(const std::string &triple)
     : OSTargetInfo<Target>(triple) {
       this->UserLabelPrefix = "";
+      this->TLSSupported = false;
 
       llvm::Triple Triple(triple);
       switch (Triple.getArch()) {

Added: cfe/trunk/test/Sema/tls.c
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Sema/tls.c?rev=161124&view=auto
==============================================================================
--- cfe/trunk/test/Sema/tls.c (added)
+++ cfe/trunk/test/Sema/tls.c Wed Aug  1 13:53:19 2012
@@ -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}}





More information about the cfe-commits mailing list