[C++11] Introduce SectionRef::relocations() to use range-based loops

Reviewers: rafael

Reviewed By: rafael

CC: llvm-commits

Differential Revision: http://llvm-reviews.chandlerc.com/D3077

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@203927 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Alexey Samsonov
2014-03-14 14:22:49 +00:00
parent 0eba2c94fd
commit 6f07b35b8f
9 changed files with 77 additions and 90 deletions

View File

@ -435,14 +435,10 @@ static void DisassembleObject(const ObjectFile *Obj, bool InlineRelocs) {
// Make a list of all the relocations for this section.
std::vector<RelocationRef> Rels;
if (InlineRelocs) {
SmallVectorImpl<SectionRef> *RelocSecs = &SectionRelocMap[Section];
for (SmallVectorImpl<SectionRef>::iterator RelocSec = RelocSecs->begin(),
E = RelocSecs->end();
RelocSec != E; ++RelocSec) {
for (relocation_iterator RI = RelocSec->relocation_begin(),
RE = RelocSec->relocation_end();
RI != RE; ++RI)
Rels.push_back(*RI);
for (const SectionRef &RelocSec : SectionRelocMap[Section]) {
for (const RelocationRef &Reloc : RelocSec.relocations()) {
Rels.push_back(Reloc);
}
}
}
@ -560,18 +556,21 @@ static void PrintRelocations(const ObjectFile *Obj) {
if (error(Section.getName(secname)))
continue;
outs() << "RELOCATION RECORDS FOR [" << secname << "]:\n";
for (relocation_iterator ri = Section.relocation_begin(),
re = Section.relocation_end();
ri != re; ++ri) {
for (const RelocationRef &Reloc : Section.relocations()) {
bool hidden;
uint64_t address;
SmallString<32> relocname;
SmallString<32> valuestr;
if (error(ri->getHidden(hidden))) continue;
if (hidden) continue;
if (error(ri->getTypeName(relocname))) continue;
if (error(ri->getOffset(address))) continue;
if (error(ri->getValueString(valuestr))) continue;
if (error(Reloc.getHidden(hidden)))
continue;
if (hidden)
continue;
if (error(Reloc.getTypeName(relocname)))
continue;
if (error(Reloc.getOffset(address)))
continue;
if (error(Reloc.getValueString(valuestr)))
continue;
outs() << address << " " << relocname << " " << valuestr << "\n";
}
outs() << "\n";