From 33e498b785cf41f9617c813486c2dfe44cf4eca0 Mon Sep 17 00:00:00 2001 From: George Rimar Date: Mon, 11 Mar 2019 16:10:02 +0000 Subject: [PATCH] [yaml2obj] - Simplify. NFC. llvm-svn: 355832 --- llvm/tools/yaml2obj/yaml2elf.cpp | 31 +++++++++++++++---------------- 1 file changed, 15 insertions(+), 16 deletions(-) diff --git a/llvm/tools/yaml2obj/yaml2elf.cpp b/llvm/tools/yaml2obj/yaml2elf.cpp index 3e7234a..6bae48b 100644 --- a/llvm/tools/yaml2obj/yaml2elf.cpp +++ b/llvm/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.7.4