Skip to content

Commit 6baec97

Browse files
committed
[llvm-objdump] Print relocation addends in hexadecimal
Summary: Matches GNU objdump. Makes debugging easier for me as I'm working out addresses from symbol+addend, so it would be good to be calculating in a single format. Reviewers: MaskRay, grimar, jhenderson, bd1976llvm Reviewed By: jhenderson Subscribers: sdardis, jrtc27, atanasyan, rupprecht, seiya, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D69997
1 parent bbf4af3 commit 6baec97

13 files changed

+171
-62
lines changed

llvm/test/MC/AArch64/adr.s

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -6,11 +6,11 @@
66
// CHECK-NEXT: adr x3, #0
77
// CHECK-NEXT: R_AARCH64_ADR_PREL_LO21 Symbol
88
// CHECK-NEXT: adr x4, #0
9-
// CHECK-NEXT: R_AARCH64_ADR_PREL_LO21 Symbol+987136
9+
// CHECK-NEXT: R_AARCH64_ADR_PREL_LO21 Symbol+0xf1000
1010
// CHECK-NEXT: adr x5, #0
11-
// CHECK-NEXT: R_AARCH64_ADR_PREL_LO21 Symbol+987136
11+
// CHECK-NEXT: R_AARCH64_ADR_PREL_LO21 Symbol+0xf1000
1212
// CHECK-NEXT: adr x6, #0
13-
// CHECK-NEXT: R_AARCH64_ADR_PREL_LO21 Symbol+987136
13+
// CHECK-NEXT: R_AARCH64_ADR_PREL_LO21 Symbol+0xf1000
1414

1515
adr x0, 100
1616
adr x2, Symbol
@@ -24,11 +24,11 @@
2424
// CHECK-NEXT: adrp x2, #0
2525
// CHECK-NEXT: R_AARCH64_ADR_PREL_PG_HI21 Symbol
2626
// CHECK-NEXT: adrp x3, #0
27-
// CHECK-NEXT: R_AARCH64_ADR_PREL_PG_HI21 Symbol+987136
27+
// CHECK-NEXT: R_AARCH64_ADR_PREL_PG_HI21 Symbol+0xf1000
2828
// CHECK-NEXT: adrp x4, #0
29-
// CHECK-NEXT: R_AARCH64_ADR_PREL_PG_HI21 Symbol+987136
29+
// CHECK-NEXT: R_AARCH64_ADR_PREL_PG_HI21 Symbol+0xf1000
3030
// CHECK-NEXT: adrp x5, #0
31-
// CHECK-NEXT: R_AARCH64_ADR_PREL_PG_HI21 Symbol+987136
31+
// CHECK-NEXT: R_AARCH64_ADR_PREL_PG_HI21 Symbol+0xf1000
3232

3333
adrp x0, Symbol
3434
adrp x2, Symbol + 0

llvm/test/MC/AArch64/arm32-elf-relocs.s

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -32,37 +32,37 @@
3232

3333
add x0, x2, #:lo12:sym+8
3434
// CHECK: add x0, x2, :lo12:sym
35-
// CHECK-OBJ-ILP32: 18 R_AARCH64_P32_ADD_ABS_LO12_NC sym+8
35+
// CHECK-OBJ-ILP32: 18 R_AARCH64_P32_ADD_ABS_LO12_NC sym+0x8
3636

3737
add x5, x7, #:dtprel_lo12:sym+1
3838
// CHECK: add x5, x7, :dtprel_lo12:sym+1
39-
// CHECK-OBJ-ILP32: 1c R_AARCH64_P32_TLSLD_ADD_DTPREL_LO12 sym+1
39+
// CHECK-OBJ-ILP32: 1c R_AARCH64_P32_TLSLD_ADD_DTPREL_LO12 sym+0x1
4040

4141
add x9, x12, #:dtprel_lo12_nc:sym+2
4242
// CHECK: add x9, x12, :dtprel_lo12_nc:sym+2
43-
// CHECK-OBJ-ILP32:20 R_AARCH64_P32_TLSLD_ADD_DTPREL_LO12_NC sym+2
43+
// CHECK-OBJ-ILP32:20 R_AARCH64_P32_TLSLD_ADD_DTPREL_LO12_NC sym+0x2
4444

4545
add x20, x30, #:tprel_lo12:sym+12
4646
// CHECK: add x20, x30, :tprel_lo12:sym+12
47-
// CHECK-OBJ-ILP32: 24 R_AARCH64_P32_TLSLE_ADD_TPREL_LO12 sym+12
47+
// CHECK-OBJ-ILP32: 24 R_AARCH64_P32_TLSLE_ADD_TPREL_LO12 sym+0xc
4848

4949
add x9, x12, #:tprel_lo12_nc:sym+54
5050
// CHECK: add x9, x12, :tprel_lo12_nc:sym+54
51-
// CHECK-OBJ-ILP32: 28 R_AARCH64_P32_TLSLE_ADD_TPREL_LO12_NC sym+54
51+
// CHECK-OBJ-ILP32: 28 R_AARCH64_P32_TLSLE_ADD_TPREL_LO12_NC sym+0x36
5252

5353
add x5, x0, #:tlsdesc_lo12:sym+70
5454
// CHECK: add x5, x0, :tlsdesc_lo12:sym+70
55-
// CHECK-OBJ-ILP32: 2c R_AARCH64_P32_TLSDESC_ADD_LO12 sym+70
55+
// CHECK-OBJ-ILP32: 2c R_AARCH64_P32_TLSDESC_ADD_LO12 sym+0x46
5656

5757
.hword sym + 4 - .
58-
// CHECK-OBJ-ILP32: 30 R_AARCH64_P32_PREL16 sym+4
58+
// CHECK-OBJ-ILP32: 30 R_AARCH64_P32_PREL16 sym+0x4
5959
.word sym - . + 8
60-
// CHECK-OBJ-ILP32: 32 R_AARCH64_P32_PREL32 sym+8
60+
// CHECK-OBJ-ILP32: 32 R_AARCH64_P32_PREL32 sym+0x8
6161

6262
.hword sym
6363
// CHECK-OBJ-ILP32: 36 R_AARCH64_P32_ABS16 sym
6464
.word sym+1
65-
// CHECK-OBJ-ILP32: 38 R_AARCH64_P32_ABS32 sym+1
65+
// CHECK-OBJ-ILP32: 38 R_AARCH64_P32_ABS32 sym+0x1
6666

6767
adrp x0, sym
6868
// CHECK: adrp x0, sym

llvm/test/MC/AArch64/arm64-elf-relocs.s

Lines changed: 20 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -12,8 +12,8 @@
1212
// CHECK: add x0, x2, :lo12:sym+12
1313
// CHECK: add x0, x2, :lo12:sym-3
1414
// CHECK-OBJ-LP64: 0 R_AARCH64_ADD_ABS_LO12_NC sym
15-
// CHECK-OBJ-LP64: 4 R_AARCH64_ADD_ABS_LO12_NC sym+12
16-
// CHECK-OBJ-LP64: 8 R_AARCH64_ADD_ABS_LO12_NC sym-3
15+
// CHECK-OBJ-LP64: 4 R_AARCH64_ADD_ABS_LO12_NC sym+0xc
16+
// CHECK-OBJ-LP64: 8 R_AARCH64_ADD_ABS_LO12_NC sym-0x3
1717

1818
add x5, x7, #:dtprel_lo12:sym
1919
// CHECK: add x5, x7, :dtprel_lo12:sym
@@ -37,41 +37,41 @@
3737

3838
add x0, x2, #:lo12:sym+8
3939
// CHECK: add x0, x2, :lo12:sym
40-
// CHECK-OBJ-LP64: 20 R_AARCH64_ADD_ABS_LO12_NC sym+8
40+
// CHECK-OBJ-LP64: 20 R_AARCH64_ADD_ABS_LO12_NC sym+0x8
4141

4242
add x5, x7, #:dtprel_lo12:sym+1
4343
// CHECK: add x5, x7, :dtprel_lo12:sym+1
44-
// CHECK-OBJ-LP64: 24 R_AARCH64_TLSLD_ADD_DTPREL_LO12 sym+1
44+
// CHECK-OBJ-LP64: 24 R_AARCH64_TLSLD_ADD_DTPREL_LO12 sym+0x1
4545

4646
add x9, x12, #:dtprel_lo12_nc:sym+2
4747
// CHECK: add x9, x12, :dtprel_lo12_nc:sym+2
48-
// CHECK-OBJ-LP64: 28 R_AARCH64_TLSLD_ADD_DTPREL_LO12_NC sym+2
48+
// CHECK-OBJ-LP64: 28 R_AARCH64_TLSLD_ADD_DTPREL_LO12_NC sym+0x2
4949

5050
add x20, x30, #:tprel_lo12:sym+12
5151
// CHECK: add x20, x30, :tprel_lo12:sym+12
52-
// CHECK-OBJ-LP64: 2c R_AARCH64_TLSLE_ADD_TPREL_LO12 sym+12
52+
// CHECK-OBJ-LP64: 2c R_AARCH64_TLSLE_ADD_TPREL_LO12 sym+0xc
5353

5454
add x9, x12, #:tprel_lo12_nc:sym+54
5555
// CHECK: add x9, x12, :tprel_lo12_nc:sym+54
56-
// CHECK-OBJ-LP64: 30 R_AARCH64_TLSLE_ADD_TPREL_LO12_NC sym+54
56+
// CHECK-OBJ-LP64: 30 R_AARCH64_TLSLE_ADD_TPREL_LO12_NC sym+0x36
5757

5858
add x5, x0, #:tlsdesc_lo12:sym+70
5959
// CHECK: add x5, x0, :tlsdesc_lo12:sym+70
60-
// CHECK-OBJ-LP64: 34 R_AARCH64_TLSDESC_ADD_LO12 sym+70
60+
// CHECK-OBJ-LP64: 34 R_AARCH64_TLSDESC_ADD_LO12 sym+0x46
6161

6262
.hword sym + 4 - .
63-
// CHECK-OBJ-LP64: 38 R_AARCH64_PREL16 sym+4
63+
// CHECK-OBJ-LP64: 38 R_AARCH64_PREL16 sym+0x4
6464
.word sym - . + 8
65-
// CHECK-OBJ-LP64: 3a R_AARCH64_PREL32 sym+8
65+
// CHECK-OBJ-LP64: 3a R_AARCH64_PREL32 sym+0x8
6666
.xword sym-.
6767
// CHECK-OBJ-LP64: 3e R_AARCH64_PREL64 sym{{$}}
6868

6969
.hword sym
7070
// CHECK-OBJ-LP64: 46 R_AARCH64_ABS16 sym
7171
.word sym+1
72-
// CHECK-OBJ-LP64: 48 R_AARCH64_ABS32 sym+1
72+
// CHECK-OBJ-LP64: 48 R_AARCH64_ABS32 sym+0x1
7373
.xword sym+16
74-
// CHECK-OBJ-LP64: 4c R_AARCH64_ABS64 sym+16
74+
// CHECK-OBJ-LP64: 4c R_AARCH64_ABS64 sym+0x10
7575

7676
adrp x0, sym
7777
// CHECK: adrp x0, sym
@@ -116,9 +116,9 @@ trickQuestion:
116116
// CHECK-OBJ-LP64: R_AARCH64_LDST8_ABS_LO12_NC sym
117117
// CHECK-OBJ-LP64: R_AARCH64_LDST8_ABS_LO12_NC sym
118118
// CHECK-OBJ-LP64: R_AARCH64_LDST8_ABS_LO12_NC sym
119-
// CHECK-OBJ-LP64: R_AARCH64_LDST8_ABS_LO12_NC sym+15
120-
// CHECK-OBJ-LP64: R_AARCH64_LDST8_ABS_LO12_NC sym-2
121-
// CHECK-OBJ-LP64: R_AARCH64_LDST8_ABS_LO12_NC sym+4
119+
// CHECK-OBJ-LP64: R_AARCH64_LDST8_ABS_LO12_NC sym+0xf
120+
// CHECK-OBJ-LP64: R_AARCH64_LDST8_ABS_LO12_NC sym-0x2
121+
// CHECK-OBJ-LP64: R_AARCH64_LDST8_ABS_LO12_NC sym+0x4
122122

123123
ldrb w23, [x29, #:dtprel_lo12_nc:sym]
124124
ldrsb w23, [x19, #:dtprel_lo12:sym]
@@ -134,7 +134,7 @@ trickQuestion:
134134
// CHECK-OBJ-LP64: R_AARCH64_TLSLD_LDST8_DTPREL_LO12 sym
135135
// CHECK-OBJ-LP64: R_AARCH64_TLSLD_LDST8_DTPREL_LO12_NC sym
136136
// CHECK-OBJ-LP64: R_AARCH64_TLSLD_LDST8_DTPREL_LO12 sym
137-
// CHECK-OBJ-LP64: R_AARCH64_TLSLD_LDST8_DTPREL_LO12_NC sym+2
137+
// CHECK-OBJ-LP64: R_AARCH64_TLSLD_LDST8_DTPREL_LO12_NC sym+0x2
138138

139139
ldrb w1, [x2, :tprel_lo12:sym]
140140
ldrsb w3, [x4, #:tprel_lo12_nc:sym]
@@ -163,7 +163,7 @@ trickQuestion:
163163
// CHECK-OBJ-LP64: R_AARCH64_LDST16_ABS_LO12_NC sym
164164
// CHECK-OBJ-LP64: R_AARCH64_LDST16_ABS_LO12_NC sym
165165
// CHECK-OBJ-LP64: R_AARCH64_LDST16_ABS_LO12_NC sym
166-
// CHECK-OBJ-LP64: R_AARCH64_LDST16_ABS_LO12_NC sym+4
166+
// CHECK-OBJ-LP64: R_AARCH64_LDST16_ABS_LO12_NC sym+0x4
167167

168168
ldrh w23, [x29, #:dtprel_lo12_nc:sym]
169169
ldrsh w23, [x19, :dtprel_lo12:sym]
@@ -232,8 +232,8 @@ trickQuestion:
232232
// CHECK: ldr x28, [x27, :lo12:sym-15]
233233
// CHECK-OBJ-LP64: R_AARCH64_LDST64_ABS_LO12_NC sym
234234
// CHECK-OBJ-LP64: R_AARCH64_LDST64_ABS_LO12_NC sym
235-
// CHECK-OBJ-LP64: R_AARCH64_LDST64_ABS_LO12_NC sym+10
236-
// CHECK-OBJ-LP64: R_AARCH64_LDST64_ABS_LO12_NC sym-15
235+
// CHECK-OBJ-LP64: R_AARCH64_LDST64_ABS_LO12_NC sym+0xa
236+
// CHECK-OBJ-LP64: R_AARCH64_LDST64_ABS_LO12_NC sym-0xf
237237

238238
ldr x24, [x23, #:got_lo12:sym]
239239
ldr d22, [x21, :got_lo12:sym]
@@ -243,7 +243,7 @@ trickQuestion:
243243
// CHECK: ldr x24, [x23, :got_lo12:sym+7]
244244
// CHECK-OBJ-LP64: R_AARCH64_LD64_GOT_LO12_NC sym
245245
// CHECK-OBJ-LP64: R_AARCH64_LD64_GOT_LO12_NC sym
246-
// CHECK-OBJ-LP64: R_AARCH64_LD64_GOT_LO12_NC sym+7
246+
// CHECK-OBJ-LP64: R_AARCH64_LD64_GOT_LO12_NC sym+0x7
247247

248248
ldr x24, [x23, :dtprel_lo12_nc:sym]
249249
ldr d22, [x21, #:dtprel_lo12:sym]

llvm/test/MC/Mips/expansion-jal-sym-pic.s

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -341,7 +341,7 @@ local_label:
341341
# XN32-NEXT: .reloc .Ltmp3, R_MIPS_JALR, weak_label
342342

343343
# ELF-XN32: 3c 19 00 00 lui $25, 0
344-
# ELF-XN32-NEXT: R_MIPS_GOT_HI16 weak_label+8
344+
# ELF-XN32-NEXT: R_MIPS_GOT_HI16 weak_label+0x8
345345
# ELF-XN32-NEXT: 03 3c c8 21 addu $25, $25, $gp
346346
# ELF-XN32-NEXT: 8f 39 00 00 lw $25, 0($25)
347347
# ELF-XN32-NEXT: R_MIPS_GOT_LO16 weak_label
@@ -369,7 +369,7 @@ local_label:
369369
# XN64-NEXT: .reloc .Ltmp3, R_MIPS_JALR, weak_label
370370

371371
# ELF-XN64: 3c 19 00 00 lui $25, 0
372-
# ELF-XN64-NEXT: R_MIPS_GOT_HI16/R_MIPS_NONE/R_MIPS_NONE weak_label+8
372+
# ELF-XN64-NEXT: R_MIPS_GOT_HI16/R_MIPS_NONE/R_MIPS_NONE weak_label+0x8
373373
# ELF-XN64-NEXT: 03 3c c8 2d daddu $25, $25, $gp
374374
# ELF-XN64-NEXT: df 39 00 00 ld $25, 0($25)
375375
# ELF-XN64-NEXT: R_MIPS_GOT_LO16/R_MIPS_NONE/R_MIPS_NONE weak_label
@@ -521,7 +521,7 @@ local_label:
521521
# XN32-NEXT: .reloc .Ltmp5, R_MIPS_JALR, global_label
522522

523523
# ELF-XN32: 3c 19 00 00 lui $25, 0
524-
# ELF-XN32-NEXT: R_MIPS_GOT_HI16 global_label+8
524+
# ELF-XN32-NEXT: R_MIPS_GOT_HI16 global_label+0x8
525525
# ELF-XN32-NEXT: 03 3c c8 21 addu $25, $25, $gp
526526
# ELF-XN32-NEXT: 8f 39 00 00 lw $25, 0($25)
527527
# ELF-XN32-NEXT: R_MIPS_GOT_LO16 global_label
@@ -549,7 +549,7 @@ local_label:
549549
# XN64-NEXT: .reloc .Ltmp5, R_MIPS_JALR, global_label
550550

551551
# ELF-XN64: 3c 19 00 00 lui $25, 0
552-
# ELF-XN64-NEXT: R_MIPS_GOT_HI16/R_MIPS_NONE/R_MIPS_NONE global_label+8
552+
# ELF-XN64-NEXT: R_MIPS_GOT_HI16/R_MIPS_NONE/R_MIPS_NONE global_label+0x8
553553
# ELF-XN64-NEXT: 03 3c c8 2d daddu $25, $25, $gp
554554
# ELF-XN64-NEXT: df 39 00 00 ld $25, 0($25)
555555
# ELF-XN64-NEXT: R_MIPS_GOT_LO16/R_MIPS_NONE/R_MIPS_NONE global_label

llvm/test/MC/X86/tlsdesc-64.s

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010
# SYM: TLS GLOBAL DEFAULT UND a
1111

1212
# CHECK: 0: leaq (%rip), %rax
13-
# CHECK-NEXT: 0000000000000003: R_X86_64_GOTPC32_TLSDESC a-4
13+
# CHECK-NEXT: 0000000000000003: R_X86_64_GOTPC32_TLSDESC a-0x4
1414
# CHECK-NEXT: 7: callq *(%rax)
1515
# CHECK-NEXT: 0000000000000007: R_X86_64_TLSDESC_CALL a
1616

llvm/test/Object/X86/objdump-disassembly-inline-relocations.test

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -178,10 +178,10 @@ Symbols:
178178
# ELF-x86-64: c: bf 00 00 00 00 movl $0, %edi
179179
# ELF-x86-64: d: R_X86_64_32S .rodata.str1.1
180180
# ELF-x86-64: 11: e8 00 00 00 00 callq 0
181-
# ELF-x86-64: 12: R_X86_64_PC32 puts-4
181+
# ELF-x86-64: 12: R_X86_64_PC32 puts-0x4
182182
# ELF-x86-64: 16: 30 c0 xorb %al, %al
183183
# ELF-x86-64: 18: e8 00 00 00 00 callq 0
184-
# ELF-x86-64: 19: R_X86_64_PC32 SomeOtherFunction-4
184+
# ELF-x86-64: 19: R_X86_64_PC32 SomeOtherFunction-0x4
185185
# ELF-x86-64: 1d: 8b 44 24 04 movl 4(%rsp), %eax
186186
# ELF-x86-64: 21: 48 83 c4 08 addq $8, %rsp
187187
# ELF-x86-64: 25: c3 ret

llvm/test/Object/objdump-relocations.test

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -125,11 +125,11 @@ Symbols:
125125
# WASM-NEXT: R_WASM_FUNCTION_INDEX_LEB SomeOtherFunction
126126

127127
# ELF-complex-x86-64: .text
128-
# ELF-complex-x86-64-NEXT: R_X86_64_8 .data-4
129-
# ELF-complex-x86-64-NEXT: R_X86_64_16 .data-4
130-
# ELF-complex-x86-64-NEXT: R_X86_64_32 .data-4
131-
# ELF-complex-x86-64-NEXT: R_X86_64_32S .data-4
132-
# ELF-complex-x86-64-NEXT: R_X86_64_64 .data-4
133-
# ELF-complex-x86-64-NEXT: R_X86_64_PC32 .data-4
128+
# ELF-complex-x86-64-NEXT: R_X86_64_8 .data-0x4
129+
# ELF-complex-x86-64-NEXT: R_X86_64_16 .data-0x4
130+
# ELF-complex-x86-64-NEXT: R_X86_64_32 .data-0x4
131+
# ELF-complex-x86-64-NEXT: R_X86_64_32S .data-0x4
132+
# ELF-complex-x86-64-NEXT: R_X86_64_64 .data-0x4
133+
# ELF-complex-x86-64-NEXT: R_X86_64_PC32 .data-0x4
134134
# ELF-complex-x86-64-NEXT: R_X86_64_32 .data
135-
# ELF-complex-x86-64-NEXT: R_X86_64_32 .data+4
135+
# ELF-complex-x86-64-NEXT: R_X86_64_32 .data+0x4

llvm/test/tools/llvm-objdump/X86/demangle.s

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,13 +6,13 @@
66
# CHECK-NEXT: 0000000000000000 g F .text 00000000 foo()
77

88
## Check we demangle symbols when printing relocations.
9-
# CHECK: 000000000000001 R_X86_64_PLT32 foo()-4
9+
# CHECK: 000000000000001 R_X86_64_PLT32 foo()-0x4
1010

1111
## Check the case when relocations are inlined into disassembly.
1212
# RUN: llvm-objdump -d -r --demangle %t | FileCheck %s --check-prefix=INLINE
1313
# INLINE: foo():
1414
# INLINE-NEXT: 0: {{.*}} callq 0 <_Z3foov+0x5>
15-
# INLINE-NEXT: 0000000000000001: R_X86_64_PLT32 foo()-4
15+
# INLINE-NEXT: 0000000000000001: R_X86_64_PLT32 foo()-0x4
1616

1717
.text
1818
.globl _Z3foov

llvm/test/tools/llvm-objdump/X86/elf-disassemble-relocs.test

Lines changed: 56 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,10 +5,10 @@
55
# RUN: llvm-objdump %t1.o -d -r | FileCheck %s --implicit-check-not="RELOCATION RECORDS"
66

77
# CHECK: 0: e8 00 00 00 00 callq 0 <.text+0x5>
8-
# CHECK-NEXT: 0000000000000001: R_X86_64_PC32 foo-4
9-
# CHECK-NEXT: 0000000000000002: R_X86_64_NONE bar+8
8+
# CHECK-NEXT: 0000000000000001: R_X86_64_PC32 foo-0x4
9+
# CHECK-NEXT: 0000000000000002: R_X86_64_NONE bar+0x8
1010
# CHECK-NEXT: 5: e8 00 00 00 00 callq 0 <.text+0xa>
11-
# CHECK-NEXT: 0000000000000006: R_X86_64_PLT32 foo+1
11+
# CHECK-NEXT: 0000000000000006: R_X86_64_PLT32 foo+0x1
1212

1313
--- !ELF
1414
FileHeader:
@@ -61,3 +61,56 @@ Sections:
6161
Link: 0
6262
Info: 0xFF
6363
Relocations: []
64+
65+
## Check ranges of addends being displayed in a dump of relocations mixed with disassembly.
66+
# RUN: yaml2obj --docnum=3 %s > %t3
67+
# RUN: llvm-objdump -d -r %t3 | FileCheck %s --check-prefix=ADDENDS
68+
69+
# ADDENDS: Disassembly of section .text:
70+
# ADDENDS: R_X86_64_64 glob-0x8000000000000000
71+
# ADDENDS: R_X86_64_64 glob+0x7fffffffffffffff
72+
# ADDENDS: R_X86_64_64 glob-0x1
73+
# ADDENDS: R_X86_64_64 glob+0x12345678
74+
# ADDENDS: R_X86_64_64 glob{{$}}
75+
76+
--- !ELF
77+
FileHeader:
78+
Class: ELFCLASS64
79+
Data: ELFDATA2LSB
80+
Type: ET_REL
81+
Machine: EM_X86_64
82+
Sections:
83+
- Name: .text
84+
Type: SHT_PROGBITS
85+
Size: 8
86+
Flags: [SHF_EXECINSTR,SHF_ALLOC]
87+
- Name: .rela.text
88+
Type: SHT_RELA
89+
Info: .text
90+
Relocations:
91+
- Offset: 0x0
92+
Addend: -9223372036854775808
93+
Symbol: glob
94+
Type: R_X86_64_64
95+
- Offset: 0x1
96+
Symbol: glob
97+
Type: R_X86_64_64
98+
Addend: 9223372036854775807
99+
- Offset: 0x2
100+
Symbol: glob
101+
Type: R_X86_64_64
102+
Addend: -1
103+
- Offset: 0x3
104+
Symbol: glob
105+
Type: R_X86_64_64
106+
Addend: 0x12345678
107+
- Offset: 0x4
108+
Symbol: glob
109+
Type: R_X86_64_64
110+
Addend: 0
111+
Symbols:
112+
- Name: glob
113+
Section: .text
114+
Value: 0x0
115+
Size: 0
116+
Binding: STB_GLOBAL

llvm/test/tools/llvm-objdump/X86/section-filter-relocs.test

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111
# DISASM-EMPTY:
1212
# DISASM-NEXT: 0000000000000400 .text:
1313
# DISASM-NEXT: 400: e8 00 00 00 00 callq 0 <.text+0x5>
14-
# RELOC-NEXT: 00000401: R_X86_64_PC32 foo+1
14+
# RELOC-NEXT: 00000401: R_X86_64_PC32 foo+0x1
1515
# RELOC-NEXT: 00000401: R_X86_64_GOT32 foo
1616
# DISASM: Disassembly of section .rodata:
1717
# DISASM-EMPTY:

0 commit comments

Comments
 (0)