Make RangeSpanList take a symbol for the beginning of the range
authorEric Christopher <echristo@gmail.com>
Wed, 4 Dec 2013 22:04:50 +0000 (22:04 +0000)
committerEric Christopher <echristo@gmail.com>
Wed, 4 Dec 2013 22:04:50 +0000 (22:04 +0000)
rather than magically making the names match.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@196419 91177308-0d34-0410-b5e6-96231b3b80d8

lib/CodeGen/AsmPrinter/DwarfDebug.cpp
lib/CodeGen/AsmPrinter/DwarfUnit.h

index 98cb0fb9073f6d9c791c319948ecfb858df6f824..c33042db345c006300313592ec7206a9407e6bcd 100644 (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(),
index ce9faf0250943005b558cf3fe02581b44c0e2bbb..f8623100679b500c7a8f6fd46e97da52ddc6f6c6 100644 (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); }
 };