summaryrefslogtreecommitdiffstats
path: root/llvm/test/tools/llvm-objdump
diff options
context:
space:
mode:
authorGeorge Rimar <grimar@accesssoftek.com>2019-06-05 11:37:53 +0000
committerGeorge Rimar <grimar@accesssoftek.com>2019-06-05 11:37:53 +0000
commitb42196661ba7ccfa3d68906ed52e0488305291b2 (patch)
tree68cfb986cbf8347e6bc0edf1a64b81623ed948a0 /llvm/test/tools/llvm-objdump
parent5a81af547c2c7a3444e4b4a6b752c4fc1e5d95b1 (diff)
downloadbcm5719-llvm-b42196661ba7ccfa3d68906ed52e0488305291b2.tar.gz
bcm5719-llvm-b42196661ba7ccfa3d68906ed52e0488305291b2.zip
[llvm-objdump] - Disassemble non-executable sections if specifically requested.
This is https://bugs.llvm.org/show_bug.cgi?id=41897. Previously -d + -j .data had no effect, that wasn't consistent with GNU, which proccesses .data in that case. With this patch we follow this behavior. Diffeential revision: https://reviews.llvm.org/D62848 llvm-svn: 362596
Diffstat (limited to 'llvm/test/tools/llvm-objdump')
-rw-r--r--llvm/test/tools/llvm-objdump/X86/section-filter-disasm.test43
-rw-r--r--llvm/test/tools/llvm-objdump/X86/section-filter-relocs.test15
2 files changed, 51 insertions, 7 deletions
diff --git a/llvm/test/tools/llvm-objdump/X86/section-filter-disasm.test b/llvm/test/tools/llvm-objdump/X86/section-filter-disasm.test
new file mode 100644
index 00000000000..076e748bb53
--- /dev/null
+++ b/llvm/test/tools/llvm-objdump/X86/section-filter-disasm.test
@@ -0,0 +1,43 @@
+# RUN: yaml2obj %s -o %t.o
+
+## By default, only executable sections are disassembled,
+## but with the use of the --section flag, we can change this behavior.
+## Show that llvm-objdump can disassemble the specified sections.
+
+# RUN: llvm-objdump -d %t.o | FileCheck %s --check-prefix=TEXT \
+# RUN: --implicit-check-not=.rodata --implicit-check-not=.data
+
+# RUN: llvm-objdump -d %t.o --section=.rodata \
+# RUN: | FileCheck %s --check-prefix=RODATA \
+# RUN: --implicit-check-not=.text --implicit-check-not=.data
+
+# RUN: llvm-objdump -d %t.o --section=.rodata --section=.text \
+# RUN: | FileCheck %s --check-prefixes=RODATA,TEXT \
+# RUN: --implicit-check-not=.data
+
+# RUN: llvm-objdump -d %t.o --section=.rodata --section=.text --section=.data \
+# RUN: | FileCheck %s --check-prefixes=RODATA,TEXT,DATA
+
+# RODATA: Disassembly of section .rodata
+# TEXT: Disassembly of section .text
+# DATA: Disassembly of section .data
+
+--- !ELF
+FileHeader:
+ Class: ELFCLASS64
+ Data: ELFDATA2LSB
+ Type: ET_REL
+ Machine: EM_X86_64
+Sections:
+ - Name: .rodata
+ Type: SHT_PROGBITS
+ Flags: [SHF_ALLOC]
+ Content: '00'
+ - Name: .text
+ Type: SHT_PROGBITS
+ Flags: [SHF_ALLOC, SHF_EXECINSTR]
+ Content: '00'
+ - Name: .data
+ Type: SHT_PROGBITS
+ Flags: [SHF_ALLOC, SHF_WRITE]
+ Content: '00'
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 5411288019d..e8abbdfdf63 100644
--- a/llvm/test/tools/llvm-objdump/X86/section-filter-relocs.test
+++ b/llvm/test/tools/llvm-objdump/X86/section-filter-relocs.test
@@ -1,16 +1,11 @@
## Test that --section works correctly for -d with -r.
# RUN: yaml2obj %s -o %t.o
-## Show non-executable sections are not disassembled even if specified,
-## and that only the specified executable sections are disassembled.
+## Show that only the specified sections are disassembled.
## Also show that no relocation sections are dumped because none are
## specified.
-## FIXME: This is different behaviour to GNU objdump, which dumps the non-
-## executable sections if requested explicitly.
-## See https://bugs.llvm.org/show_bug.cgi?id=41897.
# RUN: llvm-objdump -d -r %t.o --section=.text --section=.rodata \
-# RUN: | FileCheck %s --check-prefixes=DISASM,RELOC --implicit-check-not=.text2 \
-# RUN: --implicit-check-not=.rodata
+# RUN: | FileCheck %s --check-prefixes=DISASM,RELOC --implicit-check-not=.text2
# DISASM: Disassembly of section .text:
# DISASM-EMPTY:
@@ -18,6 +13,12 @@
# 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_GOT32 foo
+# DISASM: Disassembly of section .rodata:
+# DISASM-EMPTY:
+# DISASM-NEXT: 0000000000000000 .rodata:
+# DISASM-NEXT: 0: 00 00 addb %al, (%rax)
+# RELOC-NEXT: 0000000000000000: R_X86_64_NONE foo
+# DISASM-NEXT: 2: 00 00 addb %al, (%rax)
--- !ELF
FileHeader:
OpenPOWER on IntegriCloud