diff options
| author | Rich Kadel <richkadel@google.com> | 2021-04-22 15:49:13 -0700 |
|---|---|---|
| committer | Rich Kadel <richkadel@google.com> | 2021-04-22 15:49:13 -0700 |
| commit | a07bf2e17455a286dfe8439ce3b388badb3fd9f3 (patch) | |
| tree | 7e8605235d10806d3b4ad5b2356b13f745947a31 /compiler/rustc_mir/src/transform/coverage/mod.rs | |
| parent | ccf171242bb00dd17ac4b844e6afe77fabd04b78 (diff) | |
| download | rust-a07bf2e17455a286dfe8439ce3b388badb3fd9f3.tar.gz rust-a07bf2e17455a286dfe8439ce3b388badb3fd9f3.zip | |
Fix ICE if original_span(fn_sig) returns a span not in body sourcefile
Fixes: #84421
Diffstat (limited to 'compiler/rustc_mir/src/transform/coverage/mod.rs')
| -rw-r--r-- | compiler/rustc_mir/src/transform/coverage/mod.rs | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/compiler/rustc_mir/src/transform/coverage/mod.rs b/compiler/rustc_mir/src/transform/coverage/mod.rs index 93133e9b7f0..60757178bec 100644 --- a/compiler/rustc_mir/src/transform/coverage/mod.rs +++ b/compiler/rustc_mir/src/transform/coverage/mod.rs @@ -111,7 +111,8 @@ impl<'a, 'tcx> Instrumentor<'a, 'tcx> { let body_span = hir_body.value.span; let source_file = source_map.lookup_source_file(body_span.lo()); let fn_sig_span = match some_fn_sig.filter(|fn_sig| { - Lrc::ptr_eq(&source_file, &source_map.lookup_source_file(fn_sig.span.hi())) + fn_sig.span.ctxt() == body_span.ctxt() + && Lrc::ptr_eq(&source_file, &source_map.lookup_source_file(fn_sig.span.hi())) }) { Some(fn_sig) => fn_sig.span.with_hi(body_span.lo()), None => body_span.shrink_to_lo(), |
