## Show that references in disassembly are labelled with the correct symbol. # RUN: yaml2obj %s --docnum=1 -o %t # RUN: llvm-objdump %t -d | FileCheck %s --check-prefix=EXEC # EXEC: Disassembly of section .text1: # EXEC: 4000: e8 00 00 00 00 callq 0 # EXEC: Disassembly of section .text2: # EXEC: 4005: e8 12 34 56 78 callq 2018915346 --- !ELF FileHeader: Class: ELFCLASS64 Data: ELFDATA2LSB Type: ET_EXEC Machine: EM_X86_64 Sections: - Name: .text1 Type: SHT_PROGBITS Address: 0x4000 Flags: [SHF_ALLOC, SHF_EXECINSTR] Content: 'e800000000' # Case 1: Referencing an address with a symbol. - Name: .text2 Type: SHT_PROGBITS Flags: [SHF_ALLOC, SHF_EXECINSTR] Address: 0x4005 Content: 'e812345678' # Case 2: Referencing an address without a symbol. - Name: .text3 Type: SHT_PROGBITS Flags: [SHF_ALLOC, SHF_EXECINSTR] Address: 0x400A Symbols: - Name: first Section: .text1 Value: 0x4000 - Name: second Section: .text1 Value: 0x4005 - Name: third Section: .text2 Value: 0x4005 - Name: fourth Section: .text3 Value: 0x400A # RUN: yaml2obj %s --docnum=2 -o %t.o # RUN: llvm-objdump %t.o -d | FileCheck %s --check-prefix=REL # REL: Disassembly of section .text1: # REL-EMPTY: # REL-NEXT: 0000000000000000 .text1: # REL-NEXT: 0: e8 00 00 00 00 callq 0 <.text1+0x5> # REL-EMPTY: # REL-NEXT: Disassembly of section .text2: # REL-EMPTY: # REL-NEXT: 0000000000000000 .text2: # REL-NEXT: 0: e8 00 00 00 00 callq 0 # REL-EMPTY: # REL-NEXT: Disassembly of section .text3: # REL-EMPTY: # REL-NEXT: 0000000000000000 .text3: # REL-NEXT: 0: e8 00 00 00 00 callq 0 <.text3+0x5> --- !ELF FileHeader: Class: ELFCLASS64 Data: ELFDATA2LSB Type: ET_REL Machine: EM_X86_64 Sections: - Name: .text1 Type: SHT_PROGBITS Flags: [SHF_ALLOC, SHF_EXECINSTR] Content: 'e800000000' # Case 1: Instruction is patched by a relocation. - Name: .rela.text1 Type: SHT_RELA Info: .text1 Relocations: - Offset: 1 Type: R_X86_64_PC32 Symbol: sym3 - Name: .text2 Type: SHT_PROGBITS Flags: [SHF_ALLOC, SHF_EXECINSTR] Content: 'e800000000' # Case 2: Referencing an address with a matching symbol in that section. - Name: .text3 Type: SHT_PROGBITS Flags: [SHF_ALLOC, SHF_EXECINSTR] Content: 'e800000000' # Case 3: Referencing an address without a matching symbol in that section. - Name: .other Type: SHT_PROGBITS Symbols: # Shouldn't be picked, despite matching value, as not in right section. - Name: sym1 Section: .other Value: 5 # Symbol in correct section, with right value should be picked for disassembly of .text2. - Name: sym2 Section: .text2 Value: 5 # Symbol referenced by relocation could be picked for disassembly of .text1, but isn't. - Name: sym3