Make it clear in which sections these relocations are.
[oota-llvm.git] / test / MC / ARM / eh-directive-personality.s
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
16 func1:
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
36 @ CHECK: Section {
37 @ CHECK:   Name: .rel.ARM.extab.TEST1
38 @ CHECK:   Relocations [
39 @ CHECK:     0x0 R_ARM_PREL31 __gxx_personality_v0 0x0
40 @ CHECK:   ]
41 @ CHECK: }
42
43 @ CHECK: Section {
44 @ CHECK:   Name: .ARM.exidx.TEST1
45 @ CHECK:   SectionData (
46 @ CHECK:     0000: 00000000 00000000                    |........|
47 @ CHECK:   )
48 @ CHECK: }
49
50 @ CHECK: Section {
51 @ CHECK:   Name: .rel.ARM.exidx.TEST1
52 @ CHECK:   Relocations [
53 @ CHECK:     0x0 R_ARM_PREL31 .TEST1 0x0
54 @ CHECK:     0x4 R_ARM_PREL31 .ARM.extab.TEST1 0x0
55 @ CHECK:   ]
56 @ CHECK: }
57
58
59 @-------------------------------------------------------------------------------
60 @ TEST2
61 @-------------------------------------------------------------------------------
62         .section        .TEST2
63         .globl  func2
64         .align  2
65         .type   func2,%function
66         .fnstart
67 func2:
68         bx      lr
69         .personality __gxx_personality_v0
70         @ The .handlerdata directive is intentionally ignored.  The .fnend              @ directive should create the EXTAB entry and flush the unwind opcodes.
71         .fnend
72
73
74 @ CHECK: Section {
75 @ CHECK:   Name: .TEST2
76 @ CHECK:   SectionData (
77 @ CHECK:     0000: 1EFF2FE1                             |../.|
78 @ CHECK:   )
79 @ CHECK: }
80 @ CHECK: Section {
81 @ CHECK:   Name: .ARM.extab.TEST2
82 @ CHECK:   SectionData (
83 @ CHECK:     0000: 00000000 B0B0B000                    |........|
84 @ CHECK:   )
85 @ CHECK: }
86
87 @ CHECK: Section {
88 @ CHECK:   Name: .rel.ARM.extab.TEST2
89 @ CHECK:   Relocations [
90 @ CHECK:     0x0 R_ARM_PREL31 __gxx_personality_v0 0x0
91 @ CHECK:   ]
92 @ CHECK: }
93
94 @ CHECK: Section {
95 @ CHECK:   Name: .ARM.exidx.TEST2
96 @ CHECK:   SectionData (
97 @ CHECK:     0000: 00000000 00000000                    |........|
98 @ CHECK:   )
99 @ CHECK: }
100
101 @ CHECK: Section {
102 @ CHECK:   Name: .rel.ARM.exidx.TEST2
103 @ CHECK:   Relocations [
104 @ CHECK:     0x0 R_ARM_PREL31 .TEST2 0x0
105 @ CHECK:     0x4 R_ARM_PREL31 .ARM.extab.TEST2 0x0
106 @ CHECK:   ]
107 @ CHECK: }