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 /lib | |
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 'lib')
-rw-r--r-- | lib/MC/MCObjectDisassembler.cpp | 14 | ||||
-rw-r--r-- | lib/MC/MCObjectSymbolizer.cpp | 19 | ||||
-rw-r--r-- | lib/Object/MachOObjectFile.cpp | 14 |
3 files changed, 24 insertions, 23 deletions
diff --git a/lib/MC/MCObjectDisassembler.cpp b/lib/MC/MCObjectDisassembler.cpp index 2cd7031f82..146da6d1ed 100644 --- a/lib/MC/MCObjectDisassembler.cpp +++ b/lib/MC/MCObjectDisassembler.cpp @@ -37,13 +37,12 @@ MCObjectDisassembler::MCObjectDisassembler(const ObjectFile &Obj, : Obj(Obj), Dis(Dis), MIA(MIA), MOS(0) {} uint64_t MCObjectDisassembler::getEntrypoint() { - for (symbol_iterator SI = Obj.symbol_begin(), SE = Obj.symbol_end(); - SI != SE; ++SI) { + for (const SymbolRef &Symbol : Obj.symbols()) { StringRef Name; - SI->getName(Name); + Symbol.getName(Name); if (Name == "main" || Name == "_main") { uint64_t Entrypoint; - SI->getAddress(Entrypoint); + Symbol.getAddress(Entrypoint); return getEffectiveLoadAddr(Entrypoint); } } @@ -181,13 +180,12 @@ void MCObjectDisassembler::buildCFG(MCModule *Module) { AddressSetTy Splits; AddressSetTy Calls; - for (symbol_iterator SI = Obj.symbol_begin(), SE = Obj.symbol_end(); - SI != SE; ++SI) { + for (const SymbolRef &Symbol : Obj.symbols()) { SymbolRef::Type SymType; - SI->getType(SymType); + Symbol.getType(SymType); if (SymType == SymbolRef::ST_Function) { uint64_t SymAddr; - SI->getAddress(SymAddr); + Symbol.getAddress(SymAddr); SymAddr = getEffectiveLoadAddr(SymAddr); Calls.push_back(SymAddr); Splits.push_back(SymAddr); diff --git a/lib/MC/MCObjectSymbolizer.cpp b/lib/MC/MCObjectSymbolizer.cpp index ee2d9553ec..dc1253d629 100644 --- a/lib/MC/MCObjectSymbolizer.cpp +++ b/lib/MC/MCObjectSymbolizer.cpp @@ -153,14 +153,17 @@ tryAddingSymbolicOperand(MCInst &MI, raw_ostream &cStream, return false; uint64_t UValue = Value; // FIXME: map instead of looping each time? - for (symbol_iterator SI = Obj->symbol_begin(), SE = Obj->symbol_end(); - SI != SE; ++SI) { - uint64_t SymAddr; SI->getAddress(SymAddr); - uint64_t SymSize; SI->getSize(SymSize); - StringRef SymName; SI->getName(SymName); - SymbolRef::Type SymType; SI->getType(SymType); - if (SymAddr == UnknownAddressOrSize || SymSize == UnknownAddressOrSize - || SymName.empty() || SymType != SymbolRef::ST_Function) + for (const SymbolRef &Symbol : Obj->symbols()) { + uint64_t SymAddr; + Symbol.getAddress(SymAddr); + uint64_t SymSize; + Symbol.getSize(SymSize); + StringRef SymName; + Symbol.getName(SymName); + SymbolRef::Type SymType; + Symbol.getType(SymType); + if (SymAddr == UnknownAddressOrSize || SymSize == UnknownAddressOrSize || + SymName.empty() || SymType != SymbolRef::ST_Function) continue; if ( SymAddr == UValue || diff --git a/lib/Object/MachOObjectFile.cpp b/lib/Object/MachOObjectFile.cpp index fb8a214679..450693f64e 100644 --- a/lib/Object/MachOObjectFile.cpp +++ b/lib/Object/MachOObjectFile.cpp @@ -296,16 +296,16 @@ static void printRelocationTargetName(const MachOObjectFile *O, if (IsScattered) { uint32_t Val = O->getPlainRelocationSymbolNum(RE); - for (symbol_iterator SI = O->symbol_begin(), SE = O->symbol_end(); - SI != SE; ++SI) { + for (const SymbolRef &Symbol : O->symbols()) { error_code ec; uint64_t Addr; StringRef Name; - if ((ec = SI->getAddress(Addr))) + if ((ec = Symbol.getAddress(Addr))) report_fatal_error(ec.message()); - if (Addr != Val) continue; - if ((ec = SI->getName(Name))) + if (Addr != Val) + continue; + if ((ec = Symbol.getName(Name))) report_fatal_error(ec.message()); fmt << Name; return; @@ -528,8 +528,8 @@ error_code MachOObjectFile::getSymbolSize(DataRefImpl DRI, } // Unfortunately symbols are unsorted so we need to touch all // symbols from load command - for (symbol_iterator I = symbol_begin(), E = symbol_end(); I != E; ++I) { - DataRefImpl DRI = I->getRawDataRefImpl(); + for (const SymbolRef &Symbol : symbols()) { + DataRefImpl DRI = Symbol.getRawDataRefImpl(); Entry = getSymbolTableEntryBase(this, DRI); getSymbolAddress(DRI, Value); if (Entry.n_sect == SectionIndex && Value > BeginOffset) |