rustc_codegen_ssa/mir/coverageinfo.rs
1use rustc_middle::mir::SourceScope;
2use rustc_middle::mir::coverage::CoverageKind;
3
4use super::FunctionCx;
5use crate::traits::*;
6
7impl<'a, 'tcx, Bx: BuilderMethods<'a, 'tcx>> FunctionCx<'a, 'tcx, Bx> {
8 pub(crate) fn codegen_coverage(&self, bx: &mut Bx, kind: &CoverageKind, scope: SourceScope) {
9 // Determine the instance that coverage data was originally generated for.
10 let instance = if let Some(inlined) = scope.inlined_instance(&self.mir.source_scopes) {
11 self.monomorphize(inlined)
12 } else {
13 self.instance
14 };
15
16 // Handle the coverage info in a backend-specific way.
17 bx.add_coverage(instance, kind);
18 }
19}