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}