mirror of
https://github.com/RPCS3/llvm.git
synced 2025-02-25 13:20:57 +00:00

Fix: call `consumeError()` for a case missed. Original commit message: SHT_LLVM_ADDRSIG is described here: https://llvm.org/docs/Extensions.html#sht-llvm-addrsig-section-address-significance-table This patch teaches tools to dump them and to parse the YAML declarations of such sections. Differential revision: https://reviews.llvm.org/D68333 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@373606 91177308-0d34-0410-b5e6-96231b3b80d8
99 lines
2.6 KiB
YAML
99 lines
2.6 KiB
YAML
## Check how obj2yaml dumps the SHT_LLVM_ADDRSIG section.
|
|
|
|
## Check that when possible obj2yaml tries to produce the "Name" tag when
|
|
## dumping entries of the SHT_LLVM_ADDRSIG section. It falls back to producing
|
|
## the "Index" tag when it can't match a symbol index with a symbol table entry.
|
|
|
|
# RUN: yaml2obj --docnum=1 %s -o %t1
|
|
# RUN: obj2yaml %t1 | FileCheck %s --check-prefix=NAME
|
|
|
|
# NAME: - Name: .llvm_addrsig
|
|
# NAME-NEXT: Type: SHT_LLVM_ADDRSIG
|
|
# NAME-NEXT: Link: .symtab
|
|
# NAME-NEXT: Symbols:
|
|
# NAME-NEXT: - Name: foo
|
|
# NAME-NEXT: - Name: bar
|
|
# NAME-NEXT: - Index: 0x00000003
|
|
# NAME-NEXT: - Index: 0xFFFFFFFF
|
|
# NAME: - Name: .llvm_addrsig_unlinked
|
|
# NAME-NEXT: Type: SHT_LLVM_ADDRSIG
|
|
# NAME-NEXT: Symbols:
|
|
# NAME-NEXT: - Index: 0x00000001
|
|
# NAME-NEXT: - Index: 0x00000002
|
|
# NAME-NEXT: - Index: 0x00000003
|
|
# NAME-NEXT: - Index: 0xFFFFFFFF
|
|
|
|
--- !ELF
|
|
FileHeader:
|
|
Class: ELFCLASS64
|
|
Data: ELFDATA2LSB
|
|
Type: ET_DYN
|
|
Machine: EM_X86_64
|
|
Sections:
|
|
- Name: .llvm_addrsig
|
|
Type: SHT_LLVM_ADDRSIG
|
|
Symbols:
|
|
- Index: 1
|
|
- Index: 2
|
|
- Index: 3
|
|
- Index: 0xFFFFFFFF
|
|
- Name: .llvm_addrsig_unlinked
|
|
Type: SHT_LLVM_ADDRSIG
|
|
Link: 0
|
|
Symbols:
|
|
- Index: 1
|
|
- Index: 2
|
|
- Index: 3
|
|
- Index: 0xFFFFFFFF
|
|
Symbols:
|
|
- Name: foo
|
|
Type: STT_FUNC
|
|
Binding: STB_GLOBAL
|
|
- Name: bar
|
|
Type: STT_FUNC
|
|
Binding: STB_GLOBAL
|
|
|
|
## Check that obj2yaml dumps the SHT_LLVM_ADDRSIG section
|
|
## data using the "Content" tag when at least one of the entries is broken,
|
|
## e.g. because the entry contains a malformed uleb128 value.
|
|
|
|
# RUN: yaml2obj --docnum=2 %s -o %t2
|
|
# RUN: obj2yaml %t2 | FileCheck %s --check-prefix=INVALID-ENTRY
|
|
|
|
# INVALID-ENTRY: - Name: .llvm_addrsig
|
|
# INVALID-ENTRY-NEXT: Type: SHT_LLVM_ADDRSIG
|
|
# INVALID-ENTRY-NEXT: Link: .symtab
|
|
# INVALID-ENTRY-NEXT: Content: FFFFFFFFFF
|
|
|
|
--- !ELF
|
|
FileHeader:
|
|
Class: ELFCLASS64
|
|
Data: ELFDATA2LSB
|
|
Type: ET_DYN
|
|
Machine: EM_X86_64
|
|
Sections:
|
|
- Name: .llvm_addrsig
|
|
Type: SHT_LLVM_ADDRSIG
|
|
Content: "FFFFFFFFFF"
|
|
|
|
## obj2yaml produces a "Symbols" tag when describing an empty SHT_LLVM_ADDRSIG section.
|
|
|
|
# RUN: yaml2obj --docnum=3 %s -o %t3
|
|
# RUN: obj2yaml %t3 | FileCheck %s --check-prefix=EMPTY
|
|
|
|
# EMPTY: - Name: .llvm_addrsig
|
|
# EMPTY-NEXT: Type: SHT_LLVM_ADDRSIG
|
|
# EMPTY-NEXT: Link: .symtab
|
|
# EMPTY-NEXT: Symbols: []
|
|
|
|
--- !ELF
|
|
FileHeader:
|
|
Class: ELFCLASS64
|
|
Data: ELFDATA2LSB
|
|
Type: ET_DYN
|
|
Machine: EM_X86_64
|
|
Sections:
|
|
- Name: .llvm_addrsig
|
|
Type: SHT_LLVM_ADDRSIG
|
|
Content: ""
|