136b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines@ RUN: llvm-mc -triple armv7-eabi -filetype obj -o - %s | llvm-readobj -t \
236b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines@ RUN:   | FileCheck %s
336b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines
4dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines@ RUN: llvm-mc -triple armv7-eabi -filetype asm -o - %s \
5dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines@ RUN:   | FileCheck --check-prefix=ASM %s
6dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines
736b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines	.syntax unified
836b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines
936b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines	.arm
1036b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines
1136b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines	.type arm_func,%function
1236b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hinesarm_func:
1336b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines	nop
1436b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines
1536b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines	.thumb_set alias_arm_func, arm_func
1636b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines
17dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines        alias_arm_func2 = alias_arm_func
18dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines        alias_arm_func3 = alias_arm_func2
19dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines
20dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines@ ASM: .thumb_set alias_arm_func, arm_func
21dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines
2236b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines	.thumb
2336b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines
2436b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines	.type thumb_func,%function
2536b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines	.thumb_func
2636b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hinesthumb_func:
2736b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines	nop
2836b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines
2936b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines	.thumb_set alias_thumb_func, thumb_func
3036b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines
3136b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines	.thumb_set seedless, 0x5eed1e55
3236b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines	.thumb_set eggsalad, seedless + 0x87788358
3336b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines	.thumb_set faceless, ~eggsalad + 0xe133c002
3436b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines
3536b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines	.thumb_set alias_undefined_data, badblood
3636b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines
3736b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines	.data
3836b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines
3936b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines	.type badblood,%object
4036b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hinesbadblood:
4136b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines	.long 0xbadb100d
4236b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines
4336b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines	.type bedazzle,%object
4436b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hinesbedazzle:
4536b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines	.long 0xbeda221e
4636b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines
4736b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines	.text
4836b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines	.thumb
4936b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines
5036b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines	.thumb_set alias_defined_data, bedazzle
5136b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines
5236b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines	.type alpha,%function
5336b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hinesalpha:
5436b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines	nop
5536b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines
5636b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines        .type beta,%function
5736b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hinesbeta:
5836b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines	bkpt
5936b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines
6036b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines	.thumb_set beta, alpha
6136b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines
6236b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines@ CHECK: Symbol {
6336b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines@ CHECK:   Name: alias_arm_func
6436b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines@ CHECK:   Value: 0x1
6536b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines@ CHECK:   Type: Function
6636b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines@ CHECK: }
6736b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines
6836b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines@ CHECK: Symbol {
69dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines@ CHECK:   Name: alias_arm_func2
70dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines@ CHECK:   Value: 0x1
71dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines@ CHECK:   Type: Function
72dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines@ CHECK: }
73dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines
74dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines@ CHECK: Symbol {
75dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines@ CHECK:   Name: alias_arm_func3
76dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines@ CHECK:   Value: 0x1
77dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines@ CHECK:   Type: Function
78dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines@ CHECK: }
79dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines
80dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines@ CHECK: Symbol {
8136b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines@ CHECK:   Name: alias_defined_data
8236b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines@ CHECK:   Value: 0x5
8336b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines@ CHECK:   Type: Function
8436b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines@ CHECK: }
8536b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines
8636b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines@ CHECK: Symbol {
8736b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines@ CHECK:   Name: alias_thumb_func
8836b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines@ CHECK:   Value: 0x5
8936b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines@ CHECK:   Type: Function
9036b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines@ CHECK: }
9136b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines
9236b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines@ CHECK: Symbol {
9336b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines@ CHECK:   Name: alias_undefined_data
9436b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines@ CHECK:   Value: 0x0
9536b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines@ CHECK:   Type: Object
9636b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines@ CHECK: }
9736b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines
9836b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines@ CHECK: Symbol {
9936b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines@ CHECK:   Name: alpha
10036b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines@ CHECK:   Value: 0x7
10136b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines@ CHECK:   Type: Function
10236b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines@ CHECK: }
10336b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines
10436b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines@ CHECK: Symbol {
10536b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines@ CHECK:   Name: arm_func
10636b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines@ CHECK:   Value: 0x0
10736b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines@ CHECK:   Type: Function
10836b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines@ CHECK: }
10936b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines
110dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines@ CHECK:      Symbol {
111dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines@ CHECK:        Name: badblood
112dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines@ CHECK-NEXT:   Value: 0x0
113dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines@ CHECK-NEXT:   Size: 0
114dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines@ CHECK-NEXT:   Binding: Local
115dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines@ CHECK-NEXT:   Type: Object
116dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines@ CHECK-NEXT:   Other: 0
117dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines@ CHECK-NEXT:   Section: .data
118dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines@ CHECK-NEXT: }
119dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines
12036b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines@ CHECK: Symbol {
12136b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines@ CHECK:   Name: bedazzle
12236b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines@ CHECK:   Value: 0x4
12336b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines@ CHECK:   Type: Object
12436b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines@ CHECK: }
12536b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines
12636b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines@ CHECK: Symbol {
12736b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines@ CHECK:   Name: beta
12836b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines@ CHECK:   Value: 0x7
12936b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines@ CHECK:   Type: Function
13036b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines@ CHECK: }
13136b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines
13236b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines@ CHECK: Symbol {
13336b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines@ CHECK:   Name: eggsalad
13436b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines@ CHECK:   Value: 0xE665A1AD
13536b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines@ CHECK:   Type: Function
13636b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines@ CHECK: }
13736b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines
13836b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines@ CHECK: Symbol {
13936b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines@ CHECK:   Name: faceless
14036b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines@ CHECK:   Value: 0xFACE1E55
14136b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines@ CHECK:   Type: Function
14236b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines@ CHECK: }
14336b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines
14436b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines@ CHECK: Symbol {
14536b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines@ CHECK:   Name: seedless
14636b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines@ CHECK:   Value: 0x5EED1E55
14736b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines@ CHECK:   Type: Function
14836b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines@ CHECK: }
14936b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines
15036b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines@ CHECK: Symbol {
15136b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines@ CHECK:   Name: thumb_func
15236b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines@ CHECK:   Value: 0x5
15336b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines@ CHECK:   Type: Function
15436b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines@ CHECK: }
155