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