diff options
author | Alexey Samsonov <samsonov@google.com> | 2014-03-17 07:28:19 +0000 |
---|---|---|
committer | Alexey Samsonov <samsonov@google.com> | 2014-03-17 07:28:19 +0000 |
commit | 133aacf0dd1d7d8c7828594e5cd2e9595e0331ed (patch) | |
tree | c23ad0adb1e11ad755918cc3c24bd740a85b5c55 /tools/llvm-readobj | |
parent | 6e3aceffd39eb8f7e750b5a8364269fc8efc0e53 (diff) | |
download | llvm-133aacf0dd1d7d8c7828594e5cd2e9595e0331ed.tar.gz llvm-133aacf0dd1d7d8c7828594e5cd2e9595e0331ed.tar.bz2 llvm-133aacf0dd1d7d8c7828594e5cd2e9595e0331ed.tar.xz |
[C++11] Introduce ObjectFile::symbols() to use range-based loops.
Reviewers: rafael
Reviewed By: rafael
CC: llvm-commits
Differential Revision: http://llvm-reviews.chandlerc.com/D3081
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@204031 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'tools/llvm-readobj')
-rw-r--r-- | tools/llvm-readobj/MachODumper.cpp | 51 |
1 files changed, 24 insertions, 27 deletions
diff --git a/tools/llvm-readobj/MachODumper.cpp b/tools/llvm-readobj/MachODumper.cpp index a5f29b9c12..2fd5d4acaa 100644 --- a/tools/llvm-readobj/MachODumper.cpp +++ b/tools/llvm-readobj/MachODumper.cpp @@ -38,7 +38,7 @@ public: virtual void printUnwindInfo() override; private: - void printSymbol(symbol_iterator SymI); + void printSymbol(const SymbolRef &Symbol); void printRelocation(const RelocationRef &Reloc); @@ -255,13 +255,12 @@ void MachODumper::printSections(const MachOObjectFile *Obj) { if (opts::SectionSymbols) { ListScope D(W, "Symbols"); - for (symbol_iterator SymI = Obj->symbol_begin(), SymE = Obj->symbol_end(); - SymI != SymE; ++SymI) { + for (const SymbolRef &Symbol : Obj->symbols()) { bool Contained = false; - if (Section.containsSymbol(*SymI, Contained) || !Contained) + if (Section.containsSymbol(Symbol, Contained) || !Contained) continue; - printSymbol(SymI); + printSymbol(Symbol); } } @@ -354,9 +353,8 @@ void MachODumper::printRelocation(const MachOObjectFile *Obj, void MachODumper::printSymbols() { ListScope Group(W, "Symbols"); - for (symbol_iterator SymI = Obj->symbol_begin(), SymE = Obj->symbol_end(); - SymI != SymE; ++SymI) { - printSymbol(SymI); + for (const SymbolRef &Symbol : Obj->symbols()) { + printSymbol(Symbol); } } @@ -364,38 +362,37 @@ void MachODumper::printDynamicSymbols() { ListScope Group(W, "DynamicSymbols"); } -void MachODumper::printSymbol(symbol_iterator SymI) { +void MachODumper::printSymbol(const SymbolRef &Symbol) { StringRef SymbolName; - if (SymI->getName(SymbolName)) + if (Symbol.getName(SymbolName)) SymbolName = ""; - MachOSymbol Symbol; - getSymbol(Obj, SymI->getRawDataRefImpl(), Symbol); + MachOSymbol MOSymbol; + getSymbol(Obj, Symbol.getRawDataRefImpl(), MOSymbol); StringRef SectionName = ""; section_iterator SecI(Obj->section_begin()); - if (!error(SymI->getSection(SecI)) && - SecI != Obj->section_end()) - error(SecI->getName(SectionName)); + if (!error(Symbol.getSection(SecI)) && SecI != Obj->section_end()) + error(SecI->getName(SectionName)); DictScope D(W, "Symbol"); - W.printNumber("Name", SymbolName, Symbol.StringIndex); - if (Symbol.Type & MachO::N_STAB) { - W.printHex ("Type", "SymDebugTable", Symbol.Type); + W.printNumber("Name", SymbolName, MOSymbol.StringIndex); + if (MOSymbol.Type & MachO::N_STAB) { + W.printHex("Type", "SymDebugTable", MOSymbol.Type); } else { - if (Symbol.Type & MachO::N_PEXT) + if (MOSymbol.Type & MachO::N_PEXT) W.startLine() << "PrivateExtern\n"; - if (Symbol.Type & MachO::N_EXT) + if (MOSymbol.Type & MachO::N_EXT) W.startLine() << "Extern\n"; - W.printEnum("Type", uint8_t(Symbol.Type & MachO::N_TYPE), + W.printEnum("Type", uint8_t(MOSymbol.Type & MachO::N_TYPE), makeArrayRef(MachOSymbolTypes)); } - W.printHex ("Section", SectionName, Symbol.SectionIndex); - W.printEnum ("RefType", static_cast<uint16_t>(Symbol.Flags & 0xF), - makeArrayRef(MachOSymbolRefTypes)); - W.printFlags ("Flags", static_cast<uint16_t>(Symbol.Flags & ~0xF), - makeArrayRef(MachOSymbolFlags)); - W.printHex ("Value", Symbol.Value); + W.printHex("Section", SectionName, MOSymbol.SectionIndex); + W.printEnum("RefType", static_cast<uint16_t>(MOSymbol.Flags & 0xF), + makeArrayRef(MachOSymbolRefTypes)); + W.printFlags("Flags", static_cast<uint16_t>(MOSymbol.Flags & ~0xF), + makeArrayRef(MachOSymbolFlags)); + W.printHex("Value", MOSymbol.Value); } void MachODumper::printUnwindInfo() { |