diff options
| author | Rich Kadel <richkadel@google.com> | 2021-05-11 20:56:23 -0700 |
|---|---|---|
| committer | Rich Kadel <richkadel@google.com> | 2021-05-12 20:27:07 -0700 |
| commit | aed8ef5a4d81bb66917ca31a589d5922c9bcf065 (patch) | |
| tree | 5c31d374aa6e077cd28c98f23fd8a7a29baa19ca /compiler/rustc_middle/src/query | |
| parent | 31f523ff94247fd030473979782dda90923da1ef (diff) | |
| download | rust-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_middle/src/query')
| -rw-r--r-- | compiler/rustc_middle/src/query/mod.rs | 5 |
1 files changed, 2 insertions, 3 deletions
diff --git a/compiler/rustc_middle/src/query/mod.rs b/compiler/rustc_middle/src/query/mod.rs index 3c5440f5b68..e0dd8d5806e 100644 --- a/compiler/rustc_middle/src/query/mod.rs +++ b/compiler/rustc_middle/src/query/mod.rs @@ -335,10 +335,9 @@ rustc_queries! { /// Returns coverage summary info for a function, after executing the `InstrumentCoverage` /// MIR pass (assuming the -Zinstrument-coverage option is enabled). - query coverageinfo(key: DefId) -> mir::CoverageInfo { - desc { |tcx| "retrieving coverage info from MIR for `{}`", tcx.def_path_str(key) } + query coverageinfo(key: ty::InstanceDef<'tcx>) -> mir::CoverageInfo { + desc { |tcx| "retrieving coverage info from MIR for `{}`", tcx.def_path_str(key.def_id()) } storage(ArenaCacheSelector<'tcx>) - cache_on_disk_if { key.is_local() } } /// Returns the name of the file that contains the function body, if instrumented for coverage. |
