Fix handling of @IDNTPOFF relocations, they need to get STT_TLS.
[oota-llvm.git] / test / MC / ELF / tls-i386.s
1 // RUN: llvm-mc -filetype=obj -triple i386-pc-linux-gnu %s -o - | elf-dump  | FileCheck %s
2
3 // Test that all symbols are of type STT_TLS.
4
5         movl    foo1@NTPOFF(%eax), %eax
6         movl    foo2@GOTNTPOFF(%eax), %eax
7         movl    foo3@TLSGD(%eax), %eax
8         movl    foo4@TLSLDM(%eax), %eax
9         movl    foo5@TPOFF(%eax), %eax
10         movl    foo6@DTPOFF(%eax), %eax
11         movl    foo7@INDNTPOFF, %eax
12
13 // CHECK:       (('st_name', 0x00000001) # 'foo1'
14 // CHECK-NEXT:   ('st_value', 0x00000000)
15 // CHECK-NEXT:   ('st_size', 0x00000000)
16 // CHECK-NEXT:   ('st_bind', 0x00000001)
17 // CHECK-NEXT:   ('st_type', 0x00000006)
18 // CHECK-NEXT:   ('st_other', 0x00000000)
19 // CHECK-NEXT:   ('st_shndx', 0x00000000)
20 // CHECK-NEXT:  ),
21 // CHECK-NEXT:  # Symbol 0x00000006
22 // CHECK-NEXT:  (('st_name', 0x00000006) # 'foo2'
23 // CHECK-NEXT:   ('st_value', 0x00000000)
24 // CHECK-NEXT:   ('st_size', 0x00000000)
25 // CHECK-NEXT:   ('st_bind', 0x00000001)
26 // CHECK-NEXT:   ('st_type', 0x00000006)
27 // CHECK-NEXT:   ('st_other', 0x00000000)
28 // CHECK-NEXT:   ('st_shndx', 0x00000000)
29 // CHECK-NEXT:  ),
30 // CHECK-NEXT:  # Symbol 0x00000007
31 // CHECK-NEXT:  (('st_name', 0x0000000b) # 'foo3'
32 // CHECK-NEXT:   ('st_value', 0x00000000)
33 // CHECK-NEXT:   ('st_size', 0x00000000)
34 // CHECK-NEXT:   ('st_bind', 0x00000001)
35 // CHECK-NEXT:   ('st_type', 0x00000006)
36 // CHECK-NEXT:   ('st_other', 0x00000000)
37 // CHECK-NEXT:   ('st_shndx', 0x00000000)
38 // CHECK-NEXT:  ),
39 // CHECK-NEXT:  # Symbol 0x00000008
40 // CHECK-NEXT:  (('st_name', 0x00000010) # 'foo4'
41 // CHECK-NEXT:   ('st_value', 0x00000000)
42 // CHECK-NEXT:   ('st_size', 0x00000000)
43 // CHECK-NEXT:   ('st_bind', 0x00000001)
44 // CHECK-NEXT:   ('st_type', 0x00000006)
45 // CHECK-NEXT:   ('st_other', 0x00000000)
46 // CHECK-NEXT:   ('st_shndx', 0x00000000)
47 // CHECK-NEXT:  ),
48 // CHECK-NEXT:  # Symbol 0x00000009
49 // CHECK-NEXT:  (('st_name', 0x00000015) # 'foo5'
50 // CHECK-NEXT:   ('st_value', 0x00000000)
51 // CHECK-NEXT:   ('st_size', 0x00000000)
52 // CHECK-NEXT:   ('st_bind', 0x00000001)
53 // CHECK-NEXT:   ('st_type', 0x00000006)
54 // CHECK-NEXT:   ('st_other', 0x00000000)
55 // CHECK-NEXT:   ('st_shndx', 0x00000000)
56 // CHECK-NEXT:  ),
57 // CHECK-NEXT:  # Symbol 0x0000000a
58 // CHECK-NEXT:  (('st_name', 0x0000001a) # 'foo6'
59 // CHECK-NEXT:   ('st_value', 0x00000000)
60 // CHECK-NEXT:   ('st_size', 0x00000000)
61 // CHECK-NEXT:   ('st_bind', 0x00000001)
62 // CHECK-NEXT:   ('st_type', 0x00000006)
63 // CHECK-NEXT:   ('st_other', 0x00000000)
64 // CHECK-NEXT:   ('st_shndx', 0x00000000)
65 // CHECK-NEXT:  ),
66 // CHECK-NEXT:  # Symbol 0x0000000b
67 // CHECK-NEXT:  (('st_name', 0x0000001f) # 'foo7'
68 // CHECK-NEXT:   ('st_value', 0x00000000)
69 // CHECK-NEXT:   ('st_size', 0x00000000)
70 // CHECK-NEXT:   ('st_bind', 0x00000001)
71 // CHECK-NEXT:   ('st_type', 0x00000006)
72 // CHECK-NEXT:   ('st_other', 0x00000000)
73 // CHECK-NEXT:   ('st_shndx', 0x00000000)
74 // CHECK-NEXT:  ),