Add range access to MCAssembler's symbol collection.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@206631 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
David Blaikie
2014-04-18 18:24:25 +00:00
parent b99f337151
commit e7b068f9f1
5 changed files with 39 additions and 45 deletions

View File

@ -430,13 +430,12 @@ void MCMachOStreamer::FinishImpl() {
// First, scan the symbol table to build a lookup table from fragments to
// defining symbols.
DenseMap<const MCFragment*, MCSymbolData*> DefiningSymbolMap;
for (MCAssembler::symbol_iterator it = getAssembler().symbol_begin(),
ie = getAssembler().symbol_end(); it != ie; ++it) {
if (getAssembler().isSymbolLinkerVisible(it->getSymbol()) &&
it->getFragment()) {
for (MCSymbolData &SD : getAssembler().symbols()) {
if (getAssembler().isSymbolLinkerVisible(SD.getSymbol()) &&
SD.getFragment()) {
// An atom defining symbol should never be internal to a fragment.
assert(it->getOffset() == 0 && "Invalid offset in atom defining symbol!");
DefiningSymbolMap[it->getFragment()] = it;
assert(SD.getOffset() == 0 && "Invalid offset in atom defining symbol!");
DefiningSymbolMap[SD.getFragment()] = &SD;
}
}