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 | 0de6255877753001ce845e4d0bc574a24286329d (patch) | |
tree | a9db6312f06ff889f0cb9b3c81f2a31f61436154 /test | |
parent | ed3eb50482aaa989271f4e9d1c0e812b90daa908 (diff) | |
download | llvm-0de6255877753001ce845e4d0bc574a24286329d.tar.gz llvm-0de6255877753001ce845e4d0bc574a24286329d.tar.bz2 llvm-0de6255877753001ce845e4d0bc574a24286329d.tar.xz |
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.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@195849 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'test')
-rw-r--r-- | test/MC/COFF/weak-symbol.ll | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/test/MC/COFF/weak-symbol.ll b/test/MC/COFF/weak-symbol.ll index f23063e59c..c06692ed90 100644 --- a/test/MC/COFF/weak-symbol.ll +++ b/test/MC/COFF/weak-symbol.ll @@ -36,3 +36,13 @@ define weak void @f() section ".sect" { ; X64: .globl a
; X64: .zero 12
@a = weak unnamed_addr constant { i32, i32, i32 } { i32 0, i32 0, i32 0}, section ".data"
+
+; X86: .section .tls$,"w",discard,_b
+; X86: .globl _b
+; X86: .long 0
+;
+; X64: .section .tls$,"w",discard,b
+; X64: .globl b
+; X64: .long 0
+
+@b = weak_odr thread_local global i32 0, align 4
|