xref: /minix/external/bsd/llvm/dist/llvm/test/MC/ELF/type.s (revision 83133719)
1// RUN: llvm-mc -filetype=obj -triple x86_64-pc-linux-gnu %s -o - | llvm-readobj -t | FileCheck %s
2
3// Test that both % and @ are accepted.
4        .global foo
5        .type foo,%function
6foo:
7
8        .global bar
9        .type bar,@object
10bar:
11
12// Test that gnu_unique_object is accepted.
13        .type zed,@gnu_unique_object
14
15obj:
16        .global obj
17        .type obj,@object
18        .type obj,@notype
19
20func:
21        .global func
22        .type func,@function
23        .type func,@object
24
25ifunc:
26        .global ifunc
27        .type ifunc,@gnu_indirect_function
28
29tls:
30        .global tls
31        .type tls,@tls_object
32        .type tls,@gnu_indirect_function
33
34// Test that "<type>" is accepted.
35tls_quoted:
36        .global tls_quoted
37        .type tls_quoted,"tls_object"
38
39// Test that "<type>" is accepted.
40tls_upper_case:
41        .global tls_upper_case
42        .type tls_upper_case,STT_TLS
43
44// CHECK:        Symbol {
45// CHECK:          Name: bar
46// CHECK-NEXT:     Value: 0x0
47// CHECK-NEXT:     Size: 0
48// CHECK-NEXT:     Binding: Global
49// CHECK-NEXT:     Type: Object
50// CHECK-NEXT:     Other: 0
51// CHECK-NEXT:     Section: .text (0x1)
52// CHECK-NEXT:   }
53// CHECK-NEXT:   Symbol {
54// CHECK-NEXT:     Name: foo
55// CHECK-NEXT:     Value: 0x0
56// CHECK-NEXT:     Size: 0
57// CHECK-NEXT:     Binding: Global
58// CHECK-NEXT:     Type: Function
59// CHECK-NEXT:     Other: 0
60// CHECK-NEXT:     Section: .text (0x1)
61// CHECK-NEXT:   }
62// CHECK-NEXT:   Symbol {
63// CHECK-NEXT:     Name: func
64// CHECK-NEXT:     Value: 0x0
65// CHECK-NEXT:     Size: 0
66// CHECK-NEXT:     Binding: Global
67// CHECK-NEXT:     Type: Function
68// CHECK-NEXT:     Other: 0
69// CHECK-NEXT:     Section: .text (0x1)
70// CHECK-NEXT:   }
71// CHECK-NEXT:   Symbol {
72// CHECK-NEXT:     Name: ifunc
73// CHECK-NEXT:     Value: 0x0
74// CHECK-NEXT:     Size: 0
75// CHECK-NEXT:     Binding: Global
76// CHECK-NEXT:     Type: GNU_IFunc
77// CHECK-NEXT:     Other: 0
78// CHECK-NEXT:     Section: .text (0x1)
79// CHECK-NEXT:   }
80// CHECK-NEXT:   Symbol {
81// CHECK-NEXT:     Name: obj
82// CHECK-NEXT:     Value: 0x0
83// CHECK-NEXT:     Size: 0
84// CHECK-NEXT:     Binding: Global
85// CHECK-NEXT:     Type: Object
86// CHECK-NEXT:     Other: 0
87// CHECK-NEXT:     Section: .text (0x1)
88// CHECK-NEXT:   }
89// CHECK-NEXT:   Symbol {
90// CHECK-NEXT:     Name: tls
91// CHECK-NEXT:     Value: 0x0
92// CHECK-NEXT:     Size: 0
93// CHECK-NEXT:     Binding: Global
94// CHECK-NEXT:     Type: TLS
95// CHECK-NEXT:     Other: 0
96// CHECK-NEXT:     Section: .text (0x1)
97// CHECK-NEXT:   }
98// CHECK-NEXT:   Symbol {
99// CHECK-NEXT:     Name: tls_quoted
100// CHECK-NEXT:     Value: 0x0
101// CHECK-NEXT:     Size: 0
102// CHECK-NEXT:     Binding: Global
103// CHECK-NEXT:     Type: TLS
104// CHECK-NEXT:     Other: 0
105// CHECK-NEXT:     Section: .text (0x1)
106// CHECK-NEXT:   }
107// CHECK-NEXT:   Symbol {
108// CHECK-NEXT:     Name: tls_upper_case
109// CHECK-NEXT:     Value: 0x0
110// CHECK-NEXT:     Size: 0
111// CHECK-NEXT:     Binding: Global
112// CHECK-NEXT:     Type: TLS
113// CHECK-NEXT:     Other: 0
114// CHECK-NEXT:     Section: .text (0x1)
115// CHECK-NEXT:   }
116