- if (ScopeRanges.size() > 1) {
- // .debug_range section has not been laid out yet. 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 = new RangeSpanList(GlobalRangeCount++);
- for (SmallVectorImpl<InsnRange>::const_iterator RI = ScopeRanges.begin(),
- RE = ScopeRanges.end();
- RI != RE; ++RI) {
- RangeSpan Range(getLabelBeforeInsn(RI->first),
- getLabelAfterInsn(RI->second));
- List->addRange(Range);
- }
-
- // Add the range list to the set of ranges to be emitted.
- TheCU->addRangeList(List);
- } else {
+ // If we have multiple ranges, emit them into the range section.
+ if (ScopeRanges.size() > 1)
+ addScopeRangeList(TheCU, ScopeDIE, ScopeRanges);
+ else {