From 3b379a97271a0727ee5bfbcfbac3f1a1dd1b26eb Mon Sep 17 00:00:00 2001 From: George Rimar Date: Mon, 11 Mar 2019 16:10:02 +0000 Subject: [PATCH] [yaml2obj] - Simplify. NFC. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@355832 91177308-0d34-0410-b5e6-96231b3b80d8 --- tools/yaml2obj/yaml2elf.cpp | 31 +++++++++++++++---------------- 1 file changed, 15 insertions(+), 16 deletions(-) diff --git a/tools/yaml2obj/yaml2elf.cpp b/tools/yaml2obj/yaml2elf.cpp index 3e7234a4963..6bae48bba40 100644 --- a/tools/yaml2obj/yaml2elf.cpp +++ b/tools/yaml2obj/yaml2elf.cpp @@ -133,8 +133,7 @@ class ELFState { const ELFYAML::Object &Doc; bool buildSectionIndex(); - bool buildSymbolIndex(std::size_t &StartIndex, - const std::vector &Symbols); + bool buildSymbolIndex(const ELFYAML::LocalGlobalWeakSymbols &); void initELFHeader(Elf_Ehdr &Header); void initProgramHeaders(std::vector &PHeaders); bool initSectionHeaders(std::vector &SHeaders, @@ -779,16 +778,19 @@ template bool ELFState::buildSectionIndex() { } template -bool -ELFState::buildSymbolIndex(std::size_t &StartIndex, - const std::vector &Symbols) { - for (const auto &Sym : Symbols) { - ++StartIndex; - if (Sym.Name.empty()) - continue; - if (SymN2I.addName(Sym.Name, StartIndex)) { - WithColor::error() << "Repeated symbol name: '" << Sym.Name << "'.\n"; - return false; +bool ELFState::buildSymbolIndex( + const ELFYAML::LocalGlobalWeakSymbols &Symbols) { + std::size_t I = 0; + for (const std::vector &V : + {Symbols.Local, Symbols.Global, Symbols.Weak}) { + for (const auto &Sym : V) { + ++I; + if (Sym.Name.empty()) + continue; + if (SymN2I.addName(Sym.Name, I)) { + WithColor::error() << "Repeated symbol name: '" << Sym.Name << "'.\n"; + return false; + } } } return true; @@ -846,10 +848,7 @@ int ELFState::writeELF(raw_ostream &OS, const ELFYAML::Object &Doc) { if (!State.buildSectionIndex()) return 1; - std::size_t StartSymIndex = 0; - if (!State.buildSymbolIndex(StartSymIndex, Doc.Symbols.Local) || - !State.buildSymbolIndex(StartSymIndex, Doc.Symbols.Global) || - !State.buildSymbolIndex(StartSymIndex, Doc.Symbols.Weak)) + if (!State.buildSymbolIndex(Doc.Symbols)) return 1; Elf_Ehdr Header; -- 2.40.0