summaryrefslogtreecommitdiffstats
path: root/llvm/test/tools
diff options
context:
space:
mode:
authorGeorge Rimar <grimar@accesssoftek.com>2019-08-05 13:16:06 +0000
committerGeorge Rimar <grimar@accesssoftek.com>2019-08-05 13:16:06 +0000
commit94484d2b118cd4045d18c0132770755641ff78cd (patch)
tree14299573ea2f8a439f954b646f2be99aef37d82f /llvm/test/tools
parent53770e78ae482113df8951cdb874a93b03bdb241 (diff)
downloadbcm5719-llvm-94484d2b118cd4045d18c0132770755641ff78cd.tar.gz
bcm5719-llvm-94484d2b118cd4045d18c0132770755641ff78cd.zip
[obj2yaml] - Teach tool to dump SHT_NULL sections.
Recently an advanced support of SHT_NULL sections was implemented in yaml2obj. This patch adds a corresponding support to obj2yaml. Differential revision: https://reviews.llvm.org/D65215 llvm-svn: 367852
Diffstat (limited to 'llvm/test/tools')
-rw-r--r--llvm/test/tools/obj2yaml/elf-null-section.yaml143
1 files changed, 143 insertions, 0 deletions
diff --git a/llvm/test/tools/obj2yaml/elf-null-section.yaml b/llvm/test/tools/obj2yaml/elf-null-section.yaml
new file mode 100644
index 00000000000..99781ec1067
--- /dev/null
+++ b/llvm/test/tools/obj2yaml/elf-null-section.yaml
@@ -0,0 +1,143 @@
+## Check we are able to dump the SHT_NULL section at
+## index 0 when it has custom section fields.
+
+# RUN: yaml2obj --docnum=1 %s -o %t1
+# RUN: obj2yaml %t1 | FileCheck %s --check-prefix=FIRST-SEC
+
+# FIRST-SEC: --- !ELF
+# FIRST-SEC-NEXT: FileHeader:
+# FIRST-SEC-NEXT: Class: ELFCLASS64
+# FIRST-SEC-NEXT: Data: ELFDATA2LSB
+# FIRST-SEC-NEXT: Type: ET_REL
+# FIRST-SEC-NEXT: Machine: EM_X86_64
+# FIRST-SEC-NEXT: Sections:
+# FIRST-SEC-NEXT: - Type: SHT_NULL
+# FIRST-SEC-NEXT: Flags: [ SHF_ALLOC ]
+# FIRST-SEC-NEXT: Address: 0x0000000000000006
+# FIRST-SEC-NEXT: Link: .foo
+# FIRST-SEC-NEXT: AddressAlign: 0x0000000000000003
+# FIRST-SEC-NEXT: EntSize: 0x0000000000000005
+# FIRST-SEC-NEXT: Size: 0x0000000000000004
+# FIRST-SEC-NEXT: Info: 0x0000000000000002
+# FIRST-SEC-NEXT: - Name: .foo
+# FIRST-SEC-NEXT: Type: SHT_PROGBITS
+# FIRST-SEC-NEXT: ...
+
+--- !ELF
+FileHeader:
+ Class: ELFCLASS64
+ Data: ELFDATA2LSB
+ Type: ET_REL
+ Machine: EM_X86_64
+Sections:
+ - Type: SHT_NULL
+ Name: ''
+ Flags: [ SHF_ALLOC ]
+ Link: 1
+ Info: 2
+ AddressAlign: 0x3
+ Size: 0x4
+ EntSize: 0x5
+ Address: 0x6
+ - Type: SHT_PROGBITS
+ Name: .foo
+
+## Check we are able to dump the SHT_NULL section with a non-zero index.
+
+# RUN: yaml2obj --docnum=2 %s -o %t2
+# RUN: obj2yaml %t2 | FileCheck %s --check-prefix=SECOND-SEC
+
+# SECOND-SEC: --- !ELF
+# SECOND-SEC-NEXT: FileHeader:
+# SECOND-SEC-NEXT: Class: ELFCLASS64
+# SECOND-SEC-NEXT: Data: ELFDATA2LSB
+# SECOND-SEC-NEXT: Type: ET_REL
+# SECOND-SEC-NEXT: Machine: EM_X86_64
+# SECOND-SEC-NEXT: Sections:
+# SECOND-SEC-NEXT: - Name: .foo
+# SECOND-SEC-NEXT: Type: SHT_PROGBITS
+# SECOND-SEC-NEXT: - Type: SHT_NULL
+# SECOND-SEC-NEXT: Flags: [ SHF_ALLOC ]
+# SECOND-SEC-NEXT: Address: 0x0000000000000006
+# SECOND-SEC-NEXT: Link: .foo
+# SECOND-SEC-NEXT: AddressAlign: 0x0000000000000003
+# SECOND-SEC-NEXT: EntSize: 0x0000000000000005
+# SECOND-SEC-NEXT: Content: '00000000'
+# SECOND-SEC-NEXT: Info: 0x0000000000000002
+# SECOND-SEC-NEXT: ...
+
+--- !ELF
+FileHeader:
+ Class: ELFCLASS64
+ Data: ELFDATA2LSB
+ Type: ET_REL
+ Machine: EM_X86_64
+Sections:
+ - Type: SHT_PROGBITS
+ Name: .foo
+ - Type: SHT_NULL
+ Name: ''
+ Flags: [ SHF_ALLOC ]
+ Link: 1
+ Info: 2
+ AddressAlign: 0x3
+ Size: 0x4
+ EntSize: 0x5
+ Address: 0x6
+
+## Check we do not dump the SHT_NULL section with index 0
+## when it does not have any custom fields.
+
+# RUN: yaml2obj --docnum=3 %s -o %t3
+# RUN: obj2yaml %t3 | FileCheck %s --check-prefix=NULL-SEC
+
+# NULL-SEC: --- !ELF
+# NULL-SEC-NEXT: FileHeader:
+# NULL-SEC-NEXT: Class: ELFCLASS64
+# NULL-SEC-NEXT: Data: ELFDATA2LSB
+# NULL-SEC-NEXT: Type: ET_REL
+# NULL-SEC-NEXT: Machine: EM_X86_64
+# NULL-SEC-NEXT: Sections:
+# NULL-SEC-NEXT: - Name: .foo
+# NULL-SEC-NEXT: Type: SHT_PROGBITS
+# NULL-SEC-NEXT: ...
+
+--- !ELF
+FileHeader:
+ Class: ELFCLASS64
+ Data: ELFDATA2LSB
+ Type: ET_REL
+ Machine: EM_X86_64
+Sections:
+ - Type: SHT_NULL
+ - Type: SHT_PROGBITS
+ Name: .foo
+
+## Check we dump SHT_NULL sections which are not at the beginning
+## of the section list even if they don't have any non-null fields.
+
+# RUN: yaml2obj --docnum=4 %s -o %t4
+# RUN: obj2yaml %t4 | FileCheck %s --check-prefix=NULL-SEC-MIDDLE
+
+# NULL-SEC-MIDDLE: --- !ELF
+# NULL-SEC-MIDDLE-NEXT: FileHeader:
+# NULL-SEC-MIDDLE-NEXT: Class: ELFCLASS64
+# NULL-SEC-MIDDLE-NEXT: Data: ELFDATA2LSB
+# NULL-SEC-MIDDLE-NEXT: Type: ET_REL
+# NULL-SEC-MIDDLE-NEXT: Machine: EM_X86_64
+# NULL-SEC-MIDDLE-NEXT: Sections:
+# NULL-SEC-MIDDLE-NEXT: - Name: .foo
+# NULL-SEC-MIDDLE-NEXT: Type: SHT_PROGBITS
+# NULL-SEC-MIDDLE-NEXT: - Type: SHT_NULL
+# NULL-SEC-MIDDLE-NEXT: ...
+
+--- !ELF
+FileHeader:
+ Class: ELFCLASS64
+ Data: ELFDATA2LSB
+ Type: ET_REL
+ Machine: EM_X86_64
+Sections:
+ - Type: SHT_PROGBITS
+ Name: .foo
+ - Type: SHT_NULL
OpenPOWER on IntegriCloud