diff --git a/src/debuginfo/line_info.rs b/src/debuginfo/line_info.rs index dc380c623f6..8eef761465b 100644 --- a/src/debuginfo/line_info.rs +++ b/src/debuginfo/line_info.rs @@ -2,6 +2,8 @@ use crate::prelude::*; use syntax::source_map::FileName; +use cranelift::codegen::binemit::CodeOffset; + use gimli::write::{ Address, AttributeValue, FileId, LineProgram, LineString, LineStringTable, Range, UnitEntryId, @@ -75,7 +77,7 @@ impl<'a, 'tcx> FunctionDebugContext<'a, 'tcx> { context: &Context, isa: &dyn cranelift::codegen::isa::TargetIsa, source_info_set: &indexmap::IndexSet<(Span, mir::SourceScope)>, - ) { + ) -> CodeOffset { let tcx = self.debug_context.tcx; let line_program = &mut self.debug_context.dwarf.unit.line_program; @@ -135,15 +137,6 @@ impl<'a, 'tcx> FunctionDebugContext<'a, 'tcx> { self.debug_context.emit_location(self.entry_id, self.mir.span); - self.debug_context - .unit_range_list - .0 - .push(Range::StartLength { - begin: Address::Symbol { - symbol: self.symbol, - addend: 0, - }, - length: end as u64, - }); + end } } diff --git a/src/debuginfo/mod.rs b/src/debuginfo/mod.rs index f710f90e7f4..c62dad9c357 100644 --- a/src/debuginfo/mod.rs +++ b/src/debuginfo/mod.rs @@ -8,7 +8,7 @@ use cranelift::codegen::isa::RegUnit; use gimli::write::{ self, Address, AttributeValue, DwarfUnit, Expression, LineProgram, LineString, - Location, LocationList, RangeList, UnitEntryId, Writer, + Location, LocationList, Range, RangeList, UnitEntryId, Writer, }; use gimli::{Encoding, Format, LineEncoding, Register, RunTimeEndian, X86_64}; @@ -237,7 +237,18 @@ impl<'a, 'tcx> FunctionDebugContext<'a, 'tcx> { isa: &dyn cranelift::codegen::isa::TargetIsa, source_info_set: &indexmap::IndexSet<(Span, mir::SourceScope)>, ) { - self.create_debug_lines(context, isa, source_info_set); + let end = self.create_debug_lines(context, isa, source_info_set); + + self.debug_context + .unit_range_list + .0 + .push(Range::StartLength { + begin: Address::Symbol { + symbol: self.symbol, + addend: 0, + }, + length: end as u64, + }); { let value_labels_ranges = context.build_value_labels_ranges(isa).unwrap();