| ## Show that --disassemble + --reloc prints relocations inline and does not dump |
| ## the relocation sections. |
| |
| # RUN: yaml2obj %s --docnum=1 -o %t1.o |
| # RUN: llvm-objdump %t1.o -d -r | FileCheck %s --implicit-check-not="RELOCATION RECORDS" |
| |
| # CHECK: 0: e8 00 00 00 00 callq 0 <.text+0x5> |
| # CHECK-NEXT: 0000000000000001: R_X86_64_PC32 foo-4 |
| # CHECK-NEXT: 0000000000000002: R_X86_64_NONE bar+8 |
| # CHECK-NEXT: 5: e8 00 00 00 00 callq 0 <.text+0xa> |
| # CHECK-NEXT: 0000000000000006: R_X86_64_PLT32 foo+1 |
| |
| --- !ELF |
| FileHeader: |
| Class: ELFCLASS64 |
| Data: ELFDATA2LSB |
| Type: ET_REL |
| Machine: EM_X86_64 |
| Sections: |
| - Name: .text |
| Type: SHT_PROGBITS |
| Flags: [SHF_ALLOC, SHF_EXECINSTR] |
| Content: 'e800000000e800000000' |
| - Name: .rela.text |
| Type: SHT_RELA |
| Info: .text |
| Relocations: |
| - Offset: 1 |
| Symbol: foo |
| Type: R_X86_64_PC32 |
| Addend: -4 |
| - Offset: 2 |
| Symbol: bar |
| Type: R_X86_64_NONE |
| Addend: 8 |
| - Offset: 6 |
| Symbol: foo |
| Type: R_X86_64_PLT32 |
| Addend: 1 |
| Symbols: |
| - Name: foo |
| - Name: bar |
| |
| ## Check we report an error if the relocated section identified by the |
| ## sh_info field of a relocation section is invalid. |
| |
| # RUN: yaml2obj %s --docnum=2 -o %t2.o |
| # RUN: not llvm-objdump %t2.o --disassemble --reloc 2>&1 | FileCheck %s -DFILE=%t2.o --check-prefix=ERR |
| |
| # ERR: error: '[[FILE]]': section (1): failed to get a relocated section: invalid section index: 255 |
| |
| --- !ELF |
| FileHeader: |
| Class: ELFCLASS64 |
| Data: ELFDATA2LSB |
| Type: ET_REL |
| Machine: EM_X86_64 |
| Sections: |
| - Name: .rela.debug_info |
| Type: SHT_RELA |
| Link: 0 |
| Info: 0xFF |
| Relocations: [] |