[yaml2obj] - Allow to use numeric sh_link (Link) value for sections.

That change allows using numeric values for Link field.
It is consistent with the code for another fields in this method.

llvm-svn: 339873
This commit is contained in:
George Rimar 2018-08-16 12:44:17 +00:00
parent f5e46712bd
commit ceb9e4088a
2 changed files with 26 additions and 1 deletions

View File

@ -0,0 +1,25 @@
# RUN: yaml2obj %s -o %t
# RUN: llvm-readobj -sections %t | FileCheck %s
# CHECK: Name: .text
# CHECK-NEXT: Type: SHT_PROGBITS
# CHECK-NEXT: Flags [
# CHECK-NEXT: SHF_ALLOC
# CHECK-NEXT: SHF_EXECINSTR
# CHECK-NEXT: ]
# CHECK-NEXT: Address:
# CHECK-NEXT: Offset:
# CHECK-NEXT: Size:
# CHECK-NEXT: Link: 12345
--- !ELF
FileHeader:
Class: ELFCLASS64
Data: ELFDATA2LSB
Type: ET_REL
Machine: EM_X86_64
Sections:
- Name: .text
Type: SHT_PROGBITS
Flags: [ SHF_ALLOC, SHF_EXECINSTR ]
Link: 12345

View File

@ -245,7 +245,7 @@ bool ELFState<ELFT>::initSectionHeaders(std::vector<Elf_Shdr> &SHeaders,
if (!Sec->Link.empty()) {
unsigned Index;
if (SN2I.lookup(Sec->Link, Index)) {
if (SN2I.lookup(Sec->Link, Index) && !to_integer(Sec->Link, Index)) {
WithColor::error() << "Unknown section referenced: '" << Sec->Link
<< "' at YAML section '" << Sec->Name << "'.\n";
return false;