diff options
Diffstat (limited to 'llvm/test/tools')
5 files changed, 116 insertions, 10 deletions
diff --git a/llvm/test/tools/llvm-objdump/X86/demangle.s b/llvm/test/tools/llvm-objdump/X86/demangle.s index 5bfdbf73e92..98088763675 100644 --- a/llvm/test/tools/llvm-objdump/X86/demangle.s +++ b/llvm/test/tools/llvm-objdump/X86/demangle.s @@ -6,13 +6,13 @@ # CHECK-NEXT: 0000000000000000 g F .text 00000000 foo() ## Check we demangle symbols when printing relocations. -# CHECK: 000000000000001 R_X86_64_PLT32 foo()-4 +# CHECK: 000000000000001 R_X86_64_PLT32 foo()-0x4 ## Check the case when relocations are inlined into disassembly. # RUN: llvm-objdump -d -r --demangle %t | FileCheck %s --check-prefix=INLINE # INLINE: foo(): # INLINE-NEXT: 0: {{.*}} callq 0 <_Z3foov+0x5> -# INLINE-NEXT: 0000000000000001: R_X86_64_PLT32 foo()-4 +# INLINE-NEXT: 0000000000000001: R_X86_64_PLT32 foo()-0x4 .text .globl _Z3foov diff --git a/llvm/test/tools/llvm-objdump/X86/elf-disassemble-relocs.test b/llvm/test/tools/llvm-objdump/X86/elf-disassemble-relocs.test index 8450b4e1f39..74d374f0884 100644 --- a/llvm/test/tools/llvm-objdump/X86/elf-disassemble-relocs.test +++ b/llvm/test/tools/llvm-objdump/X86/elf-disassemble-relocs.test @@ -5,10 +5,10 @@ # 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: 0000000000000001: R_X86_64_PC32 foo-0x4 +# CHECK-NEXT: 0000000000000002: R_X86_64_NONE bar+0x8 # CHECK-NEXT: 5: e8 00 00 00 00 callq 0 <.text+0xa> -# CHECK-NEXT: 0000000000000006: R_X86_64_PLT32 foo+1 +# CHECK-NEXT: 0000000000000006: R_X86_64_PLT32 foo+0x1 --- !ELF FileHeader: @@ -61,3 +61,56 @@ Sections: Link: 0 Info: 0xFF Relocations: [] + +## Check ranges of addends being displayed in a dump of relocations mixed with disassembly. +# RUN: yaml2obj --docnum=3 %s > %t3 +# RUN: llvm-objdump -d -r %t3 | FileCheck %s --check-prefix=ADDENDS + +# ADDENDS: Disassembly of section .text: +# ADDENDS: R_X86_64_64 glob-0x8000000000000000 +# ADDENDS: R_X86_64_64 glob+0x7fffffffffffffff +# ADDENDS: R_X86_64_64 glob-0x1 +# ADDENDS: R_X86_64_64 glob+0x12345678 +# ADDENDS: R_X86_64_64 glob{{$}} + +--- !ELF +FileHeader: + Class: ELFCLASS64 + Data: ELFDATA2LSB + Type: ET_REL + Machine: EM_X86_64 +Sections: +- Name: .text + Type: SHT_PROGBITS + Size: 8 + Flags: [SHF_EXECINSTR,SHF_ALLOC] +- Name: .rela.text + Type: SHT_RELA + Info: .text + Relocations: + - Offset: 0x0 + Addend: -9223372036854775808 + Symbol: glob + Type: R_X86_64_64 + - Offset: 0x1 + Symbol: glob + Type: R_X86_64_64 + Addend: 9223372036854775807 + - Offset: 0x2 + Symbol: glob + Type: R_X86_64_64 + Addend: -1 + - Offset: 0x3 + Symbol: glob + Type: R_X86_64_64 + Addend: 0x12345678 + - Offset: 0x4 + Symbol: glob + Type: R_X86_64_64 + Addend: 0 +Symbols: + - Name: glob + Section: .text + Value: 0x0 + Size: 0 + Binding: STB_GLOBAL diff --git a/llvm/test/tools/llvm-objdump/X86/section-filter-relocs.test b/llvm/test/tools/llvm-objdump/X86/section-filter-relocs.test index e8abbdfdf63..5345772ecae 100644 --- a/llvm/test/tools/llvm-objdump/X86/section-filter-relocs.test +++ b/llvm/test/tools/llvm-objdump/X86/section-filter-relocs.test @@ -11,7 +11,7 @@ # DISASM-EMPTY: # DISASM-NEXT: 0000000000000400 .text: # DISASM-NEXT: 400: e8 00 00 00 00 callq 0 <.text+0x5> -# RELOC-NEXT: 00000401: R_X86_64_PC32 foo+1 +# RELOC-NEXT: 00000401: R_X86_64_PC32 foo+0x1 # RELOC-NEXT: 00000401: R_X86_64_GOT32 foo # DISASM: Disassembly of section .rodata: # DISASM-EMPTY: diff --git a/llvm/test/tools/llvm-objdump/relocations-elf.test b/llvm/test/tools/llvm-objdump/relocations-elf.test index 751dfbb5807..becbc35d81a 100644 --- a/llvm/test/tools/llvm-objdump/relocations-elf.test +++ b/llvm/test/tools/llvm-objdump/relocations-elf.test @@ -8,9 +8,9 @@ # CHECK-NEXT: 0000000000000001 R_X86_64_32 glob1 # CHECK-NEXT: 0000000000000001 R_X86_64_32S glob2 # CHECK-NEXT: 0000000000000002 R_X86_64_64 loc1 -# CHECK-NEXT: 0000000000000001 R_X86_64_32 glob1+1 -# CHECK-NEXT: 0000000000000001 R_X86_64_32S glob2+2 -# CHECK-NEXT: 0000000000000002 R_X86_64_64 loc1+3 +# CHECK-NEXT: 0000000000000001 R_X86_64_32 glob1+0x1 +# CHECK-NEXT: 0000000000000001 R_X86_64_32S glob2+0x2 +# CHECK-NEXT: 0000000000000002 R_X86_64_64 loc1+0x3 --- !ELF FileHeader: !FileHeader @@ -90,3 +90,56 @@ Sections: Relocations: - Offset: 0x1 Type: R_X86_64_NONE + +## Check ranges of addends being displayed in a dump of relocations. +# RUN: yaml2obj --docnum=3 %s > %t3 +# RUN: llvm-objdump -r %t3 | FileCheck %s --check-prefix=ADDENDS + +# ADDENDS: RELOCATION RECORDS FOR [.text]: +# ADDENDS: R_X86_64_64 glob-0x8000000000000000 +# ADDENDS: R_X86_64_64 glob+0x7fffffffffffffff +# ADDENDS: R_X86_64_64 glob-0x1 +# ADDENDS: R_X86_64_64 glob+0x12345678 +# ADDENDS: R_X86_64_64 glob{{$}} + +--- !ELF +FileHeader: + Class: ELFCLASS64 + Data: ELFDATA2LSB + Type: ET_REL + Machine: EM_X86_64 +Sections: +- Name: .text + Type: SHT_PROGBITS + Size: 8 + Flags: [SHF_EXECINSTR,SHF_ALLOC] +- Name: .rela.text + Type: SHT_RELA + Info: .text + Relocations: + - Offset: 0x0 + Addend: -9223372036854775808 + Symbol: glob + Type: R_X86_64_64 + - Offset: 0x1 + Symbol: glob + Type: R_X86_64_64 + Addend: 9223372036854775807 + - Offset: 0x2 + Symbol: glob + Type: R_X86_64_64 + Addend: -1 + - Offset: 0x3 + Symbol: glob + Type: R_X86_64_64 + Addend: 0x12345678 + - Offset: 0x4 + Symbol: glob + Type: R_X86_64_64 + Addend: 0 +Symbols: + - Name: glob + Section: .text + Value: 0x0 + Size: 0 + Binding: STB_GLOBAL diff --git a/llvm/test/tools/llvm-objdump/relocations-in-nonreloc.test b/llvm/test/tools/llvm-objdump/relocations-in-nonreloc.test index 701770f7324..b68c028738b 100644 --- a/llvm/test/tools/llvm-objdump/relocations-in-nonreloc.test +++ b/llvm/test/tools/llvm-objdump/relocations-in-nonreloc.test @@ -10,7 +10,7 @@ # FMT: [[FILE]]: file format ELF64-x86-64 # REL: RELOCATION RECORDS FOR []: -# REL-NEXT: 0000000000000123 R_X86_64_NONE *ABS*+321 +# REL-NEXT: 0000000000000123 R_X86_64_NONE *ABS*+0x141 ## Executable. --- !ELF |