summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRafael Espindola <rafael.espindola@gmail.com>2014-06-18 21:14:57 +0000
committerRafael Espindola <rafael.espindola@gmail.com>2014-06-18 21:14:57 +0000
commit6c59006684aa23429900d175e0f0261c7cd594e4 (patch)
treea2bcd209be7450f050f28a34d3c7bfe63d195bad
parentd8fc64e0d1f09abb3265a6ff264629ca33a52c6a (diff)
downloadllvm-6c59006684aa23429900d175e0f0261c7cd594e4.tar.gz
llvm-6c59006684aa23429900d175e0f0261c7cd594e4.tar.bz2
llvm-6c59006684aa23429900d175e0f0261c7cd594e4.tar.xz
Add a symbols() range and use a range loop.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@211222 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r--include/llvm/Object/SymbolicFile.h4
-rw-r--r--tools/llvm-ar/llvm-ar.cpp8
2 files changed, 7 insertions, 5 deletions
diff --git a/include/llvm/Object/SymbolicFile.h b/include/llvm/Object/SymbolicFile.h
index 1133736945..40015ec9f6 100644
--- a/include/llvm/Object/SymbolicFile.h
+++ b/include/llvm/Object/SymbolicFile.h
@@ -136,6 +136,10 @@ public:
basic_symbol_iterator symbol_end() const {
return symbol_end_impl();
}
+ typedef iterator_range<basic_symbol_iterator> basic_symbol_iterator_range;
+ basic_symbol_iterator_range symbols() const {
+ return basic_symbol_iterator_range(symbol_begin(), symbol_end());
+ }
// construction aux.
static ErrorOr<SymbolicFile *> createIRObjectFile(MemoryBuffer *Object,
diff --git a/tools/llvm-ar/llvm-ar.cpp b/tools/llvm-ar/llvm-ar.cpp
index 920a4701b2..80a977c30b 100644
--- a/tools/llvm-ar/llvm-ar.cpp
+++ b/tools/llvm-ar/llvm-ar.cpp
@@ -710,17 +710,15 @@ static void writeSymbolTable(
print32BE(Out, 0);
}
- for (object::basic_symbol_iterator I = Obj->symbol_begin(),
- E = Obj->symbol_end();
- I != E; ++I) {
- uint32_t Symflags = I->getFlags();
+ for (const object::BasicSymbolRef &S : Obj->symbols()) {
+ uint32_t Symflags = S.getFlags();
if (Symflags & object::SymbolRef::SF_FormatSpecific)
continue;
if (!(Symflags & object::SymbolRef::SF_Global))
continue;
if (Symflags & object::SymbolRef::SF_Undefined)
continue;
- failIfError(I->printName(NameOS));
+ failIfError(S.printName(NameOS));
NameOS << '\0';
++NumSyms;
MemberOffsetRefs.push_back(std::make_pair(Out.tell(), MemberNum));