1@ RUN: llvm-mc -triple armv7-eabi -filetype obj -o - %s | llvm-readobj -t \
2@ RUN:   | FileCheck %s
3
4@ RUN: llvm-mc -triple armv7-eabi -filetype asm -o - %s \
5@ RUN:   | FileCheck --check-prefix=ASM %s
6
7	.syntax unified
8
9	.arm
10
11	.type arm_func,%function
12arm_func:
13	nop
14
15	.thumb_set alias_arm_func, arm_func
16
17        alias_arm_func2 = alias_arm_func
18        alias_arm_func3 = alias_arm_func2
19
20@ ASM: .thumb_set alias_arm_func, arm_func
21
22	.thumb
23
24	.type thumb_func,%function
25	.thumb_func
26thumb_func:
27	nop
28
29	.thumb_set alias_thumb_func, thumb_func
30
31	.thumb_set seedless, 0x5eed1e55
32	.thumb_set eggsalad, seedless + 0x87788358
33	.thumb_set faceless, ~eggsalad + 0xe133c002
34
35	.thumb_set alias_undefined_data, badblood
36
37	.data
38
39	.type badblood,%object
40badblood:
41	.long 0xbadb100d
42
43	.type bedazzle,%object
44bedazzle:
45	.long 0xbeda221e
46
47	.text
48	.thumb
49
50	.thumb_set alias_defined_data, bedazzle
51
52	.type alpha,%function
53alpha:
54	nop
55
56        .type beta,%function
57beta:
58	bkpt
59
60	.thumb_set beta, alpha
61
62@ CHECK: Symbol {
63@ CHECK:   Name: alias_arm_func
64@ CHECK:   Value: 0x1
65@ CHECK:   Type: Function
66@ CHECK: }
67
68@ CHECK: Symbol {
69@ CHECK:   Name: alias_arm_func2
70@ CHECK:   Value: 0x1
71@ CHECK:   Type: Function
72@ CHECK: }
73
74@ CHECK: Symbol {
75@ CHECK:   Name: alias_arm_func3
76@ CHECK:   Value: 0x1
77@ CHECK:   Type: Function
78@ CHECK: }
79
80@ CHECK: Symbol {
81@ CHECK:   Name: alias_defined_data
82@ CHECK:   Value: 0x5
83@ CHECK:   Type: Function
84@ CHECK: }
85
86@ CHECK: Symbol {
87@ CHECK:   Name: alias_thumb_func
88@ CHECK:   Value: 0x5
89@ CHECK:   Type: Function
90@ CHECK: }
91
92@ CHECK: Symbol {
93@ CHECK:   Name: alias_undefined_data
94@ CHECK:   Value: 0x0
95@ CHECK:   Type: Object
96@ CHECK: }
97
98@ CHECK: Symbol {
99@ CHECK:   Name: alpha
100@ CHECK:   Value: 0x7
101@ CHECK:   Type: Function
102@ CHECK: }
103
104@ CHECK: Symbol {
105@ CHECK:   Name: arm_func
106@ CHECK:   Value: 0x0
107@ CHECK:   Type: Function
108@ CHECK: }
109
110@ CHECK:      Symbol {
111@ CHECK:        Name: badblood
112@ CHECK-NEXT:   Value: 0x0
113@ CHECK-NEXT:   Size: 0
114@ CHECK-NEXT:   Binding: Local
115@ CHECK-NEXT:   Type: Object
116@ CHECK-NEXT:   Other: 0
117@ CHECK-NEXT:   Section: .data
118@ CHECK-NEXT: }
119
120@ CHECK: Symbol {
121@ CHECK:   Name: bedazzle
122@ CHECK:   Value: 0x4
123@ CHECK:   Type: Object
124@ CHECK: }
125
126@ CHECK: Symbol {
127@ CHECK:   Name: beta
128@ CHECK:   Value: 0x7
129@ CHECK:   Type: Function
130@ CHECK: }
131
132@ CHECK: Symbol {
133@ CHECK:   Name: eggsalad
134@ CHECK:   Value: 0xE665A1AD
135@ CHECK:   Type: Function
136@ CHECK: }
137
138@ CHECK: Symbol {
139@ CHECK:   Name: faceless
140@ CHECK:   Value: 0xFACE1E55
141@ CHECK:   Type: Function
142@ CHECK: }
143
144@ CHECK: Symbol {
145@ CHECK:   Name: seedless
146@ CHECK:   Value: 0x5EED1E55
147@ CHECK:   Type: Function
148@ CHECK: }
149
150@ CHECK: Symbol {
151@ CHECK:   Name: thumb_func
152@ CHECK:   Value: 0x5
153@ CHECK:   Type: Function
154@ CHECK: }
155