about summary refs log tree commit diff
path: root/compiler/rustc_mir/src/transform/coverage/query.rs
diff options
context:
space:
mode:
authorRich Kadel <richkadel@google.com>2021-05-11 20:56:23 -0700
committerRich Kadel <richkadel@google.com>2021-05-12 20:27:07 -0700
commitaed8ef5a4d81bb66917ca31a589d5922c9bcf065 (patch)
tree5c31d374aa6e077cd28c98f23fd8a7a29baa19ca /compiler/rustc_mir/src/transform/coverage/query.rs
parent31f523ff94247fd030473979782dda90923da1ef (diff)
downloadrust-aed8ef5a4d81bb66917ca31a589d5922c9bcf065.tar.gz
rust-aed8ef5a4d81bb66917ca31a589d5922c9bcf065.zip
`coverageinfo` query needs to use the same MIR as codegen
I ran into an error trying to fix dead block coverage and realized the
`coverageinfo` query is getting a different MIR compared to the
codegenned MIR, which can sometimes be a problem during mapgen.

I changed that query to use the `InstandeDef` (which includes the
generic parameter substitutions, prosibly specific to const params)
instead of the `DefId` (without unknown/default const substitutions).
Diffstat (limited to 'compiler/rustc_mir/src/transform/coverage/query.rs')
-rw-r--r--compiler/rustc_mir/src/transform/coverage/query.rs4
1 files changed, 2 insertions, 2 deletions
diff --git a/compiler/rustc_mir/src/transform/coverage/query.rs b/compiler/rustc_mir/src/transform/coverage/query.rs
index 2ba9d1bdc0c..760f16eae6b 100644
--- a/compiler/rustc_mir/src/transform/coverage/query.rs
+++ b/compiler/rustc_mir/src/transform/coverage/query.rs
@@ -120,8 +120,8 @@ impl CoverageVisitor {
     }
 }
 
-fn coverageinfo<'tcx>(tcx: TyCtxt<'tcx>, def_id: DefId) -> CoverageInfo {
-    let mir_body = mir_body(tcx, def_id);
+fn coverageinfo<'tcx>(tcx: TyCtxt<'tcx>, instance_def: ty::InstanceDef<'tcx>) -> CoverageInfo {
+    let mir_body = tcx.instance_mir(instance_def);
 
     let mut coverage_visitor = CoverageVisitor {
         // num_counters always has at least the `ZERO` counter.