diff options
author | Rafael Espindola <rafael.espindola@gmail.com> | 2013-11-27 15:52:11 +0000 |
---|---|---|
committer | Rafael Espindola <rafael.espindola@gmail.com> | 2013-11-27 15:52:11 +0000 |
commit | 3c8e147a6bb107eb7b5d5d71efc7880953d44f91 (patch) | |
tree | 32b7da2838baf80d7df6a60ba110a82fbe55608d /llvm/lib/CodeGen/TargetLoweringObjectFileImpl.cpp | |
parent | 6f9165a478d66c44d23df814aa1bd638838bc646 (diff) | |
download | bcm5719-llvm-3c8e147a6bb107eb7b5d5d71efc7880953d44f91.tar.gz bcm5719-llvm-3c8e147a6bb107eb7b5d5d71efc7880953d44f91.zip |
Use the same tls section name as msvc.
We currently error in clang with:
"error: thread-local storage is unsupported for the current target", but we
can start to get the llvm level ready.
When compiling
template<typename T>
struct foo {
static __declspec(thread) int bar;
};
template<typename T>
__declspec(therad) int foo<T>::bar;
template struct foo<int>;
msvc produces
SECTION HEADER #3
.tls$ name
0 physical address
0 virtual address
4 size of raw data
12F file pointer to raw data (0000012F to 00000132)
0 file pointer to relocation table
0 file pointer to line numbers
0 number of relocations
0 number of line numbers
C0301040 flags
Initialized Data
COMDAT; sym= "public: static int foo<int>::bar" (?bar@?$foo@H@@2HA)
4 byte align
Read Write
gcc produces a ".data$__emutls_v.<symbol>" for the testcase with
__declspec(thread) replaced with thread_local.
llvm-svn: 195849
Diffstat (limited to 'llvm/lib/CodeGen/TargetLoweringObjectFileImpl.cpp')
-rw-r--r-- | llvm/lib/CodeGen/TargetLoweringObjectFileImpl.cpp | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/llvm/lib/CodeGen/TargetLoweringObjectFileImpl.cpp b/llvm/lib/CodeGen/TargetLoweringObjectFileImpl.cpp index 229ccfae28a..25d8cdc4399 100644 --- a/llvm/lib/CodeGen/TargetLoweringObjectFileImpl.cpp +++ b/llvm/lib/CodeGen/TargetLoweringObjectFileImpl.cpp @@ -744,7 +744,7 @@ static const char *getCOFFSectionNameForUniqueGlobal(SectionKind Kind) { if (Kind.isBSS ()) return ".bss"; if (Kind.isThreadLocal()) - return ".tls"; + return ".tls$"; if (Kind.isWriteable()) return ".data"; return ".rdata"; |