summaryrefslogtreecommitdiff
path: root/lib
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 /lib
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 'lib')
-rw-r--r--lib/MC/MCObjectDisassembler.cpp14
-rw-r--r--lib/MC/MCObjectSymbolizer.cpp19
-rw-r--r--lib/Object/MachOObjectFile.cpp14
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)