ac0a0fc9309ac7488e251b22455babb61352dcf1
[oota-llvm.git] / test / CodeGen / ARM / ehabi-mc-sh_link.ll
1 ; Test the sh_link in Elf32_Shdr.
2
3 ; The .ARM.exidx section should be linked with corresponding text section.
4 ; The sh_link in Elf32_Shdr should be filled with the section index of
5 ; the text section.
6
7 ; RUN: llc -mtriple arm-unknown-linux-gnueabi \
8 ; RUN:     -arm-enable-ehabi -arm-enable-ehabi-descriptors \
9 ; RUN:     -filetype=obj -o - %s \
10 ; RUN:   | llvm-readobj -s \
11 ; RUN:   | FileCheck %s
12
13 define void @test1() nounwind {
14 entry:
15   ret void
16 }
17
18 define void @test2() nounwind section ".test_section" {
19 entry:
20   ret void
21 }
22
23 ; CHECK:      Sections [
24 ; CHECK:        Section {
25 ; CHECK:          Index: 1
26 ; CHECK-NEXT:     Name: .text (16)
27
28 ; CHECK:        Section {
29 ; CHECK:          Name: .ARM.exidx (5)
30 ; CHECK-NEXT:     Type: SHT_ARM_EXIDX
31 ; CHECK-NEXT:     Flags [ (0x82)
32 ; CHECK-NEXT:       SHF_ALLOC
33 ; CHECK-NEXT:       SHF_LINK_ORDER
34 ; CHECK-NEXT:     ]
35 ; CHECK-NEXT:     Address: 0x0
36 ; CHECK-NEXT:     Offset: 0x5C
37 ; CHECK-NEXT:     Size: 8
38 ; CHECK-NEXT:     Link: 1
39 ; CHECK-NEXT:     Info: 0
40 ; CHECK-NEXT:     AddressAlignment: 4
41
42 ; CHECK:        Section {
43 ; CHECK:          Index: 7
44 ; CHECK-NEXT:     Name: .test_section (57)
45
46 ; CHECK:        Section {
47 ; CHECK:          Name: .ARM.exidx.test_section (47)
48 ; CHECK-NEXT:     Type: SHT_ARM_EXIDX
49 ; CHECK-NEXT:     Flags [ (0x82)
50 ; CHECK-NEXT:       SHF_ALLOC
51 ; CHECK-NEXT:       SHF_LINK_ORDER
52 ; CHECK-NEXT:     ]
53 ; CHECK-NEXT:     Address: 0x0
54 ; CHECK-NEXT:     Offset: 0x68
55 ; CHECK-NEXT:     Size: 8
56 ; CHECK-NEXT:     Link: 7
57 ; CHECK-NEXT:     Info: 0
58 ; CHECK-NEXT:     AddressAlignment: 4