94 lines · plain
1// RUN: llvm-mc -filetype=obj -triple x86_64-pc-linux-gnu %s -o - | llvm-readobj -S --symbols -r --expand-relocs - | FileCheck %s2 3.section foo, "aG", @progbits, f1, comdat4.section foo, "G", @progbits, f2, comdat5.section bar6.long foo7 8// Test that the relocation points to the first section foo.9 10// The first seciton foo has index 611// CHECK: Section {12// CHECK: Index: 413// CHECK-NEXT: Name: foo14// CHECK-NEXT: Type: SHT_PROGBITS (0x1)15// CHECK-NEXT: Flags [ (0x202)16// CHECK-NEXT: SHF_ALLOC (0x2)17// CHECK-NEXT: SHF_GROUP (0x200)18// CHECK-NEXT: ]19// CHECK-NEXT: Address: 0x020// CHECK-NEXT: Offset:21// CHECK-NEXT: Size: 022// CHECK-NEXT: Link: 023// CHECK-NEXT: Info: 024// CHECK-NEXT: AddressAlignment: 125// CHECK-NEXT: EntrySize: 026// CHECK-NEXT: }27// CHECK: Section {28// CHECK: Index: 629// CHECK-NEXT: Name: foo30// CHECK-NEXT: Type: SHT_PROGBITS (0x1)31// CHECK-NEXT: Flags [ (0x200)32// CHECK-NEXT: SHF_GROUP (0x200)33// CHECK-NEXT: ]34// CHECK-NEXT: Address: 0x035// CHECK-NEXT: Offset:36// CHECK-NEXT: Size: 037// CHECK-NEXT: Link: 038// CHECK-NEXT: Info: 039// CHECK-NEXT: AddressAlignment: 140// CHECK-NEXT: EntrySize: 041// CHECK-NEXT: }42 43// The relocation points to symbol 344// CHECK: Relocations [45// CHECK-NEXT: Section ({{.*}}) .relabar {46// CHECK-NEXT: Relocation {47// CHECK-NEXT: Offset: 0x048// CHECK-NEXT: Type: R_X86_64_32 (10)49// CHECK-NEXT: Symbol: foo (2)50// CHECK-NEXT: Addend: 0x051// CHECK-NEXT: }52// CHECK-NEXT: }53// CHECK-NEXT: ]54 55// Symbol 3 is section 656// CHECK: Symbols [57// CHECK-NEXT: Symbol {58// CHECK-NEXT: Name: (0)59// CHECK-NEXT: Value: 0x060// CHECK-NEXT: Size: 061// CHECK-NEXT: Binding: Local (0x0)62// CHECK-NEXT: Type: None (0x0)63// CHECK-NEXT: Other: 064// CHECK-NEXT: Section: Undefined (0x0)65// CHECK-NEXT: }66// CHECK-NEXT: Symbol {67// CHECK-NEXT: Name: f168// CHECK-NEXT: Value: 0x069// CHECK-NEXT: Size: 070// CHECK-NEXT: Binding: Local (0x0)71// CHECK-NEXT: Type: None (0x0)72// CHECK-NEXT: Other: 073// CHECK-NEXT: Section: .group74// CHECK-NEXT: }75// CHECK-NEXT: Symbol {76// CHECK-NEXT: Name: foo (0)77// CHECK-NEXT: Value: 0x078// CHECK-NEXT: Size: 079// CHECK-NEXT: Binding: Local (0x0)80// CHECK-NEXT: Type: Section (0x3)81// CHECK-NEXT: Other: 082// CHECK-NEXT: Section: foo (0x4)83// CHECK-NEXT: }84// CHECK-NEXT: Symbol {85// CHECK-NEXT: Name: f286// CHECK-NEXT: Value: 0x087// CHECK-NEXT: Size: 088// CHECK-NEXT: Binding: Local (0x0)89// CHECK-NEXT: Type: None (0x0)90// CHECK-NEXT: Other: 091// CHECK-NEXT: Section: .group92// CHECK-NEXT: }93// CHECK-NEXT: ]94