MachInst backend: attach SourceLoc span information to all ranges.

Previously, the SourceLoc information transferred in `VCode` only
included PC-spans for non-default SourceLocs. I realized that the
invariant we're supposed to keep here is that every PC is covered; if no
source information, just use `SourceLoc::default()`.

This was spurred by @bjorn3's comment in #1575 (thanks!).
This commit is contained in:
Chris Fallin
2020-04-29 11:00:28 -07:00
parent 738e2742da
commit 964c6087bd
2 changed files with 8 additions and 14 deletions

View File

@@ -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,