diff options
Diffstat (limited to 'llvm/tools/yaml2obj/yaml2elf.cpp')
| -rw-r--r-- | llvm/tools/yaml2obj/yaml2elf.cpp | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/llvm/tools/yaml2obj/yaml2elf.cpp b/llvm/tools/yaml2obj/yaml2elf.cpp index e093ed8d72f..735057f6e7d 100644 --- a/llvm/tools/yaml2obj/yaml2elf.cpp +++ b/llvm/tools/yaml2obj/yaml2elf.cpp @@ -269,6 +269,11 @@ bool ELFState<ELFT>::initImplicitHeader(ELFState<ELFT> &State, YAMLSec); else return false; + + // Override the sh_offset field if requested. + if (YAMLSec && YAMLSec->ShOffset) + Header.sh_offset = *YAMLSec->ShOffset; + return true; } @@ -358,6 +363,10 @@ bool ELFState<ELFT>::initSectionHeaders(ELFState<ELFT> &State, return false; } else llvm_unreachable("Unknown section type"); + + // Override the sh_offset field if requested. + if (Sec && Sec->ShOffset) + SHeader.sh_offset = *Sec->ShOffset; } return true; |

