1@ RUN: llvm-mc %s -triple=armv7-unknown-linux-gnueabi -filetype=obj -o - \
2@ RUN:   | llvm-readobj -s -sd -sr | FileCheck %s
3
4@ Check the .personality directive.
5
6	.syntax unified
7
8@-------------------------------------------------------------------------------
9@ TEST1
10@-------------------------------------------------------------------------------
11	.section	.TEST1
12	.globl	func1
13	.align	2
14	.type	func1,%function
15	.fnstart
16func1:
17	bx	lr
18	.personality __gxx_personality_v0
19	.handlerdata
20	.fnend
21
22
23@ CHECK: Section {
24@ CHECK:   Name: .TEST1
25@ CHECK:   SectionData (
26@ CHECK:     0000: 1EFF2FE1                             |../.|
27@ CHECK:   )
28@ CHECK: }
29@ CHECK: Section {
30@ CHECK:   Name: .ARM.extab.TEST1
31@ CHECK:   SectionData (
32@ CHECK:     0000: 00000000 B0B0B000                    |........|
33@ CHECK:   )
34@ CHECK: }
35@ CHECK:   Relocations [
36@ CHECK:     0x0 R_ARM_PREL31 __gxx_personality_v0 0x0
37@ CHECK:   ]
38@ CHECK: Section {
39@ CHECK:   Name: .ARM.exidx.TEST1
40@ CHECK:   SectionData (
41@ CHECK:     0000: 00000000 00000000                    |........|
42@ CHECK:   )
43@ CHECK: }
44@ CHECK:   Relocations [
45@ CHECK:     0x0 R_ARM_PREL31 .TEST1 0x0
46@ CHECK:     0x4 R_ARM_PREL31 .ARM.extab.TEST1 0x0
47@ CHECK:   ]
48
49
50@-------------------------------------------------------------------------------
51@ TEST2
52@-------------------------------------------------------------------------------
53	.section	.TEST2
54	.globl	func2
55	.align	2
56	.type	func2,%function
57	.fnstart
58func2:
59	bx	lr
60	.personality __gxx_personality_v0
61	@ The .handlerdata directive is intentionally ignored.  The .fnend		@ directive should create the EXTAB entry and flush the unwind opcodes.
62	.fnend
63
64
65@ CHECK: Section {
66@ CHECK:   Name: .TEST2
67@ CHECK:   SectionData (
68@ CHECK:     0000: 1EFF2FE1                             |../.|
69@ CHECK:   )
70@ CHECK: }
71@ CHECK: Section {
72@ CHECK:   Name: .ARM.extab.TEST2
73@ CHECK:   SectionData (
74@ CHECK:     0000: 00000000 B0B0B000                    |........|
75@ CHECK:   )
76@ CHECK: }
77@ CHECK:   Relocations [
78@ CHECK:     0x0 R_ARM_PREL31 __gxx_personality_v0 0x0
79@ CHECK:   ]
80@ CHECK: Section {
81@ CHECK:   Name: .ARM.exidx.TEST2
82@ CHECK:   SectionData (
83@ CHECK:     0000: 00000000 00000000                    |........|
84@ CHECK:   )
85@ CHECK: }
86@ CHECK:   Relocations [
87@ CHECK:     0x0 R_ARM_PREL31 .TEST2 0x0
88@ CHECK:     0x4 R_ARM_PREL31 .ARM.extab.TEST2 0x0
89@ CHECK:   ]
90