diff --git a/cranelift/codegen/src/machinst/vcode.rs b/cranelift/codegen/src/machinst/vcode.rs index 6b77411d3c..fe1678db63 100644 --- a/cranelift/codegen/src/machinst/vcode.rs +++ b/cranelift/codegen/src/machinst/vcode.rs @@ -550,7 +550,7 @@ impl VCode { let code_section = sections.get_section(code_idx); let flags = self.abi.flags(); - let mut cur_srcloc = SourceLoc::default(); + let mut cur_srcloc = None; for &block in &self.final_block_order { let new_offset = I::align_basic_block(code_section.cur_offset_from_start()); while new_offset > code_section.cur_offset_from_start() { @@ -563,22 +563,20 @@ impl VCode { let (start, end) = self.block_ranges[block as usize]; for iix in start..end { let srcloc = self.srclocs[iix as usize]; - if srcloc != cur_srcloc { - if !cur_srcloc.is_default() { + if cur_srcloc != Some(srcloc) { + if cur_srcloc.is_some() { code_section.end_srcloc(); } - if !srcloc.is_default() { - code_section.start_srcloc(srcloc); - } - cur_srcloc = srcloc; + code_section.start_srcloc(srcloc); + cur_srcloc = Some(srcloc); } self.insts[iix as usize].emit(code_section, flags); } - if !cur_srcloc.is_default() { + if cur_srcloc.is_some() { code_section.end_srcloc(); - cur_srcloc = SourceLoc::default(); + cur_srcloc = None; } } diff --git a/crates/api/src/frame_info.rs b/crates/api/src/frame_info.rs index 7894e36945..0a4b2b6cf6 100644 --- a/crates/api/src/frame_info.rs +++ b/crates/api/src/frame_info.rs @@ -94,11 +94,7 @@ impl GlobalFrameInfo { // the function, because otherwise something is buggy along the way and // not accounting for all the instructions. This isn't super critical // though so we can omit this check in release mode. - // - // FIXME(#1521) aarch64 instruction info isn't quite up-to-par yet. - if !cfg!(target_arch = "aarch64") { - debug_assert!(pos.is_some(), "failed to find instruction for {:x}", pc); - } + debug_assert!(pos.is_some(), "failed to find instruction for {:x}", pc); let instr = match pos { Some(pos) => func.instr_map.instructions[pos].srcloc,