summaryrefslogtreecommitdiff
path: root/tools/llvm-readobj
diff options
context:
space:
mode:
authorAlexey Samsonov <samsonov@google.com>2014-03-17 07:28:19 +0000
committerAlexey Samsonov <samsonov@google.com>2014-03-17 07:28:19 +0000
commit133aacf0dd1d7d8c7828594e5cd2e9595e0331ed (patch)
treec23ad0adb1e11ad755918cc3c24bd740a85b5c55 /tools/llvm-readobj
parent6e3aceffd39eb8f7e750b5a8364269fc8efc0e53 (diff)
downloadllvm-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.cpp51
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() {