Make RangeSpanList take a symbol for the beginning of the range

rather than magically making the names match.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@196419 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Eric Christopher 2013-12-04 22:04:50 +00:00
parent c8c1893f8b
commit 856d2fc052
2 changed files with 8 additions and 9 deletions

View File

@ -469,9 +469,9 @@ void DwarfDebug::addScopeRangeList(CompileUnit *TheCU, DIE *ScopeDIE,
const SmallVectorImpl<InsnRange> &Range) {
// Emit offset in .debug_range as a relocatable label. emitDIE will handle
// emitting it appropriately.
TheCU->addSectionLabel(ScopeDIE, dwarf::DW_AT_ranges,
Asm->GetTempSymbol("debug_ranges", GlobalRangeCount));
RangeSpanList List(GlobalRangeCount++);
MCSymbol *RangeSym = Asm->GetTempSymbol("debug_ranges", GlobalRangeCount++);
TheCU->addSectionLabel(ScopeDIE, dwarf::DW_AT_ranges, RangeSym);
RangeSpanList List(RangeSym);
for (SmallVectorImpl<InsnRange>::const_iterator RI = Range.begin(),
RE = Range.end();
RI != RE; ++RI) {
@ -2940,9 +2940,8 @@ void DwarfDebug::emitDebugRanges() {
I != E; ++I) {
const RangeSpanList &List = *I;
// Emit a symbol so we can find the beginning of the range.
Asm->OutStreamer.EmitLabel(
Asm->GetTempSymbol("debug_ranges", List.getIndex()));
// Emit our symbol so we can find the beginning of the range.
Asm->OutStreamer.EmitLabel(List.getSym());
for (SmallVectorImpl<RangeSpan>::const_iterator
RI = List.getRanges().begin(),

View File

@ -45,13 +45,13 @@ private:
class RangeSpanList {
private:
// Index for locating within the debug_range section this particular span.
unsigned Index;
MCSymbol *RangeSym;
// List of ranges.
SmallVector<RangeSpan, 2> Ranges;
public:
RangeSpanList(unsigned Idx) : Index(Idx) {}
unsigned getIndex() const { return Index; }
RangeSpanList(MCSymbol *Sym) : RangeSym(Sym) {}
MCSymbol *getSym() const { return RangeSym; }
const SmallVectorImpl<RangeSpan> &getRanges() const { return Ranges; }
void addRange(RangeSpan Range) { Ranges.push_back(Range); }
};