Write section and section table entries in the same order.
[oota-llvm.git] / test / MC / ARM / eh-link.s
1 @ RUN: llvm-mc %s -triple=armv7-unknown-linux-gnueabi -filetype=obj -o - \
2 @ RUN:   | llvm-readobj -s  | FileCheck %s
3
4 @ Test that the ARM_EXIDX sections point (Link) to the corresponding text
5 @ sections.
6
7 @ FIXME: The section numbers are not important. If llvm-readobj printed the
8 @ name first we could use a FileCheck variable.
9
10 @ CHECK:      Section {
11 @ CHECK:        Index: 6
12 @ CHECK-NEXT:   Name: .text
13 @ CHECK-NEXT:   Type: SHT_PROGBITS
14 @ CHECK-NEXT:   Flags [
15 @ CHECK-NEXT:     SHF_ALLOC
16 @ CHECK-NEXT:     SHF_EXECINSTR
17 @ CHECK-NEXT:     SHF_GROUP
18 @ CHECK-NEXT:   ]
19 @ CHECK-NEXT:   Address: 0x0
20 @ CHECK-NEXT:   Offset: 0x54
21 @ CHECK-NEXT:   Size: 4
22 @ CHECK-NEXT:   Link: 0
23 @ CHECK-NEXT:   Info: 0
24 @ CHECK-NEXT:   AddressAlignment: 1
25 @ CHECK-NEXT:   EntrySize: 0
26 @ CHECK-NEXT: }
27 @ CHECK-NEXT: Section {
28 @ CHECK-NEXT:   Index: 7
29 @ CHECK-NEXT:   Name: .ARM.exidx
30 @ CHECK-NEXT:   Type: SHT_ARM_EXIDX
31 @ CHECK-NEXT:   Flags [
32 @ CHECK-NEXT:     SHF_ALLOC
33 @ CHECK-NEXT:     SHF_GROUP
34 @ CHECK-NEXT:     SHF_LINK_ORDER
35 @ CHECK-NEXT:   ]
36 @ CHECK-NEXT:   Address: 0x0
37 @ CHECK-NEXT:   Offset: 0x58
38 @ CHECK-NEXT:   Size: 8
39 @ CHECK-NEXT:   Link: 6
40 @ CHECK-NEXT:   Info: 0
41 @ CHECK-NEXT:   AddressAlignment: 4
42 @ CHECK-NEXT:   EntrySize: 0
43 @ CHECK-NEXT: }
44
45 @ CHECK:      Section {
46 @ CHECK:        Index: 9
47 @ CHECK-NEXT:   Name: .text
48 @ CHECK-NEXT:   Type: SHT_PROGBITS
49 @ CHECK-NEXT:   Flags [
50 @ CHECK-NEXT:     SHF_ALLOC
51 @ CHECK-NEXT:     SHF_EXECINSTR
52 @ CHECK-NEXT:     SHF_GROUP
53 @ CHECK-NEXT:   ]
54 @ CHECK-NEXT:   Address: 0x0
55 @ CHECK-NEXT:   Offset:
56 @ CHECK-NEXT:   Size: 4
57 @ CHECK-NEXT:   Link: 0
58 @ CHECK-NEXT:   Info: 0
59 @ CHECK-NEXT:   AddressAlignment: 1
60 @ CHECK-NEXT:   EntrySize: 0
61 @ CHECK-NEXT: }
62 @ CHECK-NEXT: Section {
63 @ CHECK-NEXT:   Index: 10
64 @ CHECK-NEXT:   Name: .ARM.exidx
65 @ CHECK-NEXT:   Type: SHT_ARM_EXIDX
66 @ CHECK-NEXT:   Flags [
67 @ CHECK-NEXT:     SHF_ALLOC
68 @ CHECK-NEXT:     SHF_GROUP
69 @ CHECK-NEXT:     SHF_LINK_ORDER
70 @ CHECK-NEXT:   ]
71 @ CHECK-NEXT:   Address: 0x0
72 @ CHECK-NEXT:   Offset:
73 @ CHECK-NEXT:   Size: 8
74 @ CHECK-NEXT:   Link: 9
75 @ CHECK-NEXT:   Info: 0
76 @ CHECK-NEXT:   AddressAlignment: 4
77 @ CHECK-NEXT:   EntrySize: 0
78 @ CHECK-NEXT: }
79
80         .section        .text,"axG",%progbits,f,comdat
81 f:
82         .fnstart
83         mov     pc, lr
84         .fnend
85
86         .section        .text,"axG",%progbits,g,comdat
87 g:
88         .fnstart
89         mov     pc, lr
90         .fnend