Rollup merge of #132675 - Zalathar:empty-spans, r=jieyouxu

coverage: Restrict empty-span expansion to only cover `{` and `}`

Coverage instrumentation has some tricky code for converting a coverage-relevant `Span` into a set of start/end line/byte-column coordinates that will be embedded in the CGU's coverage metadata.

A big part of this complexity is special code for handling empty spans, which are expanded into non-empty spans (if possible) because LLVM's coverage reporter does not handle empty spans well.

This PR simplifies that code by restricting it to only apply in two specific situations: when the character after the empty span is `{`, or the character before the empty span is `}`.

(As an added benefit, this means that the expanded spans no longer extend awkwardly beyond the end of a physical line, which was common under the previous implementation.)

Along the way, this PR also removes some unhelpful code for dealing with function source code spread across multiple files. Functions currently can't have coverage spans in multiple files, and if that ever changes (e.g. to properly support expansion regions) then this code will need to be completely overhauled anyway.
This commit is contained in:
Matthias Krüger 2024-11-10 17:43:07 +01:00 committed by GitHub
commit b95232dabb
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
57 changed files with 318 additions and 303 deletions

View File

@ -1,5 +1,7 @@
use rustc_middle::mir::coverage::{CounterId, CovTerm, ExpressionId, SourceRegion}; use rustc_middle::mir::coverage::{CounterId, CovTerm, ExpressionId, SourceRegion};
use crate::coverageinfo::mapgen::LocalFileId;
/// Must match the layout of `LLVMRustCounterKind`. /// Must match the layout of `LLVMRustCounterKind`.
#[derive(Copy, Clone, Debug)] #[derive(Copy, Clone, Debug)]
#[repr(C)] #[repr(C)]
@ -137,8 +139,12 @@ pub(crate) struct CoverageSpan {
} }
impl CoverageSpan { impl CoverageSpan {
pub(crate) fn from_source_region(file_id: u32, code_region: &SourceRegion) -> Self { pub(crate) fn from_source_region(
let &SourceRegion { file_name: _, start_line, start_col, end_line, end_col } = code_region; local_file_id: LocalFileId,
code_region: &SourceRegion,
) -> Self {
let file_id = local_file_id.as_u32();
let &SourceRegion { start_line, start_col, end_line, end_col } = code_region;
// Internally, LLVM uses the high bit of `end_col` to distinguish between // Internally, LLVM uses the high bit of `end_col` to distinguish between
// code regions and gap regions, so it can't be used by the column number. // code regions and gap regions, so it can't be used by the column number.
assert!(end_col & (1u32 << 31) == 0, "high bit of `end_col` must be unset: {end_col:#X}"); assert!(end_col & (1u32 << 31) == 0, "high bit of `end_col` must be unset: {end_col:#X}");

View File

@ -6,7 +6,6 @@
SourceRegion, SourceRegion,
}; };
use rustc_middle::ty::Instance; use rustc_middle::ty::Instance;
use rustc_span::Symbol;
use tracing::{debug, instrument}; use tracing::{debug, instrument};
use crate::coverageinfo::ffi::{Counter, CounterExpression, ExprKind}; use crate::coverageinfo::ffi::{Counter, CounterExpression, ExprKind};
@ -180,7 +179,7 @@ pub(crate) fn into_finished(self) -> FunctionCoverage<'tcx> {
} }
pub(crate) struct FunctionCoverage<'tcx> { pub(crate) struct FunctionCoverage<'tcx> {
function_coverage_info: &'tcx FunctionCoverageInfo, pub(crate) function_coverage_info: &'tcx FunctionCoverageInfo,
is_used: bool, is_used: bool,
counters_seen: BitSet<CounterId>, counters_seen: BitSet<CounterId>,
@ -199,11 +198,6 @@ pub(crate) fn source_hash(&self) -> u64 {
if self.is_used { self.function_coverage_info.function_source_hash } else { 0 } if self.is_used { self.function_coverage_info.function_source_hash } else { 0 }
} }
/// Returns an iterator over all filenames used by this function's mappings.
pub(crate) fn all_file_names(&self) -> impl Iterator<Item = Symbol> + Captures<'_> {
self.function_coverage_info.mappings.iter().map(|mapping| mapping.source_region.file_name)
}
/// Convert this function's coverage expression data into a form that can be /// Convert this function's coverage expression data into a form that can be
/// passed through FFI to LLVM. /// passed through FFI to LLVM.
pub(crate) fn counter_expressions( pub(crate) fn counter_expressions(

View File

@ -12,8 +12,10 @@
use rustc_middle::mir::coverage::MappingKind; use rustc_middle::mir::coverage::MappingKind;
use rustc_middle::ty::{self, TyCtxt}; use rustc_middle::ty::{self, TyCtxt};
use rustc_middle::{bug, mir}; use rustc_middle::{bug, mir};
use rustc_span::Symbol; use rustc_session::RemapFileNameExt;
use rustc_session::config::RemapPathScopeComponents;
use rustc_span::def_id::DefIdSet; use rustc_span::def_id::DefIdSet;
use rustc_span::{Span, Symbol};
use rustc_target::spec::HasTargetSpec; use rustc_target::spec::HasTargetSpec;
use tracing::debug; use tracing::debug;
@ -70,8 +72,10 @@ pub(crate) fn finalize(cx: &CodegenCx<'_, '_>) {
.map(|(instance, function_coverage)| (instance, function_coverage.into_finished())) .map(|(instance, function_coverage)| (instance, function_coverage.into_finished()))
.collect::<Vec<_>>(); .collect::<Vec<_>>();
let all_file_names = let all_file_names = function_coverage_entries
function_coverage_entries.iter().flat_map(|(_, fn_cov)| fn_cov.all_file_names()); .iter()
.map(|(_, fn_cov)| fn_cov.function_coverage_info.body_span)
.map(|span| span_file_name(tcx, span));
let global_file_table = GlobalFileTable::new(all_file_names); let global_file_table = GlobalFileTable::new(all_file_names);
// Encode all filenames referenced by coverage mappings in this CGU. // Encode all filenames referenced by coverage mappings in this CGU.
@ -96,7 +100,7 @@ pub(crate) fn finalize(cx: &CodegenCx<'_, '_>) {
let is_used = function_coverage.is_used(); let is_used = function_coverage.is_used();
let coverage_mapping_buffer = let coverage_mapping_buffer =
encode_mappings_for_function(&global_file_table, &function_coverage); encode_mappings_for_function(tcx, &global_file_table, &function_coverage);
if coverage_mapping_buffer.is_empty() { if coverage_mapping_buffer.is_empty() {
if function_coverage.is_used() { if function_coverage.is_used() {
@ -164,13 +168,13 @@ fn new(all_file_names: impl IntoIterator<Item = Symbol>) -> Self {
Self { raw_file_table } Self { raw_file_table }
} }
fn global_file_id_for_file_name(&self, file_name: Symbol) -> u32 { fn global_file_id_for_file_name(&self, file_name: Symbol) -> GlobalFileId {
let raw_id = self.raw_file_table.get_index_of(&file_name).unwrap_or_else(|| { let raw_id = self.raw_file_table.get_index_of(&file_name).unwrap_or_else(|| {
bug!("file name not found in prepared global file table: {file_name}"); bug!("file name not found in prepared global file table: {file_name}");
}); });
// The raw file table doesn't include an entry for the working dir // The raw file table doesn't include an entry for the working dir
// (which has ID 0), so add 1 to get the correct ID. // (which has ID 0), so add 1 to get the correct ID.
(raw_id + 1) as u32 GlobalFileId::from_usize(raw_id + 1)
} }
fn make_filenames_buffer(&self, tcx: TyCtxt<'_>) -> Vec<u8> { fn make_filenames_buffer(&self, tcx: TyCtxt<'_>) -> Vec<u8> {
@ -196,19 +200,27 @@ fn make_filenames_buffer(&self, tcx: TyCtxt<'_>) -> Vec<u8> {
} }
rustc_index::newtype_index! { rustc_index::newtype_index! {
struct LocalFileId {} /// An index into the CGU's overall list of file paths. The underlying paths
/// will be embedded in the `__llvm_covmap` linker section.
struct GlobalFileId {}
}
rustc_index::newtype_index! {
/// An index into a function's list of global file IDs. That underlying list
/// of local-to-global mappings will be embedded in the function's record in
/// the `__llvm_covfun` linker section.
pub(crate) struct LocalFileId {}
} }
/// Holds a mapping from "local" (per-function) file IDs to "global" (per-CGU) /// Holds a mapping from "local" (per-function) file IDs to "global" (per-CGU)
/// file IDs. /// file IDs.
#[derive(Default)] #[derive(Default)]
struct VirtualFileMapping { struct VirtualFileMapping {
local_to_global: IndexVec<LocalFileId, u32>, local_to_global: IndexVec<LocalFileId, GlobalFileId>,
global_to_local: FxIndexMap<u32, LocalFileId>, global_to_local: FxIndexMap<GlobalFileId, LocalFileId>,
} }
impl VirtualFileMapping { impl VirtualFileMapping {
fn local_id_for_global(&mut self, global_file_id: u32) -> LocalFileId { fn local_id_for_global(&mut self, global_file_id: GlobalFileId) -> LocalFileId {
*self *self
.global_to_local .global_to_local
.entry(global_file_id) .entry(global_file_id)
@ -216,16 +228,26 @@ fn local_id_for_global(&mut self, global_file_id: u32) -> LocalFileId {
} }
fn into_vec(self) -> Vec<u32> { fn into_vec(self) -> Vec<u32> {
self.local_to_global.raw // This conversion should be optimized away to ~zero overhead.
// In any case, it's probably not hot enough to worry about.
self.local_to_global.into_iter().map(|global| global.as_u32()).collect()
} }
} }
fn span_file_name(tcx: TyCtxt<'_>, span: Span) -> Symbol {
let source_file = tcx.sess.source_map().lookup_source_file(span.lo());
let name =
source_file.name.for_scope(tcx.sess, RemapPathScopeComponents::MACRO).to_string_lossy();
Symbol::intern(&name)
}
/// Using the expressions and counter regions collected for a single function, /// Using the expressions and counter regions collected for a single function,
/// generate the variable-sized payload of its corresponding `__llvm_covfun` /// generate the variable-sized payload of its corresponding `__llvm_covfun`
/// entry. The payload is returned as a vector of bytes. /// entry. The payload is returned as a vector of bytes.
/// ///
/// Newly-encountered filenames will be added to the global file table. /// Newly-encountered filenames will be added to the global file table.
fn encode_mappings_for_function( fn encode_mappings_for_function(
tcx: TyCtxt<'_>,
global_file_table: &GlobalFileTable, global_file_table: &GlobalFileTable,
function_coverage: &FunctionCoverage<'_>, function_coverage: &FunctionCoverage<'_>,
) -> Vec<u8> { ) -> Vec<u8> {
@ -242,53 +264,45 @@ fn encode_mappings_for_function(
let mut mcdc_branch_regions = vec![]; let mut mcdc_branch_regions = vec![];
let mut mcdc_decision_regions = vec![]; let mut mcdc_decision_regions = vec![];
// Group mappings into runs with the same filename, preserving the order // Currently a function's mappings must all be in the same file as its body span.
// yielded by `FunctionCoverage`. let file_name = span_file_name(tcx, function_coverage.function_coverage_info.body_span);
// Prepare file IDs for each filename, and prepare the mapping data so that
// we can pass it through FFI to LLVM.
for (file_name, counter_regions_for_file) in
&counter_regions.group_by(|(_, region)| region.file_name)
{
// Look up the global file ID for this filename.
let global_file_id = global_file_table.global_file_id_for_file_name(file_name);
// Associate that global file ID with a local file ID for this function. // Look up the global file ID for that filename.
let local_file_id = virtual_file_mapping.local_id_for_global(global_file_id); let global_file_id = global_file_table.global_file_id_for_file_name(file_name);
debug!(" file id: {local_file_id:?} => global {global_file_id} = '{file_name:?}'");
// For each counter/region pair in this function+file, convert it to a // Associate that global file ID with a local file ID for this function.
// form suitable for FFI. let local_file_id = virtual_file_mapping.local_id_for_global(global_file_id);
for (mapping_kind, region) in counter_regions_for_file { debug!(" file id: {local_file_id:?} => {global_file_id:?} = '{file_name:?}'");
debug!("Adding counter {mapping_kind:?} to map for {region:?}");
let span = ffi::CoverageSpan::from_source_region(local_file_id.as_u32(), region); // For each counter/region pair in this function+file, convert it to a
match mapping_kind { // form suitable for FFI.
MappingKind::Code(term) => { for (mapping_kind, region) in counter_regions {
code_regions debug!("Adding counter {mapping_kind:?} to map for {region:?}");
.push(ffi::CodeRegion { span, counter: ffi::Counter::from_term(term) }); let span = ffi::CoverageSpan::from_source_region(local_file_id, region);
} match mapping_kind {
MappingKind::Branch { true_term, false_term } => { MappingKind::Code(term) => {
branch_regions.push(ffi::BranchRegion { code_regions.push(ffi::CodeRegion { span, counter: ffi::Counter::from_term(term) });
span, }
true_counter: ffi::Counter::from_term(true_term), MappingKind::Branch { true_term, false_term } => {
false_counter: ffi::Counter::from_term(false_term), branch_regions.push(ffi::BranchRegion {
}); span,
} true_counter: ffi::Counter::from_term(true_term),
MappingKind::MCDCBranch { true_term, false_term, mcdc_params } => { false_counter: ffi::Counter::from_term(false_term),
mcdc_branch_regions.push(ffi::MCDCBranchRegion { });
span, }
true_counter: ffi::Counter::from_term(true_term), MappingKind::MCDCBranch { true_term, false_term, mcdc_params } => {
false_counter: ffi::Counter::from_term(false_term), mcdc_branch_regions.push(ffi::MCDCBranchRegion {
mcdc_branch_params: ffi::mcdc::BranchParameters::from(mcdc_params), span,
}); true_counter: ffi::Counter::from_term(true_term),
} false_counter: ffi::Counter::from_term(false_term),
MappingKind::MCDCDecision(mcdc_decision_params) => { mcdc_branch_params: ffi::mcdc::BranchParameters::from(mcdc_params),
mcdc_decision_regions.push(ffi::MCDCDecisionRegion { });
span, }
mcdc_decision_params: ffi::mcdc::DecisionParameters::from( MappingKind::MCDCDecision(mcdc_decision_params) => {
mcdc_decision_params, mcdc_decision_regions.push(ffi::MCDCDecisionRegion {
), span,
}); mcdc_decision_params: ffi::mcdc::DecisionParameters::from(mcdc_decision_params),
} });
} }
} }
} }

View File

@ -4,7 +4,7 @@
use rustc_index::IndexVec; use rustc_index::IndexVec;
use rustc_macros::{HashStable, TyDecodable, TyEncodable, TypeFoldable, TypeVisitable}; use rustc_macros::{HashStable, TyDecodable, TyEncodable, TypeFoldable, TypeVisitable};
use rustc_span::{Span, Symbol}; use rustc_span::Span;
rustc_index::newtype_index! { rustc_index::newtype_index! {
/// Used by [`CoverageKind::BlockMarker`] to mark blocks during THIR-to-MIR /// Used by [`CoverageKind::BlockMarker`] to mark blocks during THIR-to-MIR
@ -158,7 +158,6 @@ fn fmt(&self, fmt: &mut Formatter<'_>) -> fmt::Result {
#[derive(Clone, TyEncodable, TyDecodable, Hash, HashStable, PartialEq, Eq, PartialOrd, Ord)] #[derive(Clone, TyEncodable, TyDecodable, Hash, HashStable, PartialEq, Eq, PartialOrd, Ord)]
#[derive(TypeFoldable, TypeVisitable)] #[derive(TypeFoldable, TypeVisitable)]
pub struct SourceRegion { pub struct SourceRegion {
pub file_name: Symbol,
pub start_line: u32, pub start_line: u32,
pub start_col: u32, pub start_col: u32,
pub end_line: u32, pub end_line: u32,
@ -167,11 +166,8 @@ pub struct SourceRegion {
impl Debug for SourceRegion { impl Debug for SourceRegion {
fn fmt(&self, fmt: &mut Formatter<'_>) -> fmt::Result { fn fmt(&self, fmt: &mut Formatter<'_>) -> fmt::Result {
write!( let &Self { start_line, start_col, end_line, end_col } = self;
fmt, write!(fmt, "{start_line}:{start_col} - {end_line}:{end_col}")
"{}:{}:{} - {}:{}",
self.file_name, self.start_line, self.start_col, self.end_line, self.end_col
)
} }
} }
@ -246,6 +242,7 @@ pub struct Mapping {
#[derive(TyEncodable, TyDecodable, Hash, HashStable, TypeFoldable, TypeVisitable)] #[derive(TyEncodable, TyDecodable, Hash, HashStable, TypeFoldable, TypeVisitable)]
pub struct FunctionCoverageInfo { pub struct FunctionCoverageInfo {
pub function_source_hash: u64, pub function_source_hash: u64,
pub body_span: Span,
pub num_counters: usize, pub num_counters: usize,
pub mcdc_bitmap_bits: usize, pub mcdc_bitmap_bits: usize,
pub expressions: IndexVec<ExpressionId, Expression>, pub expressions: IndexVec<ExpressionId, Expression>,

View File

@ -596,8 +596,10 @@ fn write_function_coverage_info(
function_coverage_info: &coverage::FunctionCoverageInfo, function_coverage_info: &coverage::FunctionCoverageInfo,
w: &mut dyn io::Write, w: &mut dyn io::Write,
) -> io::Result<()> { ) -> io::Result<()> {
let coverage::FunctionCoverageInfo { expressions, mappings, .. } = function_coverage_info; let coverage::FunctionCoverageInfo { body_span, expressions, mappings, .. } =
function_coverage_info;
writeln!(w, "{INDENT}coverage body span: {body_span:?}")?;
for (id, expression) in expressions.iter_enumerated() { for (id, expression) in expressions.iter_enumerated() {
writeln!(w, "{INDENT}coverage {id:?} => {expression:?};")?; writeln!(w, "{INDENT}coverage {id:?} => {expression:?};")?;
} }

View File

@ -22,8 +22,8 @@
use rustc_middle::ty::TyCtxt; use rustc_middle::ty::TyCtxt;
use rustc_span::def_id::LocalDefId; use rustc_span::def_id::LocalDefId;
use rustc_span::source_map::SourceMap; use rustc_span::source_map::SourceMap;
use rustc_span::{BytePos, Pos, RelativeBytePos, Span, Symbol}; use rustc_span::{BytePos, Pos, SourceFile, Span};
use tracing::{debug, debug_span, instrument, trace}; use tracing::{debug, debug_span, trace};
use crate::coverage::counters::{CounterIncrementSite, CoverageCounters}; use crate::coverage::counters::{CounterIncrementSite, CoverageCounters};
use crate::coverage::graph::CoverageGraph; use crate::coverage::graph::CoverageGraph;
@ -122,6 +122,7 @@ fn instrument_function_for_coverage<'tcx>(tcx: TyCtxt<'tcx>, mir_body: &mut mir:
mir_body.function_coverage_info = Some(Box::new(FunctionCoverageInfo { mir_body.function_coverage_info = Some(Box::new(FunctionCoverageInfo {
function_source_hash: hir_info.function_source_hash, function_source_hash: hir_info.function_source_hash,
body_span: hir_info.body_span,
num_counters: coverage_counters.num_counters(), num_counters: coverage_counters.num_counters(),
mcdc_bitmap_bits: extracted_mappings.mcdc_bitmap_bits, mcdc_bitmap_bits: extracted_mappings.mcdc_bitmap_bits,
expressions: coverage_counters.into_expressions(), expressions: coverage_counters.into_expressions(),
@ -142,19 +143,11 @@ fn create_mappings<'tcx>(
coverage_counters: &CoverageCounters, coverage_counters: &CoverageCounters,
) -> Vec<Mapping> { ) -> Vec<Mapping> {
let source_map = tcx.sess.source_map(); let source_map = tcx.sess.source_map();
let body_span = hir_info.body_span; let file = source_map.lookup_source_file(hir_info.body_span.lo());
let source_file = source_map.lookup_source_file(body_span.lo());
use rustc_session::RemapFileNameExt;
use rustc_session::config::RemapPathScopeComponents;
let file_name = Symbol::intern(
&source_file.name.for_scope(tcx.sess, RemapPathScopeComponents::MACRO).to_string_lossy(),
);
let term_for_bcb = let term_for_bcb =
|bcb| coverage_counters.term_for_bcb(bcb).expect("all BCBs with spans were given counters"); |bcb| coverage_counters.term_for_bcb(bcb).expect("all BCBs with spans were given counters");
let region_for_span = |span: Span| make_source_region(source_map, file_name, span, body_span); let region_for_span = |span: Span| make_source_region(source_map, hir_info, &file, span);
// Fully destructure the mappings struct to make sure we don't miss any kinds. // Fully destructure the mappings struct to make sure we don't miss any kinds.
let ExtractedMappings { let ExtractedMappings {
@ -398,7 +391,42 @@ fn inject_statement(mir_body: &mut mir::Body<'_>, counter_kind: CoverageKind, bb
data.statements.insert(0, statement); data.statements.insert(0, statement);
} }
/// Convert the Span into its file name, start line and column, and end line and column. fn ensure_non_empty_span(
source_map: &SourceMap,
hir_info: &ExtractedHirInfo,
span: Span,
) -> Option<Span> {
if !span.is_empty() {
return Some(span);
}
let lo = span.lo();
let hi = span.hi();
// The span is empty, so try to expand it to cover an adjacent '{' or '}',
// but only within the bounds of the body span.
let try_next = hi < hir_info.body_span.hi();
let try_prev = hir_info.body_span.lo() < lo;
if !(try_next || try_prev) {
return None;
}
source_map
.span_to_source(span, |src, start, end| try {
// We're only checking for specific ASCII characters, so we don't
// have to worry about multi-byte code points.
if try_next && src.as_bytes()[end] == b'{' {
Some(span.with_hi(hi + BytePos(1)))
} else if try_prev && src.as_bytes()[start - 1] == b'}' {
Some(span.with_lo(lo - BytePos(1)))
} else {
None
}
})
.ok()?
}
/// Converts the span into its start line and column, and end line and column.
/// ///
/// Line numbers and column numbers are 1-based. Unlike most column numbers emitted by /// Line numbers and column numbers are 1-based. Unlike most column numbers emitted by
/// the compiler, these column numbers are denoted in **bytes**, because that's what /// the compiler, these column numbers are denoted in **bytes**, because that's what
@ -408,56 +436,29 @@ fn inject_statement(mir_body: &mut mir::Body<'_>, counter_kind: CoverageKind, bb
/// but it's hard to rule out entirely (especially in the presence of complex macros /// but it's hard to rule out entirely (especially in the presence of complex macros
/// or other expansions), and if it does happen then skipping a span or function is /// or other expansions), and if it does happen then skipping a span or function is
/// better than an ICE or `llvm-cov` failure that the user might have no way to avoid. /// better than an ICE or `llvm-cov` failure that the user might have no way to avoid.
#[instrument(level = "debug", skip(source_map))]
fn make_source_region( fn make_source_region(
source_map: &SourceMap, source_map: &SourceMap,
file_name: Symbol, hir_info: &ExtractedHirInfo,
file: &SourceFile,
span: Span, span: Span,
body_span: Span,
) -> Option<SourceRegion> { ) -> Option<SourceRegion> {
let span = ensure_non_empty_span(source_map, hir_info, span)?;
let lo = span.lo(); let lo = span.lo();
let hi = span.hi(); let hi = span.hi();
let file = source_map.lookup_source_file(lo);
if !file.contains(hi) {
debug!(?span, ?file, ?lo, ?hi, "span crosses multiple files; skipping");
return None;
}
// Column numbers need to be in bytes, so we can't use the more convenient // Column numbers need to be in bytes, so we can't use the more convenient
// `SourceMap` methods for looking up file coordinates. // `SourceMap` methods for looking up file coordinates.
let rpos_and_line_and_byte_column = |pos: BytePos| -> Option<(RelativeBytePos, usize, usize)> { let line_and_byte_column = |pos: BytePos| -> Option<(usize, usize)> {
let rpos = file.relative_position(pos); let rpos = file.relative_position(pos);
let line_index = file.lookup_line(rpos)?; let line_index = file.lookup_line(rpos)?;
let line_start = file.lines()[line_index]; let line_start = file.lines()[line_index];
// Line numbers and column numbers are 1-based, so add 1 to each. // Line numbers and column numbers are 1-based, so add 1 to each.
Some((rpos, line_index + 1, (rpos - line_start).to_usize() + 1)) Some((line_index + 1, (rpos - line_start).to_usize() + 1))
}; };
let (lo_rpos, mut start_line, mut start_col) = rpos_and_line_and_byte_column(lo)?; let (mut start_line, start_col) = line_and_byte_column(lo)?;
let (hi_rpos, mut end_line, mut end_col) = rpos_and_line_and_byte_column(hi)?; let (mut end_line, end_col) = line_and_byte_column(hi)?;
// If the span is empty, try to expand it horizontally by one character's
// worth of bytes, so that it is more visible in `llvm-cov` reports.
// We do this after resolving line/column numbers, so that empty spans at the
// end of a line get an extra column instead of wrapping to the next line.
if span.is_empty()
&& body_span.contains(span)
&& let Some(src) = &file.src
{
// Prefer to expand the end position, if it won't go outside the body span.
if hi < body_span.hi() {
let hi_rpos = hi_rpos.to_usize();
let nudge_bytes = src.ceil_char_boundary(hi_rpos + 1) - hi_rpos;
end_col += nudge_bytes;
} else if lo > body_span.lo() {
let lo_rpos = lo_rpos.to_usize();
let nudge_bytes = lo_rpos - src.floor_char_boundary(lo_rpos - 1);
// Subtract the nudge, but don't go below column 1.
start_col = start_col.saturating_sub(nudge_bytes).max(1);
}
// If neither nudge could be applied, stick with the empty span coordinates.
}
// Apply an offset so that code in doctests has correct line numbers. // Apply an offset so that code in doctests has correct line numbers.
// FIXME(#79417): Currently we have no way to offset doctest _columns_. // FIXME(#79417): Currently we have no way to offset doctest _columns_.
@ -465,7 +466,6 @@ fn make_source_region(
end_line = source_map.doctest_offset_line(&file.name, end_line); end_line = source_map.doctest_offset_line(&file.name, end_line);
check_source_region(SourceRegion { check_source_region(SourceRegion {
file_name,
start_line: start_line as u32, start_line: start_line as u32,
start_col: start_col as u32, start_col: start_col as u32,
end_line: end_line as u32, end_line: end_line as u32,
@ -478,7 +478,7 @@ fn make_source_region(
/// discard regions that are improperly ordered, or might be interpreted in a /// discard regions that are improperly ordered, or might be interpreted in a
/// way that makes them improperly ordered. /// way that makes them improperly ordered.
fn check_source_region(source_region: SourceRegion) -> Option<SourceRegion> { fn check_source_region(source_region: SourceRegion) -> Option<SourceRegion> {
let SourceRegion { file_name: _, start_line, start_col, end_line, end_col } = source_region; let SourceRegion { start_line, start_col, end_line, end_col } = source_region;
// Line/column coordinates are supposed to be 1-based. If we ever emit // Line/column coordinates are supposed to be 1-based. If we ever emit
// coordinates of 0, `llvm-cov` might misinterpret them. // coordinates of 0, `llvm-cov` might misinterpret them.

View File

@ -9,7 +9,6 @@
#![feature(let_chains)] #![feature(let_chains)]
#![feature(map_try_insert)] #![feature(map_try_insert)]
#![feature(never_type)] #![feature(never_type)]
#![feature(round_char_boundary)]
#![feature(try_blocks)] #![feature(try_blocks)]
#![feature(yeet_expr)] #![feature(yeet_expr)]
#![warn(unreachable_pub)] #![warn(unreachable_pub)]

View File

@ -534,7 +534,7 @@ pub fn span_to_lines(&self, sp: Span) -> FileLinesResult {
/// Extracts the source surrounding the given `Span` using the `extract_source` function. The /// Extracts the source surrounding the given `Span` using the `extract_source` function. The
/// extract function takes three arguments: a string slice containing the source, an index in /// extract function takes three arguments: a string slice containing the source, an index in
/// the slice for the beginning of the span and an index in the slice for the end of the span. /// the slice for the beginning of the span and an index in the slice for the end of the span.
fn span_to_source<F, T>(&self, sp: Span, extract_source: F) -> Result<T, SpanSnippetError> pub fn span_to_source<F, T>(&self, sp: Span, extract_source: F) -> Result<T, SpanSnippetError>
where where
F: Fn(&str, usize, usize) -> Result<T, SpanSnippetError>, F: Fn(&str, usize, usize) -> Result<T, SpanSnippetError>,
{ {

View File

@ -45,11 +45,11 @@ $DIR/doctest.rs:
LL| 1|//! if *res.as_ref().unwrap_err() == *res.as_ref().unwrap_err() { LL| 1|//! if *res.as_ref().unwrap_err() == *res.as_ref().unwrap_err() {
LL| 1|//! println!("{:?}", res); LL| 1|//! println!("{:?}", res);
LL| 1|//! } LL| 1|//! }
^0 ^0
LL| 1|//! if *res.as_ref().unwrap_err() == *res.as_ref().unwrap_err() { LL| 1|//! if *res.as_ref().unwrap_err() == *res.as_ref().unwrap_err() {
LL| 1|//! res = Ok(1); LL| 1|//! res = Ok(1);
LL| 1|//! } LL| 1|//! }
^0 ^0
LL| 1|//! res = Ok(0); LL| 1|//! res = Ok(0);
LL| |//! } LL| |//! }
LL| |//! // need to be explicit because rustdoc cant infer the return type LL| |//! // need to be explicit because rustdoc cant infer the return type

View File

@ -1,5 +1,5 @@
Function name: abort::main Function name: abort::main
Raw bytes (89): 0x[01, 01, 0a, 01, 27, 05, 09, 03, 0d, 22, 11, 03, 0d, 03, 0d, 22, 15, 03, 0d, 03, 0d, 05, 09, 0d, 01, 0d, 01, 01, 1b, 03, 02, 0b, 00, 18, 22, 01, 0c, 00, 19, 11, 00, 1a, 02, 0a, 0e, 02, 0a, 00, 0b, 22, 02, 0c, 00, 19, 15, 00, 1a, 00, 31, 1a, 00, 31, 00, 32, 22, 04, 0c, 00, 19, 05, 00, 1a, 00, 31, 09, 00, 31, 00, 32, 27, 01, 09, 00, 17, 0d, 02, 05, 01, 02] Raw bytes (89): 0x[01, 01, 0a, 01, 27, 05, 09, 03, 0d, 22, 11, 03, 0d, 03, 0d, 22, 15, 03, 0d, 03, 0d, 05, 09, 0d, 01, 0d, 01, 01, 1b, 03, 02, 0b, 00, 18, 22, 01, 0c, 00, 19, 11, 00, 1a, 02, 0a, 0e, 02, 09, 00, 0a, 22, 02, 0c, 00, 19, 15, 00, 1a, 00, 31, 1a, 00, 30, 00, 31, 22, 04, 0c, 00, 19, 05, 00, 1a, 00, 31, 09, 00, 30, 00, 31, 27, 01, 09, 00, 17, 0d, 02, 05, 01, 02]
Number of files: 1 Number of files: 1
- file 0 => global file 1 - file 0 => global file 1
Number of expressions: 10 Number of expressions: 10
@ -20,17 +20,17 @@ Number of file 0 mappings: 13
- Code(Expression(8, Sub)) at (prev + 1, 12) to (start + 0, 25) - Code(Expression(8, Sub)) at (prev + 1, 12) to (start + 0, 25)
= ((c0 + (c1 + c2)) - c3) = ((c0 + (c1 + c2)) - c3)
- Code(Counter(4)) at (prev + 0, 26) to (start + 2, 10) - Code(Counter(4)) at (prev + 0, 26) to (start + 2, 10)
- Code(Expression(3, Sub)) at (prev + 2, 10) to (start + 0, 11) - Code(Expression(3, Sub)) at (prev + 2, 9) to (start + 0, 10)
= (((c0 + (c1 + c2)) - c3) - c4) = (((c0 + (c1 + c2)) - c3) - c4)
- Code(Expression(8, Sub)) at (prev + 2, 12) to (start + 0, 25) - Code(Expression(8, Sub)) at (prev + 2, 12) to (start + 0, 25)
= ((c0 + (c1 + c2)) - c3) = ((c0 + (c1 + c2)) - c3)
- Code(Counter(5)) at (prev + 0, 26) to (start + 0, 49) - Code(Counter(5)) at (prev + 0, 26) to (start + 0, 49)
- Code(Expression(6, Sub)) at (prev + 0, 49) to (start + 0, 50) - Code(Expression(6, Sub)) at (prev + 0, 48) to (start + 0, 49)
= (((c0 + (c1 + c2)) - c3) - c5) = (((c0 + (c1 + c2)) - c3) - c5)
- Code(Expression(8, Sub)) at (prev + 4, 12) to (start + 0, 25) - Code(Expression(8, Sub)) at (prev + 4, 12) to (start + 0, 25)
= ((c0 + (c1 + c2)) - c3) = ((c0 + (c1 + c2)) - c3)
- Code(Counter(1)) at (prev + 0, 26) to (start + 0, 49) - Code(Counter(1)) at (prev + 0, 26) to (start + 0, 49)
- Code(Counter(2)) at (prev + 0, 49) to (start + 0, 50) - Code(Counter(2)) at (prev + 0, 48) to (start + 0, 49)
- Code(Expression(9, Add)) at (prev + 1, 9) to (start + 0, 23) - Code(Expression(9, Add)) at (prev + 1, 9) to (start + 0, 23)
= (c1 + c2) = (c1 + c2)
- Code(Counter(3)) at (prev + 2, 5) to (start + 1, 2) - Code(Counter(3)) at (prev + 2, 5) to (start + 1, 2)

View File

@ -18,12 +18,12 @@
LL| 6| } LL| 6| }
LL| | // See discussion (below the `Notes` section) on coverage results for the closing brace. LL| | // See discussion (below the `Notes` section) on coverage results for the closing brace.
LL| 10| if countdown < 5 { might_abort(false); } // Counts for different regions on one line. LL| 10| if countdown < 5 { might_abort(false); } // Counts for different regions on one line.
^4 ^6 ^4 ^6
LL| | // For the following example, the closing brace is the last character on the line. LL| | // For the following example, the closing brace is the last character on the line.
LL| | // This shows the character after the closing brace is highlighted, even if that next LL| | // This shows the character after the closing brace is highlighted, even if that next
LL| | // character is a newline. LL| | // character is a newline.
LL| 10| if countdown < 5 { might_abort(false); } LL| 10| if countdown < 5 { might_abort(false); }
^4 ^6 ^4 ^6
LL| 10| countdown -= 1; LL| 10| countdown -= 1;
LL| | } LL| | }
LL| 1| Ok(()) LL| 1| Ok(())

View File

@ -1,5 +1,5 @@
Function name: assert::main Function name: assert::main
Raw bytes (65): 0x[01, 01, 08, 01, 1b, 05, 1f, 09, 0d, 03, 11, 16, 05, 03, 11, 05, 1f, 09, 0d, 09, 01, 09, 01, 01, 1b, 03, 02, 0b, 00, 18, 16, 01, 0c, 00, 1a, 05, 00, 1b, 02, 0a, 12, 02, 13, 00, 20, 09, 00, 21, 02, 0a, 0d, 02, 0a, 00, 0b, 1b, 01, 09, 00, 17, 11, 02, 05, 01, 02] Raw bytes (65): 0x[01, 01, 08, 01, 1b, 05, 1f, 09, 0d, 03, 11, 16, 05, 03, 11, 05, 1f, 09, 0d, 09, 01, 09, 01, 01, 1b, 03, 02, 0b, 00, 18, 16, 01, 0c, 00, 1a, 05, 00, 1b, 02, 0a, 12, 02, 13, 00, 20, 09, 00, 21, 02, 0a, 0d, 02, 09, 00, 0a, 1b, 01, 09, 00, 17, 11, 02, 05, 01, 02]
Number of files: 1 Number of files: 1
- file 0 => global file 1 - file 0 => global file 1
Number of expressions: 8 Number of expressions: 8
@ -21,7 +21,7 @@ Number of file 0 mappings: 9
- Code(Expression(4, Sub)) at (prev + 2, 19) to (start + 0, 32) - Code(Expression(4, Sub)) at (prev + 2, 19) to (start + 0, 32)
= (((c0 + (c1 + (c2 + c3))) - c4) - c1) = (((c0 + (c1 + (c2 + c3))) - c4) - c1)
- Code(Counter(2)) at (prev + 0, 33) to (start + 2, 10) - Code(Counter(2)) at (prev + 0, 33) to (start + 2, 10)
- Code(Counter(3)) at (prev + 2, 10) to (start + 0, 11) - Code(Counter(3)) at (prev + 2, 9) to (start + 0, 10)
- Code(Expression(6, Add)) at (prev + 1, 9) to (start + 0, 23) - Code(Expression(6, Add)) at (prev + 1, 9) to (start + 0, 23)
= (c1 + (c2 + c3)) = (c1 + (c2 + c3))
- Code(Counter(4)) at (prev + 2, 5) to (start + 1, 2) - Code(Counter(4)) at (prev + 2, 5) to (start + 1, 2)

View File

@ -8,14 +8,14 @@ Number of file 0 mappings: 1
Highest counter ID seen: c0 Highest counter ID seen: c0
Function name: async2::async_func::{closure#0} Function name: async2::async_func::{closure#0}
Raw bytes (24): 0x[01, 01, 00, 04, 01, 10, 17, 03, 09, 05, 03, 0a, 02, 06, 00, 02, 06, 00, 07, 01, 01, 01, 00, 02] Raw bytes (24): 0x[01, 01, 00, 04, 01, 10, 17, 03, 09, 05, 03, 0a, 02, 06, 00, 02, 05, 00, 06, 01, 01, 01, 00, 02]
Number of files: 1 Number of files: 1
- file 0 => global file 1 - file 0 => global file 1
Number of expressions: 0 Number of expressions: 0
Number of file 0 mappings: 4 Number of file 0 mappings: 4
- Code(Counter(0)) at (prev + 16, 23) to (start + 3, 9) - Code(Counter(0)) at (prev + 16, 23) to (start + 3, 9)
- Code(Counter(1)) at (prev + 3, 10) to (start + 2, 6) - Code(Counter(1)) at (prev + 3, 10) to (start + 2, 6)
- Code(Zero) at (prev + 2, 6) to (start + 0, 7) - Code(Zero) at (prev + 2, 5) to (start + 0, 6)
- Code(Counter(0)) at (prev + 1, 1) to (start + 0, 2) - Code(Counter(0)) at (prev + 1, 1) to (start + 0, 2)
Highest counter ID seen: c1 Highest counter ID seen: c1
@ -47,14 +47,14 @@ Number of file 0 mappings: 1
Highest counter ID seen: c0 Highest counter ID seen: c0
Function name: async2::non_async_func Function name: async2::non_async_func
Raw bytes (24): 0x[01, 01, 00, 04, 01, 08, 01, 03, 09, 05, 03, 0a, 02, 06, 00, 02, 06, 00, 07, 01, 01, 01, 00, 02] Raw bytes (24): 0x[01, 01, 00, 04, 01, 08, 01, 03, 09, 05, 03, 0a, 02, 06, 00, 02, 05, 00, 06, 01, 01, 01, 00, 02]
Number of files: 1 Number of files: 1
- file 0 => global file 1 - file 0 => global file 1
Number of expressions: 0 Number of expressions: 0
Number of file 0 mappings: 4 Number of file 0 mappings: 4
- Code(Counter(0)) at (prev + 8, 1) to (start + 3, 9) - Code(Counter(0)) at (prev + 8, 1) to (start + 3, 9)
- Code(Counter(1)) at (prev + 3, 10) to (start + 2, 6) - Code(Counter(1)) at (prev + 3, 10) to (start + 2, 6)
- Code(Zero) at (prev + 2, 6) to (start + 0, 7) - Code(Zero) at (prev + 2, 5) to (start + 0, 6)
- Code(Counter(0)) at (prev + 1, 1) to (start + 0, 2) - Code(Counter(0)) at (prev + 1, 1) to (start + 0, 2)
Highest counter ID seen: c1 Highest counter ID seen: c1

View File

@ -11,7 +11,7 @@
LL| 1| if b { LL| 1| if b {
LL| 1| println!("non_async_func println in block"); LL| 1| println!("non_async_func println in block");
LL| 1| } LL| 1| }
^0 ^0
LL| 1|} LL| 1|}
LL| | LL| |
LL| 1|async fn async_func() { LL| 1|async fn async_func() {
@ -20,7 +20,7 @@
LL| 1| if b { LL| 1| if b {
LL| 1| println!("async_func println in block"); LL| 1| println!("async_func println in block");
LL| 1| } LL| 1| }
^0 ^0
LL| 1|} LL| 1|}
LL| | LL| |
LL| 1|async fn async_func_just_println() { LL| 1|async fn async_func_just_println() {

View File

@ -25,7 +25,7 @@ Number of file 0 mappings: 8
Highest counter ID seen: c4 Highest counter ID seen: c4
Function name: if::branch_not Function name: if::branch_not
Raw bytes (116): 0x[01, 01, 07, 05, 09, 05, 0d, 05, 0d, 05, 11, 05, 11, 05, 15, 05, 15, 12, 01, 0c, 01, 01, 10, 05, 03, 08, 00, 09, 20, 09, 02, 00, 08, 00, 09, 09, 01, 09, 00, 11, 02, 01, 06, 00, 07, 05, 01, 08, 00, 0a, 20, 0a, 0d, 00, 08, 00, 0a, 0a, 00, 0b, 02, 06, 0d, 02, 06, 00, 07, 05, 01, 08, 00, 0b, 20, 11, 12, 00, 08, 00, 0b, 11, 00, 0c, 02, 06, 12, 02, 06, 00, 07, 05, 01, 08, 00, 0c, 20, 1a, 15, 00, 08, 00, 0c, 1a, 00, 0d, 02, 06, 15, 02, 06, 00, 07, 05, 01, 01, 00, 02] Raw bytes (116): 0x[01, 01, 07, 05, 09, 05, 0d, 05, 0d, 05, 11, 05, 11, 05, 15, 05, 15, 12, 01, 0c, 01, 01, 10, 05, 03, 08, 00, 09, 20, 09, 02, 00, 08, 00, 09, 09, 01, 09, 00, 11, 02, 01, 05, 00, 06, 05, 01, 08, 00, 0a, 20, 0a, 0d, 00, 08, 00, 0a, 0a, 00, 0b, 02, 06, 0d, 02, 05, 00, 06, 05, 01, 08, 00, 0b, 20, 11, 12, 00, 08, 00, 0b, 11, 00, 0c, 02, 06, 12, 02, 05, 00, 06, 05, 01, 08, 00, 0c, 20, 1a, 15, 00, 08, 00, 0c, 1a, 00, 0d, 02, 06, 15, 02, 05, 00, 06, 05, 01, 01, 00, 02]
Number of files: 1 Number of files: 1
- file 0 => global file 1 - file 0 => global file 1
Number of expressions: 7 Number of expressions: 7
@ -43,7 +43,7 @@ Number of file 0 mappings: 18
true = c2 true = c2
false = (c1 - c2) false = (c1 - c2)
- Code(Counter(2)) at (prev + 1, 9) to (start + 0, 17) - Code(Counter(2)) at (prev + 1, 9) to (start + 0, 17)
- Code(Expression(0, Sub)) at (prev + 1, 6) to (start + 0, 7) - Code(Expression(0, Sub)) at (prev + 1, 5) to (start + 0, 6)
= (c1 - c2) = (c1 - c2)
- Code(Counter(1)) at (prev + 1, 8) to (start + 0, 10) - Code(Counter(1)) at (prev + 1, 8) to (start + 0, 10)
- Branch { true: Expression(2, Sub), false: Counter(3) } at (prev + 0, 8) to (start + 0, 10) - Branch { true: Expression(2, Sub), false: Counter(3) } at (prev + 0, 8) to (start + 0, 10)
@ -51,13 +51,13 @@ Number of file 0 mappings: 18
false = c3 false = c3
- Code(Expression(2, Sub)) at (prev + 0, 11) to (start + 2, 6) - Code(Expression(2, Sub)) at (prev + 0, 11) to (start + 2, 6)
= (c1 - c3) = (c1 - c3)
- Code(Counter(3)) at (prev + 2, 6) to (start + 0, 7) - Code(Counter(3)) at (prev + 2, 5) to (start + 0, 6)
- Code(Counter(1)) at (prev + 1, 8) to (start + 0, 11) - Code(Counter(1)) at (prev + 1, 8) to (start + 0, 11)
- Branch { true: Counter(4), false: Expression(4, Sub) } at (prev + 0, 8) to (start + 0, 11) - Branch { true: Counter(4), false: Expression(4, Sub) } at (prev + 0, 8) to (start + 0, 11)
true = c4 true = c4
false = (c1 - c4) false = (c1 - c4)
- Code(Counter(4)) at (prev + 0, 12) to (start + 2, 6) - Code(Counter(4)) at (prev + 0, 12) to (start + 2, 6)
- Code(Expression(4, Sub)) at (prev + 2, 6) to (start + 0, 7) - Code(Expression(4, Sub)) at (prev + 2, 5) to (start + 0, 6)
= (c1 - c4) = (c1 - c4)
- Code(Counter(1)) at (prev + 1, 8) to (start + 0, 12) - Code(Counter(1)) at (prev + 1, 8) to (start + 0, 12)
- Branch { true: Expression(6, Sub), false: Counter(5) } at (prev + 0, 8) to (start + 0, 12) - Branch { true: Expression(6, Sub), false: Counter(5) } at (prev + 0, 8) to (start + 0, 12)
@ -65,12 +65,12 @@ Number of file 0 mappings: 18
false = c5 false = c5
- Code(Expression(6, Sub)) at (prev + 0, 13) to (start + 2, 6) - Code(Expression(6, Sub)) at (prev + 0, 13) to (start + 2, 6)
= (c1 - c5) = (c1 - c5)
- Code(Counter(5)) at (prev + 2, 6) to (start + 0, 7) - Code(Counter(5)) at (prev + 2, 5) to (start + 0, 6)
- Code(Counter(1)) at (prev + 1, 1) to (start + 0, 2) - Code(Counter(1)) at (prev + 1, 1) to (start + 0, 2)
Highest counter ID seen: c5 Highest counter ID seen: c5
Function name: if::branch_not_as Function name: if::branch_not_as
Raw bytes (90): 0x[01, 01, 05, 05, 09, 05, 0d, 05, 0d, 05, 11, 05, 11, 0e, 01, 1d, 01, 01, 10, 05, 03, 08, 00, 14, 20, 02, 09, 00, 08, 00, 14, 02, 00, 15, 02, 06, 09, 02, 06, 00, 07, 05, 01, 08, 00, 15, 20, 0d, 0a, 00, 08, 00, 15, 0d, 00, 16, 02, 06, 0a, 02, 06, 00, 07, 05, 01, 08, 00, 16, 20, 12, 11, 00, 08, 00, 16, 12, 00, 17, 02, 06, 11, 02, 06, 00, 07, 05, 01, 01, 00, 02] Raw bytes (90): 0x[01, 01, 05, 05, 09, 05, 0d, 05, 0d, 05, 11, 05, 11, 0e, 01, 1d, 01, 01, 10, 05, 03, 08, 00, 14, 20, 02, 09, 00, 08, 00, 14, 02, 00, 15, 02, 06, 09, 02, 05, 00, 06, 05, 01, 08, 00, 15, 20, 0d, 0a, 00, 08, 00, 15, 0d, 00, 16, 02, 06, 0a, 02, 05, 00, 06, 05, 01, 08, 00, 16, 20, 12, 11, 00, 08, 00, 16, 12, 00, 17, 02, 06, 11, 02, 05, 00, 06, 05, 01, 01, 00, 02]
Number of files: 1 Number of files: 1
- file 0 => global file 1 - file 0 => global file 1
Number of expressions: 5 Number of expressions: 5
@ -87,13 +87,13 @@ Number of file 0 mappings: 14
false = c2 false = c2
- Code(Expression(0, Sub)) at (prev + 0, 21) to (start + 2, 6) - Code(Expression(0, Sub)) at (prev + 0, 21) to (start + 2, 6)
= (c1 - c2) = (c1 - c2)
- Code(Counter(2)) at (prev + 2, 6) to (start + 0, 7) - Code(Counter(2)) at (prev + 2, 5) to (start + 0, 6)
- Code(Counter(1)) at (prev + 1, 8) to (start + 0, 21) - Code(Counter(1)) at (prev + 1, 8) to (start + 0, 21)
- Branch { true: Counter(3), false: Expression(2, Sub) } at (prev + 0, 8) to (start + 0, 21) - Branch { true: Counter(3), false: Expression(2, Sub) } at (prev + 0, 8) to (start + 0, 21)
true = c3 true = c3
false = (c1 - c3) false = (c1 - c3)
- Code(Counter(3)) at (prev + 0, 22) to (start + 2, 6) - Code(Counter(3)) at (prev + 0, 22) to (start + 2, 6)
- Code(Expression(2, Sub)) at (prev + 2, 6) to (start + 0, 7) - Code(Expression(2, Sub)) at (prev + 2, 5) to (start + 0, 6)
= (c1 - c3) = (c1 - c3)
- Code(Counter(1)) at (prev + 1, 8) to (start + 0, 22) - Code(Counter(1)) at (prev + 1, 8) to (start + 0, 22)
- Branch { true: Expression(4, Sub), false: Counter(4) } at (prev + 0, 8) to (start + 0, 22) - Branch { true: Expression(4, Sub), false: Counter(4) } at (prev + 0, 8) to (start + 0, 22)
@ -101,7 +101,7 @@ Number of file 0 mappings: 14
false = c4 false = c4
- Code(Expression(4, Sub)) at (prev + 0, 23) to (start + 2, 6) - Code(Expression(4, Sub)) at (prev + 0, 23) to (start + 2, 6)
= (c1 - c4) = (c1 - c4)
- Code(Counter(4)) at (prev + 2, 6) to (start + 0, 7) - Code(Counter(4)) at (prev + 2, 5) to (start + 0, 6)
- Code(Counter(1)) at (prev + 1, 1) to (start + 0, 2) - Code(Counter(1)) at (prev + 1, 1) to (start + 0, 2)
Highest counter ID seen: c4 Highest counter ID seen: c4

View File

@ -30,7 +30,7 @@
------------------ ------------------
LL| 2| say("not not a"); LL| 2| say("not not a");
LL| 2| } LL| 2| }
^1 ^1
LL| 3| if !!!a { LL| 3| if !!!a {
------------------ ------------------
| Branch (LL:8): [True: 1, False: 2] | Branch (LL:8): [True: 1, False: 2]
@ -54,7 +54,7 @@
------------------ ------------------
LL| 2| say("not not (a as bool)"); LL| 2| say("not not (a as bool)");
LL| 2| } LL| 2| }
^1 ^1
LL| 3| if !!!(a as bool) { LL| 3| if !!!(a as bool) {
------------------ ------------------
| Branch (LL:8): [True: 1, False: 2] | Branch (LL:8): [True: 1, False: 2]

View File

@ -1,5 +1,5 @@
Function name: closure::main Function name: closure::main
Raw bytes (126): 0x[01, 01, 01, 01, 05, 18, 01, 09, 01, 0f, 0d, 01, 16, 0e, 06, 0a, 01, 10, 05, 13, 0d, 01, 1a, 0e, 06, 0a, 01, 10, 05, 0c, 16, 01, 16, 05, 0d, 18, 01, 19, 09, 01, 1e, 01, 04, 09, 00, 29, 01, 01, 09, 00, 2d, 01, 01, 09, 00, 24, 01, 05, 09, 00, 24, 01, 02, 09, 00, 21, 01, 04, 09, 00, 21, 01, 04, 09, 00, 28, 01, 09, 09, 00, 32, 01, 04, 09, 00, 33, 01, 07, 09, 00, 4b, 01, 08, 09, 00, 48, 01, 0a, 09, 00, 47, 01, 08, 09, 00, 44, 01, 0a, 08, 00, 10, 05, 00, 11, 04, 06, 02, 04, 06, 00, 07, 01, 01, 05, 03, 02] Raw bytes (126): 0x[01, 01, 01, 01, 05, 18, 01, 09, 01, 0f, 0d, 01, 16, 0e, 06, 0a, 01, 10, 05, 13, 0d, 01, 1a, 0e, 06, 0a, 01, 10, 05, 0c, 16, 01, 16, 05, 0d, 18, 01, 19, 09, 01, 1e, 01, 04, 09, 00, 29, 01, 01, 09, 00, 2d, 01, 01, 09, 00, 24, 01, 05, 09, 00, 24, 01, 02, 09, 00, 21, 01, 04, 09, 00, 21, 01, 04, 09, 00, 28, 01, 09, 09, 00, 32, 01, 04, 09, 00, 33, 01, 07, 09, 00, 4b, 01, 08, 09, 00, 48, 01, 0a, 09, 00, 47, 01, 08, 09, 00, 44, 01, 0a, 08, 00, 10, 05, 00, 11, 04, 06, 02, 04, 05, 00, 06, 01, 01, 05, 03, 02]
Number of files: 1 Number of files: 1
- file 0 => global file 1 - file 0 => global file 1
Number of expressions: 1 Number of expressions: 1
@ -27,13 +27,13 @@ Number of file 0 mappings: 24
- Code(Counter(0)) at (prev + 8, 9) to (start + 0, 68) - Code(Counter(0)) at (prev + 8, 9) to (start + 0, 68)
- Code(Counter(0)) at (prev + 10, 8) to (start + 0, 16) - Code(Counter(0)) at (prev + 10, 8) to (start + 0, 16)
- Code(Counter(1)) at (prev + 0, 17) to (start + 4, 6) - Code(Counter(1)) at (prev + 0, 17) to (start + 4, 6)
- Code(Expression(0, Sub)) at (prev + 4, 6) to (start + 0, 7) - Code(Expression(0, Sub)) at (prev + 4, 5) to (start + 0, 6)
= (c0 - c1) = (c0 - c1)
- Code(Counter(0)) at (prev + 1, 5) to (start + 3, 2) - Code(Counter(0)) at (prev + 1, 5) to (start + 3, 2)
Highest counter ID seen: c1 Highest counter ID seen: c1
Function name: closure::main::{closure#0} Function name: closure::main::{closure#0}
Raw bytes (26): 0x[01, 01, 01, 01, 05, 04, 01, 28, 05, 02, 14, 05, 02, 15, 02, 0a, 02, 02, 0a, 00, 0b, 01, 01, 09, 01, 06] Raw bytes (26): 0x[01, 01, 01, 01, 05, 04, 01, 28, 05, 02, 14, 05, 02, 15, 02, 0a, 02, 02, 09, 00, 0a, 01, 01, 09, 01, 06]
Number of files: 1 Number of files: 1
- file 0 => global file 1 - file 0 => global file 1
Number of expressions: 1 Number of expressions: 1
@ -41,7 +41,7 @@ Number of expressions: 1
Number of file 0 mappings: 4 Number of file 0 mappings: 4
- Code(Counter(0)) at (prev + 40, 5) to (start + 2, 20) - Code(Counter(0)) at (prev + 40, 5) to (start + 2, 20)
- Code(Counter(1)) at (prev + 2, 21) to (start + 2, 10) - Code(Counter(1)) at (prev + 2, 21) to (start + 2, 10)
- Code(Expression(0, Sub)) at (prev + 2, 10) to (start + 0, 11) - Code(Expression(0, Sub)) at (prev + 2, 9) to (start + 0, 10)
= (c0 - c1) = (c0 - c1)
- Code(Counter(0)) at (prev + 1, 9) to (start + 1, 6) - Code(Counter(0)) at (prev + 1, 9) to (start + 1, 6)
Highest counter ID seen: c1 Highest counter ID seen: c1
@ -83,17 +83,16 @@ Number of file 0 mappings: 1
Highest counter ID seen: (none) Highest counter ID seen: (none)
Function name: closure::main::{closure#14} Function name: closure::main::{closure#14}
Raw bytes (27): 0x[01, 01, 01, 01, 05, 04, 01, b3, 01, 0d, 02, 1b, 05, 02, 1e, 00, 25, 02, 00, 2f, 00, 33, 01, 01, 0d, 00, 0e] Raw bytes (22): 0x[01, 01, 01, 01, 05, 03, 01, b3, 01, 0d, 02, 1b, 05, 02, 1e, 00, 25, 02, 00, 2f, 00, 33]
Number of files: 1 Number of files: 1
- file 0 => global file 1 - file 0 => global file 1
Number of expressions: 1 Number of expressions: 1
- expression 0 operands: lhs = Counter(0), rhs = Counter(1) - expression 0 operands: lhs = Counter(0), rhs = Counter(1)
Number of file 0 mappings: 4 Number of file 0 mappings: 3
- Code(Counter(0)) at (prev + 179, 13) to (start + 2, 27) - Code(Counter(0)) at (prev + 179, 13) to (start + 2, 27)
- Code(Counter(1)) at (prev + 2, 30) to (start + 0, 37) - Code(Counter(1)) at (prev + 2, 30) to (start + 0, 37)
- Code(Expression(0, Sub)) at (prev + 0, 47) to (start + 0, 51) - Code(Expression(0, Sub)) at (prev + 0, 47) to (start + 0, 51)
= (c0 - c1) = (c0 - c1)
- Code(Counter(0)) at (prev + 1, 13) to (start + 0, 14)
Highest counter ID seen: c1 Highest counter ID seen: c1
Function name: closure::main::{closure#15} Function name: closure::main::{closure#15}
@ -113,17 +112,16 @@ Number of file 0 mappings: 6
Highest counter ID seen: c1 Highest counter ID seen: c1
Function name: closure::main::{closure#16} Function name: closure::main::{closure#16}
Raw bytes (27): 0x[01, 01, 01, 01, 05, 04, 01, c5, 01, 0d, 02, 1b, 05, 02, 1e, 00, 25, 02, 00, 2f, 00, 33, 01, 01, 0d, 00, 0e] Raw bytes (22): 0x[01, 01, 01, 01, 05, 03, 01, c5, 01, 0d, 02, 1b, 05, 02, 1e, 00, 25, 02, 00, 2f, 00, 33]
Number of files: 1 Number of files: 1
- file 0 => global file 1 - file 0 => global file 1
Number of expressions: 1 Number of expressions: 1
- expression 0 operands: lhs = Counter(0), rhs = Counter(1) - expression 0 operands: lhs = Counter(0), rhs = Counter(1)
Number of file 0 mappings: 4 Number of file 0 mappings: 3
- Code(Counter(0)) at (prev + 197, 13) to (start + 2, 27) - Code(Counter(0)) at (prev + 197, 13) to (start + 2, 27)
- Code(Counter(1)) at (prev + 2, 30) to (start + 0, 37) - Code(Counter(1)) at (prev + 2, 30) to (start + 0, 37)
- Code(Expression(0, Sub)) at (prev + 0, 47) to (start + 0, 51) - Code(Expression(0, Sub)) at (prev + 0, 47) to (start + 0, 51)
= (c0 - c1) = (c0 - c1)
- Code(Counter(0)) at (prev + 1, 13) to (start + 0, 14)
Highest counter ID seen: c1 Highest counter ID seen: c1
Function name: closure::main::{closure#17} Function name: closure::main::{closure#17}
@ -143,19 +141,19 @@ Number of file 0 mappings: 6
Highest counter ID seen: c1 Highest counter ID seen: c1
Function name: closure::main::{closure#18} (unused) Function name: closure::main::{closure#18} (unused)
Raw bytes (24): 0x[01, 01, 00, 04, 00, 19, 0d, 02, 1c, 00, 02, 1d, 02, 12, 00, 02, 12, 00, 13, 00, 01, 11, 01, 0e] Raw bytes (24): 0x[01, 01, 00, 04, 00, 19, 0d, 02, 1c, 00, 02, 1d, 02, 12, 00, 02, 11, 00, 12, 00, 01, 11, 01, 0e]
Number of files: 1 Number of files: 1
- file 0 => global file 1 - file 0 => global file 1
Number of expressions: 0 Number of expressions: 0
Number of file 0 mappings: 4 Number of file 0 mappings: 4
- Code(Zero) at (prev + 25, 13) to (start + 2, 28) - Code(Zero) at (prev + 25, 13) to (start + 2, 28)
- Code(Zero) at (prev + 2, 29) to (start + 2, 18) - Code(Zero) at (prev + 2, 29) to (start + 2, 18)
- Code(Zero) at (prev + 2, 18) to (start + 0, 19) - Code(Zero) at (prev + 2, 17) to (start + 0, 18)
- Code(Zero) at (prev + 1, 17) to (start + 1, 14) - Code(Zero) at (prev + 1, 17) to (start + 1, 14)
Highest counter ID seen: (none) Highest counter ID seen: (none)
Function name: closure::main::{closure#19} Function name: closure::main::{closure#19}
Raw bytes (26): 0x[01, 01, 01, 01, 05, 04, 01, 43, 0d, 02, 1c, 05, 02, 1d, 02, 12, 02, 02, 12, 00, 13, 01, 01, 11, 01, 0e] Raw bytes (26): 0x[01, 01, 01, 01, 05, 04, 01, 43, 0d, 02, 1c, 05, 02, 1d, 02, 12, 02, 02, 11, 00, 12, 01, 01, 11, 01, 0e]
Number of files: 1 Number of files: 1
- file 0 => global file 1 - file 0 => global file 1
Number of expressions: 1 Number of expressions: 1
@ -163,13 +161,13 @@ Number of expressions: 1
Number of file 0 mappings: 4 Number of file 0 mappings: 4
- Code(Counter(0)) at (prev + 67, 13) to (start + 2, 28) - Code(Counter(0)) at (prev + 67, 13) to (start + 2, 28)
- Code(Counter(1)) at (prev + 2, 29) to (start + 2, 18) - Code(Counter(1)) at (prev + 2, 29) to (start + 2, 18)
- Code(Expression(0, Sub)) at (prev + 2, 18) to (start + 0, 19) - Code(Expression(0, Sub)) at (prev + 2, 17) to (start + 0, 18)
= (c0 - c1) = (c0 - c1)
- Code(Counter(0)) at (prev + 1, 17) to (start + 1, 14) - Code(Counter(0)) at (prev + 1, 17) to (start + 1, 14)
Highest counter ID seen: c1 Highest counter ID seen: c1
Function name: closure::main::{closure#1} Function name: closure::main::{closure#1}
Raw bytes (26): 0x[01, 01, 01, 01, 05, 04, 01, 52, 05, 02, 14, 05, 02, 15, 02, 0a, 02, 02, 0a, 00, 0b, 01, 01, 09, 01, 06] Raw bytes (26): 0x[01, 01, 01, 01, 05, 04, 01, 52, 05, 02, 14, 05, 02, 15, 02, 0a, 02, 02, 09, 00, 0a, 01, 01, 09, 01, 06]
Number of files: 1 Number of files: 1
- file 0 => global file 1 - file 0 => global file 1
Number of expressions: 1 Number of expressions: 1
@ -177,13 +175,13 @@ Number of expressions: 1
Number of file 0 mappings: 4 Number of file 0 mappings: 4
- Code(Counter(0)) at (prev + 82, 5) to (start + 2, 20) - Code(Counter(0)) at (prev + 82, 5) to (start + 2, 20)
- Code(Counter(1)) at (prev + 2, 21) to (start + 2, 10) - Code(Counter(1)) at (prev + 2, 21) to (start + 2, 10)
- Code(Expression(0, Sub)) at (prev + 2, 10) to (start + 0, 11) - Code(Expression(0, Sub)) at (prev + 2, 9) to (start + 0, 10)
= (c0 - c1) = (c0 - c1)
- Code(Counter(0)) at (prev + 1, 9) to (start + 1, 6) - Code(Counter(0)) at (prev + 1, 9) to (start + 1, 6)
Highest counter ID seen: c1 Highest counter ID seen: c1
Function name: closure::main::{closure#2} Function name: closure::main::{closure#2}
Raw bytes (26): 0x[01, 01, 01, 01, 05, 04, 01, 68, 05, 02, 14, 05, 02, 15, 02, 0a, 02, 02, 0a, 00, 0b, 01, 01, 09, 01, 06] Raw bytes (26): 0x[01, 01, 01, 01, 05, 04, 01, 68, 05, 02, 14, 05, 02, 15, 02, 0a, 02, 02, 09, 00, 0a, 01, 01, 09, 01, 06]
Number of files: 1 Number of files: 1
- file 0 => global file 1 - file 0 => global file 1
Number of expressions: 1 Number of expressions: 1
@ -191,20 +189,20 @@ Number of expressions: 1
Number of file 0 mappings: 4 Number of file 0 mappings: 4
- Code(Counter(0)) at (prev + 104, 5) to (start + 2, 20) - Code(Counter(0)) at (prev + 104, 5) to (start + 2, 20)
- Code(Counter(1)) at (prev + 2, 21) to (start + 2, 10) - Code(Counter(1)) at (prev + 2, 21) to (start + 2, 10)
- Code(Expression(0, Sub)) at (prev + 2, 10) to (start + 0, 11) - Code(Expression(0, Sub)) at (prev + 2, 9) to (start + 0, 10)
= (c0 - c1) = (c0 - c1)
- Code(Counter(0)) at (prev + 1, 9) to (start + 1, 6) - Code(Counter(0)) at (prev + 1, 9) to (start + 1, 6)
Highest counter ID seen: c1 Highest counter ID seen: c1
Function name: closure::main::{closure#3} (unused) Function name: closure::main::{closure#3} (unused)
Raw bytes (25): 0x[01, 01, 00, 04, 00, 81, 01, 05, 01, 14, 00, 01, 15, 02, 0a, 00, 02, 0a, 00, 0b, 00, 01, 09, 01, 06] Raw bytes (25): 0x[01, 01, 00, 04, 00, 81, 01, 05, 01, 14, 00, 01, 15, 02, 0a, 00, 02, 09, 00, 0a, 00, 01, 09, 01, 06]
Number of files: 1 Number of files: 1
- file 0 => global file 1 - file 0 => global file 1
Number of expressions: 0 Number of expressions: 0
Number of file 0 mappings: 4 Number of file 0 mappings: 4
- Code(Zero) at (prev + 129, 5) to (start + 1, 20) - Code(Zero) at (prev + 129, 5) to (start + 1, 20)
- Code(Zero) at (prev + 1, 21) to (start + 2, 10) - Code(Zero) at (prev + 1, 21) to (start + 2, 10)
- Code(Zero) at (prev + 2, 10) to (start + 0, 11) - Code(Zero) at (prev + 2, 9) to (start + 0, 10)
- Code(Zero) at (prev + 1, 9) to (start + 1, 6) - Code(Zero) at (prev + 1, 9) to (start + 1, 6)
Highest counter ID seen: (none) Highest counter ID seen: (none)

View File

@ -183,7 +183,7 @@
LL| 0| println!( LL| 0| println!(
LL| 0| "not called: {}", LL| 0| "not called: {}",
LL| 0| if is_true { "check" } else { "me" } LL| 0| if is_true { "check" } else { "me" }
LL| 0| ) LL| | )
LL| | ; LL| | ;
LL| | LL| |
LL| 1| let short_used_not_covered_closure_line_break_block_embedded_branch = LL| 1| let short_used_not_covered_closure_line_break_block_embedded_branch =
@ -202,7 +202,7 @@
LL| 1| "not called: {}", LL| 1| "not called: {}",
LL| 1| if is_true { "check" } else { "me" } LL| 1| if is_true { "check" } else { "me" }
^0 ^0
LL| 1| ) LL| | )
LL| | ; LL| | ;
LL| | LL| |
LL| 1| let short_used_covered_closure_line_break_block_embedded_branch = LL| 1| let short_used_covered_closure_line_break_block_embedded_branch =

View File

@ -1,5 +1,5 @@
Function name: closure_bug::main Function name: closure_bug::main
Raw bytes (97): 0x[01, 01, 04, 01, 05, 01, 09, 01, 0d, 01, 11, 11, 01, 07, 01, 03, 0a, 01, 09, 05, 01, 0e, 05, 01, 0f, 00, 17, 02, 00, 17, 00, 18, 01, 02, 09, 00, 0a, 01, 06, 05, 01, 0e, 09, 01, 0f, 00, 17, 06, 00, 17, 00, 18, 01, 02, 09, 00, 0a, 01, 06, 05, 01, 0e, 0d, 01, 0f, 00, 17, 0a, 00, 17, 00, 18, 01, 02, 09, 00, 0a, 01, 06, 05, 01, 0e, 11, 01, 0f, 00, 17, 0e, 00, 17, 00, 18, 01, 01, 01, 00, 02] Raw bytes (97): 0x[01, 01, 04, 01, 05, 01, 09, 01, 0d, 01, 11, 11, 01, 07, 01, 03, 0a, 01, 09, 05, 01, 0e, 05, 01, 0f, 00, 17, 02, 00, 16, 00, 17, 01, 02, 09, 00, 0a, 01, 06, 05, 01, 0e, 09, 01, 0f, 00, 17, 06, 00, 16, 00, 17, 01, 02, 09, 00, 0a, 01, 06, 05, 01, 0e, 0d, 01, 0f, 00, 17, 0a, 00, 16, 00, 17, 01, 02, 09, 00, 0a, 01, 06, 05, 01, 0e, 11, 01, 0f, 00, 17, 0e, 00, 16, 00, 17, 01, 01, 01, 00, 02]
Number of files: 1 Number of files: 1
- file 0 => global file 1 - file 0 => global file 1
Number of expressions: 4 Number of expressions: 4
@ -11,22 +11,22 @@ Number of file 0 mappings: 17
- Code(Counter(0)) at (prev + 7, 1) to (start + 3, 10) - Code(Counter(0)) at (prev + 7, 1) to (start + 3, 10)
- Code(Counter(0)) at (prev + 9, 5) to (start + 1, 14) - Code(Counter(0)) at (prev + 9, 5) to (start + 1, 14)
- Code(Counter(1)) at (prev + 1, 15) to (start + 0, 23) - Code(Counter(1)) at (prev + 1, 15) to (start + 0, 23)
- Code(Expression(0, Sub)) at (prev + 0, 23) to (start + 0, 24) - Code(Expression(0, Sub)) at (prev + 0, 22) to (start + 0, 23)
= (c0 - c1) = (c0 - c1)
- Code(Counter(0)) at (prev + 2, 9) to (start + 0, 10) - Code(Counter(0)) at (prev + 2, 9) to (start + 0, 10)
- Code(Counter(0)) at (prev + 6, 5) to (start + 1, 14) - Code(Counter(0)) at (prev + 6, 5) to (start + 1, 14)
- Code(Counter(2)) at (prev + 1, 15) to (start + 0, 23) - Code(Counter(2)) at (prev + 1, 15) to (start + 0, 23)
- Code(Expression(1, Sub)) at (prev + 0, 23) to (start + 0, 24) - Code(Expression(1, Sub)) at (prev + 0, 22) to (start + 0, 23)
= (c0 - c2) = (c0 - c2)
- Code(Counter(0)) at (prev + 2, 9) to (start + 0, 10) - Code(Counter(0)) at (prev + 2, 9) to (start + 0, 10)
- Code(Counter(0)) at (prev + 6, 5) to (start + 1, 14) - Code(Counter(0)) at (prev + 6, 5) to (start + 1, 14)
- Code(Counter(3)) at (prev + 1, 15) to (start + 0, 23) - Code(Counter(3)) at (prev + 1, 15) to (start + 0, 23)
- Code(Expression(2, Sub)) at (prev + 0, 23) to (start + 0, 24) - Code(Expression(2, Sub)) at (prev + 0, 22) to (start + 0, 23)
= (c0 - c3) = (c0 - c3)
- Code(Counter(0)) at (prev + 2, 9) to (start + 0, 10) - Code(Counter(0)) at (prev + 2, 9) to (start + 0, 10)
- Code(Counter(0)) at (prev + 6, 5) to (start + 1, 14) - Code(Counter(0)) at (prev + 6, 5) to (start + 1, 14)
- Code(Counter(4)) at (prev + 1, 15) to (start + 0, 23) - Code(Counter(4)) at (prev + 1, 15) to (start + 0, 23)
- Code(Expression(3, Sub)) at (prev + 0, 23) to (start + 0, 24) - Code(Expression(3, Sub)) at (prev + 0, 22) to (start + 0, 23)
= (c0 - c4) = (c0 - c4)
- Code(Counter(0)) at (prev + 1, 1) to (start + 0, 2) - Code(Counter(0)) at (prev + 1, 1) to (start + 0, 2)
Highest counter ID seen: c4 Highest counter ID seen: c4

View File

@ -16,7 +16,7 @@
LL| | LL| |
LL| 1| a(); LL| 1| a();
LL| 1| if truthy { a(); } LL| 1| if truthy { a(); }
^0 ^0
LL| | LL| |
LL| 1| let b LL| 1| let b
LL| | = LL| | =
@ -27,7 +27,7 @@
LL| | LL| |
LL| 1| b(); LL| 1| b();
LL| 1| if truthy { b(); } LL| 1| if truthy { b(); }
^0 ^0
LL| | LL| |
LL| 1| let c LL| 1| let c
LL| | = LL| | =
@ -38,7 +38,7 @@
LL| | LL| |
LL| 1| c(); LL| 1| c();
LL| 1| if truthy { c(); } LL| 1| if truthy { c(); }
^0 ^0
LL| | LL| |
LL| 1| let d LL| 1| let d
LL| | = LL| | =
@ -49,6 +49,6 @@
LL| | LL| |
LL| 1| d(); LL| 1| d();
LL| 1| if truthy { d(); } LL| 1| if truthy { d(); }
^0 ^0
LL| 1|} LL| 1|}

View File

@ -1,5 +1,5 @@
Function name: conditions::main Function name: conditions::main
Raw bytes (799): 0x[01, 01, 94, 01, 09, 2b, 2f, 41, 33, 3d, 35, 39, 01, 09, 0d, 35, 1e, 39, 0d, 35, 33, 3d, 35, 39, 2f, 41, 33, 3d, 35, 39, ce, 04, 0d, 01, 09, 03, 49, 62, 31, 03, 49, 5e, 4d, 62, 31, 03, 49, 5a, 51, 5e, 4d, 62, 31, 03, 49, 87, 01, 55, 4d, 51, 83, 01, 59, 87, 01, 55, 4d, 51, 49, 7f, 83, 01, 59, 87, 01, 55, 4d, 51, 5d, 65, ae, 01, 2d, 5d, 65, aa, 01, 69, ae, 01, 2d, 5d, 65, a6, 01, 6d, aa, 01, 69, ae, 01, 2d, 5d, 65, f3, 02, 71, 69, 6d, ef, 02, 75, f3, 02, 71, 69, 6d, e7, 02, 00, 65, eb, 02, ef, 02, 75, f3, 02, 71, 69, 6d, 7d, 87, 04, 8b, 04, 8d, 01, 8f, 04, 89, 01, 81, 01, 85, 01, e7, 02, 00, 65, eb, 02, ef, 02, 75, f3, 02, 71, 69, 6d, e3, 02, 7d, e7, 02, 00, 65, eb, 02, ef, 02, 75, f3, 02, 71, 69, 6d, de, 02, 29, e3, 02, 7d, e7, 02, 00, 65, eb, 02, ef, 02, 75, f3, 02, 71, 69, 6d, da, 02, 81, 01, de, 02, 29, e3, 02, 7d, e7, 02, 00, 65, eb, 02, ef, 02, 75, f3, 02, 71, 69, 6d, d6, 02, 85, 01, da, 02, 81, 01, de, 02, 29, e3, 02, 7d, e7, 02, 00, 65, eb, 02, ef, 02, 75, f3, 02, 71, 69, 6d, 8f, 04, 89, 01, 81, 01, 85, 01, 8b, 04, 8d, 01, 8f, 04, 89, 01, 81, 01, 85, 01, 11, af, 04, b3, 04, 21, b7, 04, 1d, 15, 19, 7d, 87, 04, 8b, 04, 8d, 01, 8f, 04, 89, 01, 81, 01, 85, 01, 83, 04, 11, 7d, 87, 04, 8b, 04, 8d, 01, 8f, 04, 89, 01, 81, 01, 85, 01, fe, 03, 25, 83, 04, 11, 7d, 87, 04, 8b, 04, 8d, 01, 8f, 04, 89, 01, 81, 01, 85, 01, fa, 03, 15, fe, 03, 25, 83, 04, 11, 7d, 87, 04, 8b, 04, 8d, 01, 8f, 04, 89, 01, 81, 01, 85, 01, f6, 03, 19, fa, 03, 15, fe, 03, 25, 83, 04, 11, 7d, 87, 04, 8b, 04, 8d, 01, 8f, 04, 89, 01, 81, 01, 85, 01, b7, 04, 1d, 15, 19, b3, 04, 21, b7, 04, 1d, 15, 19, ab, 04, bb, 04, 11, af, 04, b3, 04, 21, b7, 04, 1d, 15, 19, bf, 04, ca, 04, c3, 04, 31, c7, 04, 2d, 25, 29, ce, 04, 0d, 01, 09, 44, 01, 03, 01, 02, 0c, 05, 02, 0d, 02, 06, 00, 02, 06, 00, 07, 03, 03, 09, 00, 0a, 01, 00, 10, 00, 1d, 09, 01, 09, 01, 0a, ce, 04, 02, 0f, 00, 1c, 0d, 01, 0c, 00, 19, 1e, 00, 1d, 00, 2a, 1a, 00, 2e, 00, 3c, 2f, 00, 3d, 02, 0a, 41, 02, 0a, 00, 0b, 2b, 01, 09, 01, 12, ca, 04, 03, 09, 00, 0f, 03, 03, 09, 01, 0c, 45, 01, 0d, 02, 06, 00, 02, 06, 00, 07, 03, 02, 08, 00, 15, 49, 00, 16, 02, 06, 62, 02, 0f, 00, 1c, 5e, 01, 0c, 00, 19, 5a, 00, 1d, 00, 2a, 56, 00, 2e, 00, 3c, 83, 01, 00, 3d, 02, 0a, 59, 02, 0a, 00, 0b, 7f, 01, 09, 00, 17, 31, 02, 09, 00, 0f, 7b, 03, 08, 00, 0c, 5d, 01, 0d, 01, 10, 61, 01, 11, 02, 0a, 00, 02, 0a, 00, 0b, 5d, 02, 0c, 00, 19, 65, 00, 1a, 02, 0a, ae, 01, 04, 11, 00, 1e, aa, 01, 01, 10, 00, 1d, a6, 01, 00, 21, 00, 2e, a2, 01, 00, 32, 00, 40, ef, 02, 00, 41, 02, 0e, 75, 02, 0e, 00, 0f, eb, 02, 01, 0d, 00, 1b, 2d, 02, 0d, 00, 13, 00, 02, 06, 00, 07, e3, 02, 02, 09, 01, 0c, 79, 01, 0d, 02, 06, 00, 02, 06, 00, 07, 83, 04, 02, 09, 00, 0a, e3, 02, 00, 10, 00, 1d, 7d, 00, 1e, 02, 06, de, 02, 02, 0f, 00, 1c, da, 02, 01, 0c, 00, 19, d6, 02, 00, 1d, 00, 2a, d2, 02, 00, 2e, 00, 3c, 8b, 04, 00, 3d, 02, 0a, 8d, 01, 02, 0a, 00, 0b, 87, 04, 01, 09, 00, 17, 29, 02, 0d, 02, 0f, ab, 04, 05, 09, 00, 0a, 83, 04, 00, 10, 00, 1d, 11, 00, 1e, 02, 06, fe, 03, 02, 0f, 00, 1c, fa, 03, 01, 0c, 00, 19, f6, 03, 00, 1d, 00, 2a, f2, 03, 00, 2e, 00, 3c, b3, 04, 00, 3d, 02, 0a, 21, 02, 0a, 00, 0b, af, 04, 01, 09, 00, 17, 25, 02, 09, 00, 0f, a7, 04, 02, 01, 00, 02] Raw bytes (799): 0x[01, 01, 94, 01, 09, 2b, 2f, 41, 33, 3d, 35, 39, 01, 09, 0d, 35, 1e, 39, 0d, 35, 33, 3d, 35, 39, 2f, 41, 33, 3d, 35, 39, ce, 04, 0d, 01, 09, 03, 49, 62, 31, 03, 49, 5e, 4d, 62, 31, 03, 49, 5a, 51, 5e, 4d, 62, 31, 03, 49, 87, 01, 55, 4d, 51, 83, 01, 59, 87, 01, 55, 4d, 51, 49, 7f, 83, 01, 59, 87, 01, 55, 4d, 51, 5d, 65, ae, 01, 2d, 5d, 65, aa, 01, 69, ae, 01, 2d, 5d, 65, a6, 01, 6d, aa, 01, 69, ae, 01, 2d, 5d, 65, f3, 02, 71, 69, 6d, ef, 02, 75, f3, 02, 71, 69, 6d, e7, 02, 00, 65, eb, 02, ef, 02, 75, f3, 02, 71, 69, 6d, 7d, 87, 04, 8b, 04, 8d, 01, 8f, 04, 89, 01, 81, 01, 85, 01, e7, 02, 00, 65, eb, 02, ef, 02, 75, f3, 02, 71, 69, 6d, e3, 02, 7d, e7, 02, 00, 65, eb, 02, ef, 02, 75, f3, 02, 71, 69, 6d, de, 02, 29, e3, 02, 7d, e7, 02, 00, 65, eb, 02, ef, 02, 75, f3, 02, 71, 69, 6d, da, 02, 81, 01, de, 02, 29, e3, 02, 7d, e7, 02, 00, 65, eb, 02, ef, 02, 75, f3, 02, 71, 69, 6d, d6, 02, 85, 01, da, 02, 81, 01, de, 02, 29, e3, 02, 7d, e7, 02, 00, 65, eb, 02, ef, 02, 75, f3, 02, 71, 69, 6d, 8f, 04, 89, 01, 81, 01, 85, 01, 8b, 04, 8d, 01, 8f, 04, 89, 01, 81, 01, 85, 01, 11, af, 04, b3, 04, 21, b7, 04, 1d, 15, 19, 7d, 87, 04, 8b, 04, 8d, 01, 8f, 04, 89, 01, 81, 01, 85, 01, 83, 04, 11, 7d, 87, 04, 8b, 04, 8d, 01, 8f, 04, 89, 01, 81, 01, 85, 01, fe, 03, 25, 83, 04, 11, 7d, 87, 04, 8b, 04, 8d, 01, 8f, 04, 89, 01, 81, 01, 85, 01, fa, 03, 15, fe, 03, 25, 83, 04, 11, 7d, 87, 04, 8b, 04, 8d, 01, 8f, 04, 89, 01, 81, 01, 85, 01, f6, 03, 19, fa, 03, 15, fe, 03, 25, 83, 04, 11, 7d, 87, 04, 8b, 04, 8d, 01, 8f, 04, 89, 01, 81, 01, 85, 01, b7, 04, 1d, 15, 19, b3, 04, 21, b7, 04, 1d, 15, 19, ab, 04, bb, 04, 11, af, 04, b3, 04, 21, b7, 04, 1d, 15, 19, bf, 04, ca, 04, c3, 04, 31, c7, 04, 2d, 25, 29, ce, 04, 0d, 01, 09, 44, 01, 03, 01, 02, 0c, 05, 02, 0d, 02, 06, 00, 02, 05, 00, 06, 03, 03, 09, 00, 0a, 01, 00, 10, 00, 1d, 09, 01, 09, 01, 0a, ce, 04, 02, 0f, 00, 1c, 0d, 01, 0c, 00, 19, 1e, 00, 1d, 00, 2a, 1a, 00, 2e, 00, 3c, 2f, 00, 3d, 02, 0a, 41, 02, 09, 00, 0a, 2b, 01, 09, 01, 12, ca, 04, 03, 09, 00, 0f, 03, 03, 09, 01, 0c, 45, 01, 0d, 02, 06, 00, 02, 05, 00, 06, 03, 02, 08, 00, 15, 49, 00, 16, 02, 06, 62, 02, 0f, 00, 1c, 5e, 01, 0c, 00, 19, 5a, 00, 1d, 00, 2a, 56, 00, 2e, 00, 3c, 83, 01, 00, 3d, 02, 0a, 59, 02, 09, 00, 0a, 7f, 01, 09, 00, 17, 31, 02, 09, 00, 0f, 7b, 03, 08, 00, 0c, 5d, 01, 0d, 01, 10, 61, 01, 11, 02, 0a, 00, 02, 09, 00, 0a, 5d, 02, 0c, 00, 19, 65, 00, 1a, 02, 0a, ae, 01, 04, 11, 00, 1e, aa, 01, 01, 10, 00, 1d, a6, 01, 00, 21, 00, 2e, a2, 01, 00, 32, 00, 40, ef, 02, 00, 41, 02, 0e, 75, 02, 0d, 00, 0e, eb, 02, 01, 0d, 00, 1b, 2d, 02, 0d, 00, 13, 00, 02, 05, 00, 06, e3, 02, 02, 09, 01, 0c, 79, 01, 0d, 02, 06, 00, 02, 05, 00, 06, 83, 04, 02, 09, 00, 0a, e3, 02, 00, 10, 00, 1d, 7d, 00, 1e, 02, 06, de, 02, 02, 0f, 00, 1c, da, 02, 01, 0c, 00, 19, d6, 02, 00, 1d, 00, 2a, d2, 02, 00, 2e, 00, 3c, 8b, 04, 00, 3d, 02, 0a, 8d, 01, 02, 09, 00, 0a, 87, 04, 01, 09, 00, 17, 29, 02, 0d, 02, 0f, ab, 04, 05, 09, 00, 0a, 83, 04, 00, 10, 00, 1d, 11, 00, 1e, 02, 06, fe, 03, 02, 0f, 00, 1c, fa, 03, 01, 0c, 00, 19, f6, 03, 00, 1d, 00, 2a, f2, 03, 00, 2e, 00, 3c, b3, 04, 00, 3d, 02, 0a, 21, 02, 09, 00, 0a, af, 04, 01, 09, 00, 17, 25, 02, 09, 00, 0f, a7, 04, 02, 01, 00, 02]
Number of files: 1 Number of files: 1
- file 0 => global file 1 - file 0 => global file 1
Number of expressions: 148 Number of expressions: 148
@ -154,7 +154,7 @@ Number of expressions: 148
Number of file 0 mappings: 68 Number of file 0 mappings: 68
- Code(Counter(0)) at (prev + 3, 1) to (start + 2, 12) - Code(Counter(0)) at (prev + 3, 1) to (start + 2, 12)
- Code(Counter(1)) at (prev + 2, 13) to (start + 2, 6) - Code(Counter(1)) at (prev + 2, 13) to (start + 2, 6)
- Code(Zero) at (prev + 2, 6) to (start + 0, 7) - Code(Zero) at (prev + 2, 5) to (start + 0, 6)
- Code(Expression(0, Add)) at (prev + 3, 9) to (start + 0, 10) - Code(Expression(0, Add)) at (prev + 3, 9) to (start + 0, 10)
= (c2 + (((c13 + c14) + c15) + c16)) = (c2 + (((c13 + c14) + c15) + c16))
- Code(Counter(0)) at (prev + 0, 16) to (start + 0, 29) - Code(Counter(0)) at (prev + 0, 16) to (start + 0, 29)
@ -168,7 +168,7 @@ Number of file 0 mappings: 68
= ((c3 - c13) - c14) = ((c3 - c13) - c14)
- Code(Expression(11, Add)) at (prev + 0, 61) to (start + 2, 10) - Code(Expression(11, Add)) at (prev + 0, 61) to (start + 2, 10)
= ((c13 + c14) + c15) = ((c13 + c14) + c15)
- Code(Counter(16)) at (prev + 2, 10) to (start + 0, 11) - Code(Counter(16)) at (prev + 2, 9) to (start + 0, 10)
- Code(Expression(10, Add)) at (prev + 1, 9) to (start + 1, 18) - Code(Expression(10, Add)) at (prev + 1, 9) to (start + 1, 18)
= (((c13 + c14) + c15) + c16) = (((c13 + c14) + c15) + c16)
- Code(Expression(146, Sub)) at (prev + 3, 9) to (start + 0, 15) - Code(Expression(146, Sub)) at (prev + 3, 9) to (start + 0, 15)
@ -176,7 +176,7 @@ Number of file 0 mappings: 68
- Code(Expression(0, Add)) at (prev + 3, 9) to (start + 1, 12) - Code(Expression(0, Add)) at (prev + 3, 9) to (start + 1, 12)
= (c2 + (((c13 + c14) + c15) + c16)) = (c2 + (((c13 + c14) + c15) + c16))
- Code(Counter(17)) at (prev + 1, 13) to (start + 2, 6) - Code(Counter(17)) at (prev + 1, 13) to (start + 2, 6)
- Code(Zero) at (prev + 2, 6) to (start + 0, 7) - Code(Zero) at (prev + 2, 5) to (start + 0, 6)
- Code(Expression(0, Add)) at (prev + 2, 8) to (start + 0, 21) - Code(Expression(0, Add)) at (prev + 2, 8) to (start + 0, 21)
= (c2 + (((c13 + c14) + c15) + c16)) = (c2 + (((c13 + c14) + c15) + c16))
- Code(Counter(18)) at (prev + 0, 22) to (start + 2, 6) - Code(Counter(18)) at (prev + 0, 22) to (start + 2, 6)
@ -190,7 +190,7 @@ Number of file 0 mappings: 68
= (((((c2 + (((c13 + c14) + c15) + c16)) - c18) - c12) - c19) - c20) = (((((c2 + (((c13 + c14) + c15) + c16)) - c18) - c12) - c19) - c20)
- Code(Expression(32, Add)) at (prev + 0, 61) to (start + 2, 10) - Code(Expression(32, Add)) at (prev + 0, 61) to (start + 2, 10)
= ((c19 + c20) + c21) = ((c19 + c20) + c21)
- Code(Counter(22)) at (prev + 2, 10) to (start + 0, 11) - Code(Counter(22)) at (prev + 2, 9) to (start + 0, 10)
- Code(Expression(31, Add)) at (prev + 1, 9) to (start + 0, 23) - Code(Expression(31, Add)) at (prev + 1, 9) to (start + 0, 23)
= (((c19 + c20) + c21) + c22) = (((c19 + c20) + c21) + c22)
- Code(Counter(12)) at (prev + 2, 9) to (start + 0, 15) - Code(Counter(12)) at (prev + 2, 9) to (start + 0, 15)
@ -198,7 +198,7 @@ Number of file 0 mappings: 68
= (c18 + (((c19 + c20) + c21) + c22)) = (c18 + (((c19 + c20) + c21) + c22))
- Code(Counter(23)) at (prev + 1, 13) to (start + 1, 16) - Code(Counter(23)) at (prev + 1, 13) to (start + 1, 16)
- Code(Counter(24)) at (prev + 1, 17) to (start + 2, 10) - Code(Counter(24)) at (prev + 1, 17) to (start + 2, 10)
- Code(Zero) at (prev + 2, 10) to (start + 0, 11) - Code(Zero) at (prev + 2, 9) to (start + 0, 10)
- Code(Counter(23)) at (prev + 2, 12) to (start + 0, 25) - Code(Counter(23)) at (prev + 2, 12) to (start + 0, 25)
- Code(Counter(25)) at (prev + 0, 26) to (start + 2, 10) - Code(Counter(25)) at (prev + 0, 26) to (start + 2, 10)
- Code(Expression(43, Sub)) at (prev + 4, 17) to (start + 0, 30) - Code(Expression(43, Sub)) at (prev + 4, 17) to (start + 0, 30)
@ -211,15 +211,15 @@ Number of file 0 mappings: 68
= ((((c23 - c25) - c11) - c26) - c27) = ((((c23 - c25) - c11) - c26) - c27)
- Code(Expression(91, Add)) at (prev + 0, 65) to (start + 2, 14) - Code(Expression(91, Add)) at (prev + 0, 65) to (start + 2, 14)
= ((c26 + c27) + c28) = ((c26 + c27) + c28)
- Code(Counter(29)) at (prev + 2, 14) to (start + 0, 15) - Code(Counter(29)) at (prev + 2, 13) to (start + 0, 14)
- Code(Expression(90, Add)) at (prev + 1, 13) to (start + 0, 27) - Code(Expression(90, Add)) at (prev + 1, 13) to (start + 0, 27)
= (((c26 + c27) + c28) + c29) = (((c26 + c27) + c28) + c29)
- Code(Counter(11)) at (prev + 2, 13) to (start + 0, 19) - Code(Counter(11)) at (prev + 2, 13) to (start + 0, 19)
- Code(Zero) at (prev + 2, 6) to (start + 0, 7) - Code(Zero) at (prev + 2, 5) to (start + 0, 6)
- Code(Expression(88, Add)) at (prev + 2, 9) to (start + 1, 12) - Code(Expression(88, Add)) at (prev + 2, 9) to (start + 1, 12)
= ((c25 + (((c26 + c27) + c28) + c29)) + Zero) = ((c25 + (((c26 + c27) + c28) + c29)) + Zero)
- Code(Counter(30)) at (prev + 1, 13) to (start + 2, 6) - Code(Counter(30)) at (prev + 1, 13) to (start + 2, 6)
- Code(Zero) at (prev + 2, 6) to (start + 0, 7) - Code(Zero) at (prev + 2, 5) to (start + 0, 6)
- Code(Expression(128, Add)) at (prev + 2, 9) to (start + 0, 10) - Code(Expression(128, Add)) at (prev + 2, 9) to (start + 0, 10)
= (c31 + (((c32 + c33) + c34) + c35)) = (c31 + (((c32 + c33) + c34) + c35))
- Code(Expression(88, Add)) at (prev + 0, 16) to (start + 0, 29) - Code(Expression(88, Add)) at (prev + 0, 16) to (start + 0, 29)
@ -235,7 +235,7 @@ Number of file 0 mappings: 68
= ((((((c25 + (((c26 + c27) + c28) + c29)) + Zero) - c31) - c10) - c32) - c33) = ((((((c25 + (((c26 + c27) + c28) + c29)) + Zero) - c31) - c10) - c32) - c33)
- Code(Expression(130, Add)) at (prev + 0, 61) to (start + 2, 10) - Code(Expression(130, Add)) at (prev + 0, 61) to (start + 2, 10)
= ((c32 + c33) + c34) = ((c32 + c33) + c34)
- Code(Counter(35)) at (prev + 2, 10) to (start + 0, 11) - Code(Counter(35)) at (prev + 2, 9) to (start + 0, 10)
- Code(Expression(129, Add)) at (prev + 1, 9) to (start + 0, 23) - Code(Expression(129, Add)) at (prev + 1, 9) to (start + 0, 23)
= (((c32 + c33) + c34) + c35) = (((c32 + c33) + c34) + c35)
- Code(Counter(10)) at (prev + 2, 13) to (start + 2, 15) - Code(Counter(10)) at (prev + 2, 13) to (start + 2, 15)
@ -254,7 +254,7 @@ Number of file 0 mappings: 68
= (((((c31 + (((c32 + c33) + c34) + c35)) - c4) - c9) - c5) - c6) = (((((c31 + (((c32 + c33) + c34) + c35)) - c4) - c9) - c5) - c6)
- Code(Expression(140, Add)) at (prev + 0, 61) to (start + 2, 10) - Code(Expression(140, Add)) at (prev + 0, 61) to (start + 2, 10)
= ((c5 + c6) + c7) = ((c5 + c6) + c7)
- Code(Counter(8)) at (prev + 2, 10) to (start + 0, 11) - Code(Counter(8)) at (prev + 2, 9) to (start + 0, 10)
- Code(Expression(139, Add)) at (prev + 1, 9) to (start + 0, 23) - Code(Expression(139, Add)) at (prev + 1, 9) to (start + 0, 23)
= (((c5 + c6) + c7) + c8) = (((c5 + c6) + c7) + c8)
- Code(Counter(9)) at (prev + 2, 9) to (start + 0, 15) - Code(Counter(9)) at (prev + 2, 9) to (start + 0, 15)

View File

@ -5,7 +5,7 @@
LL| 1| if true { LL| 1| if true {
LL| 1| countdown = 10; LL| 1| countdown = 10;
LL| 1| } LL| 1| }
^0 ^0
LL| | LL| |
LL| | const B: u32 = 100; LL| | const B: u32 = 100;
LL| 1| let x = if countdown > 7 { LL| 1| let x = if countdown > 7 {
@ -25,7 +25,7 @@
LL| 1| if true { LL| 1| if true {
LL| 1| countdown = 10; LL| 1| countdown = 10;
LL| 1| } LL| 1| }
^0 ^0
LL| | LL| |
LL| 1| if countdown > 7 { LL| 1| if countdown > 7 {
LL| 1| countdown -= 4; LL| 1| countdown -= 4;
@ -44,7 +44,7 @@
LL| 1| if true { LL| 1| if true {
LL| 1| countdown = 10; LL| 1| countdown = 10;
LL| 1| } LL| 1| }
^0 ^0
LL| | LL| |
LL| 1| if countdown > 7 { LL| 1| if countdown > 7 {
LL| 1| countdown -= 4; LL| 1| countdown -= 4;
@ -64,7 +64,7 @@
LL| 1| if true { LL| 1| if true {
LL| 1| countdown = 1; LL| 1| countdown = 1;
LL| 1| } LL| 1| }
^0 ^0
LL| | LL| |
LL| 1| let z = if countdown > 7 { LL| 1| let z = if countdown > 7 {
^0 ^0

View File

@ -1,5 +1,5 @@
Function name: dead_code::main Function name: dead_code::main
Raw bytes (26): 0x[01, 01, 01, 01, 05, 04, 01, 1b, 01, 07, 0f, 05, 07, 10, 02, 06, 02, 02, 06, 00, 07, 01, 01, 01, 00, 02] Raw bytes (26): 0x[01, 01, 01, 01, 05, 04, 01, 1b, 01, 07, 0f, 05, 07, 10, 02, 06, 02, 02, 05, 00, 06, 01, 01, 01, 00, 02]
Number of files: 1 Number of files: 1
- file 0 => global file 1 - file 0 => global file 1
Number of expressions: 1 Number of expressions: 1
@ -7,32 +7,32 @@ Number of expressions: 1
Number of file 0 mappings: 4 Number of file 0 mappings: 4
- Code(Counter(0)) at (prev + 27, 1) to (start + 7, 15) - Code(Counter(0)) at (prev + 27, 1) to (start + 7, 15)
- Code(Counter(1)) at (prev + 7, 16) to (start + 2, 6) - Code(Counter(1)) at (prev + 7, 16) to (start + 2, 6)
- Code(Expression(0, Sub)) at (prev + 2, 6) to (start + 0, 7) - Code(Expression(0, Sub)) at (prev + 2, 5) to (start + 0, 6)
= (c0 - c1) = (c0 - c1)
- Code(Counter(0)) at (prev + 1, 1) to (start + 0, 2) - Code(Counter(0)) at (prev + 1, 1) to (start + 0, 2)
Highest counter ID seen: c1 Highest counter ID seen: c1
Function name: dead_code::unused_fn (unused) Function name: dead_code::unused_fn (unused)
Raw bytes (24): 0x[01, 01, 00, 04, 00, 0f, 01, 07, 0f, 00, 07, 10, 02, 06, 00, 02, 06, 00, 07, 00, 01, 01, 00, 02] Raw bytes (24): 0x[01, 01, 00, 04, 00, 0f, 01, 07, 0f, 00, 07, 10, 02, 06, 00, 02, 05, 00, 06, 00, 01, 01, 00, 02]
Number of files: 1 Number of files: 1
- file 0 => global file 1 - file 0 => global file 1
Number of expressions: 0 Number of expressions: 0
Number of file 0 mappings: 4 Number of file 0 mappings: 4
- Code(Zero) at (prev + 15, 1) to (start + 7, 15) - Code(Zero) at (prev + 15, 1) to (start + 7, 15)
- Code(Zero) at (prev + 7, 16) to (start + 2, 6) - Code(Zero) at (prev + 7, 16) to (start + 2, 6)
- Code(Zero) at (prev + 2, 6) to (start + 0, 7) - Code(Zero) at (prev + 2, 5) to (start + 0, 6)
- Code(Zero) at (prev + 1, 1) to (start + 0, 2) - Code(Zero) at (prev + 1, 1) to (start + 0, 2)
Highest counter ID seen: (none) Highest counter ID seen: (none)
Function name: dead_code::unused_pub_fn_not_in_library (unused) Function name: dead_code::unused_pub_fn_not_in_library (unused)
Raw bytes (24): 0x[01, 01, 00, 04, 00, 03, 01, 07, 0f, 00, 07, 10, 02, 06, 00, 02, 06, 00, 07, 00, 01, 01, 00, 02] Raw bytes (24): 0x[01, 01, 00, 04, 00, 03, 01, 07, 0f, 00, 07, 10, 02, 06, 00, 02, 05, 00, 06, 00, 01, 01, 00, 02]
Number of files: 1 Number of files: 1
- file 0 => global file 1 - file 0 => global file 1
Number of expressions: 0 Number of expressions: 0
Number of file 0 mappings: 4 Number of file 0 mappings: 4
- Code(Zero) at (prev + 3, 1) to (start + 7, 15) - Code(Zero) at (prev + 3, 1) to (start + 7, 15)
- Code(Zero) at (prev + 7, 16) to (start + 2, 6) - Code(Zero) at (prev + 7, 16) to (start + 2, 6)
- Code(Zero) at (prev + 2, 6) to (start + 0, 7) - Code(Zero) at (prev + 2, 5) to (start + 0, 6)
- Code(Zero) at (prev + 1, 1) to (start + 0, 2) - Code(Zero) at (prev + 1, 1) to (start + 0, 2)
Highest counter ID seen: (none) Highest counter ID seen: (none)

View File

@ -34,6 +34,6 @@
LL| 1| if is_true { LL| 1| if is_true {
LL| 1| countdown = 10; LL| 1| countdown = 10;
LL| 1| } LL| 1| }
^0 ^0
LL| 1|} LL| 1|}

View File

@ -1,5 +1,5 @@
Function name: if::main Function name: if::main
Raw bytes (26): 0x[01, 01, 01, 01, 05, 04, 01, 04, 01, 12, 10, 05, 13, 05, 05, 06, 02, 05, 06, 00, 07, 01, 01, 01, 00, 02] Raw bytes (26): 0x[01, 01, 01, 01, 05, 04, 01, 04, 01, 12, 10, 05, 13, 05, 05, 06, 02, 05, 05, 00, 06, 01, 01, 01, 00, 02]
Number of files: 1 Number of files: 1
- file 0 => global file 1 - file 0 => global file 1
Number of expressions: 1 Number of expressions: 1
@ -7,7 +7,7 @@ Number of expressions: 1
Number of file 0 mappings: 4 Number of file 0 mappings: 4
- Code(Counter(0)) at (prev + 4, 1) to (start + 18, 16) - Code(Counter(0)) at (prev + 4, 1) to (start + 18, 16)
- Code(Counter(1)) at (prev + 19, 5) to (start + 5, 6) - Code(Counter(1)) at (prev + 19, 5) to (start + 5, 6)
- Code(Expression(0, Sub)) at (prev + 5, 6) to (start + 0, 7) - Code(Expression(0, Sub)) at (prev + 5, 5) to (start + 0, 6)
= (c0 - c1) = (c0 - c1)
- Code(Counter(0)) at (prev + 1, 1) to (start + 0, 2) - Code(Counter(0)) at (prev + 1, 1) to (start + 0, 2)
Highest counter ID seen: c1 Highest counter ID seen: c1

View File

@ -26,6 +26,6 @@
LL| 1| 10 LL| 1| 10
LL| 1| ; LL| 1| ;
LL| 1| } LL| 1| }
^0 ^0
LL| 1|} LL| 1|}

View File

@ -1,5 +1,5 @@
Function name: if_not::if_not Function name: if_not::if_not
Raw bytes (60): 0x[01, 01, 03, 01, 05, 01, 09, 01, 0d, 0a, 01, 05, 01, 03, 0d, 02, 04, 05, 02, 06, 05, 02, 06, 00, 07, 01, 03, 09, 01, 0d, 06, 02, 05, 02, 06, 09, 02, 06, 00, 07, 01, 03, 09, 01, 0d, 0a, 02, 05, 02, 06, 0d, 02, 0c, 02, 06, 01, 03, 01, 00, 02] Raw bytes (60): 0x[01, 01, 03, 01, 05, 01, 09, 01, 0d, 0a, 01, 05, 01, 03, 0d, 02, 04, 05, 02, 06, 05, 02, 05, 00, 06, 01, 03, 09, 01, 0d, 06, 02, 05, 02, 06, 09, 02, 05, 00, 06, 01, 03, 09, 01, 0d, 0a, 02, 05, 02, 06, 0d, 02, 0c, 02, 06, 01, 03, 01, 00, 02]
Number of files: 1 Number of files: 1
- file 0 => global file 1 - file 0 => global file 1
Number of expressions: 3 Number of expressions: 3
@ -10,11 +10,11 @@ Number of file 0 mappings: 10
- Code(Counter(0)) at (prev + 5, 1) to (start + 3, 13) - Code(Counter(0)) at (prev + 5, 1) to (start + 3, 13)
- Code(Expression(0, Sub)) at (prev + 4, 5) to (start + 2, 6) - Code(Expression(0, Sub)) at (prev + 4, 5) to (start + 2, 6)
= (c0 - c1) = (c0 - c1)
- Code(Counter(1)) at (prev + 2, 6) to (start + 0, 7) - Code(Counter(1)) at (prev + 2, 5) to (start + 0, 6)
- Code(Counter(0)) at (prev + 3, 9) to (start + 1, 13) - Code(Counter(0)) at (prev + 3, 9) to (start + 1, 13)
- Code(Expression(1, Sub)) at (prev + 2, 5) to (start + 2, 6) - Code(Expression(1, Sub)) at (prev + 2, 5) to (start + 2, 6)
= (c0 - c2) = (c0 - c2)
- Code(Counter(2)) at (prev + 2, 6) to (start + 0, 7) - Code(Counter(2)) at (prev + 2, 5) to (start + 0, 6)
- Code(Counter(0)) at (prev + 3, 9) to (start + 1, 13) - Code(Counter(0)) at (prev + 3, 9) to (start + 1, 13)
- Code(Expression(2, Sub)) at (prev + 2, 5) to (start + 2, 6) - Code(Expression(2, Sub)) at (prev + 2, 5) to (start + 2, 6)
= (c0 - c3) = (c0 - c3)

View File

@ -17,7 +17,7 @@ Number of file 0 mappings: 1
Highest counter ID seen: c0 Highest counter ID seen: c0
Function name: inner_items::main Function name: inner_items::main
Raw bytes (43): 0x[01, 01, 02, 01, 05, 01, 09, 07, 01, 03, 01, 07, 0f, 05, 07, 10, 02, 06, 02, 02, 06, 00, 07, 01, 24, 08, 00, 0f, 09, 00, 10, 02, 06, 06, 02, 06, 00, 07, 01, 02, 09, 05, 02] Raw bytes (43): 0x[01, 01, 02, 01, 05, 01, 09, 07, 01, 03, 01, 07, 0f, 05, 07, 10, 02, 06, 02, 02, 05, 00, 06, 01, 24, 08, 00, 0f, 09, 00, 10, 02, 06, 06, 02, 05, 00, 06, 01, 02, 09, 05, 02]
Number of files: 1 Number of files: 1
- file 0 => global file 1 - file 0 => global file 1
Number of expressions: 2 Number of expressions: 2
@ -26,11 +26,11 @@ Number of expressions: 2
Number of file 0 mappings: 7 Number of file 0 mappings: 7
- Code(Counter(0)) at (prev + 3, 1) to (start + 7, 15) - Code(Counter(0)) at (prev + 3, 1) to (start + 7, 15)
- Code(Counter(1)) at (prev + 7, 16) to (start + 2, 6) - Code(Counter(1)) at (prev + 7, 16) to (start + 2, 6)
- Code(Expression(0, Sub)) at (prev + 2, 6) to (start + 0, 7) - Code(Expression(0, Sub)) at (prev + 2, 5) to (start + 0, 6)
= (c0 - c1) = (c0 - c1)
- Code(Counter(0)) at (prev + 36, 8) to (start + 0, 15) - Code(Counter(0)) at (prev + 36, 8) to (start + 0, 15)
- Code(Counter(2)) at (prev + 0, 16) to (start + 2, 6) - Code(Counter(2)) at (prev + 0, 16) to (start + 2, 6)
- Code(Expression(1, Sub)) at (prev + 2, 6) to (start + 0, 7) - Code(Expression(1, Sub)) at (prev + 2, 5) to (start + 0, 6)
= (c0 - c2) = (c0 - c2)
- Code(Counter(0)) at (prev + 2, 9) to (start + 5, 2) - Code(Counter(0)) at (prev + 2, 9) to (start + 5, 2)
Highest counter ID seen: c2 Highest counter ID seen: c2

View File

@ -10,7 +10,7 @@
LL| 1| if is_true { LL| 1| if is_true {
LL| 1| countdown = 10; LL| 1| countdown = 10;
LL| 1| } LL| 1| }
^0 ^0
LL| | LL| |
LL| | mod in_mod { LL| | mod in_mod {
LL| | const IN_MOD_CONST: u32 = 1000; LL| | const IN_MOD_CONST: u32 = 1000;
@ -49,7 +49,7 @@
LL| 1| if is_true { LL| 1| if is_true {
LL| 1| in_func(countdown); LL| 1| in_func(countdown);
LL| 1| } LL| 1| }
^0 ^0
LL| | LL| |
LL| 1| let mut val = InStruct { LL| 1| let mut val = InStruct {
LL| 1| in_struct_field: 101, // LL| 1| in_struct_field: 101, //

View File

@ -1,5 +1,5 @@
Function name: lazy_boolean::main Function name: lazy_boolean::main
Raw bytes (158): 0x[01, 01, 07, 01, 05, 01, 09, 01, 0d, 01, 19, 01, 1d, 01, 21, 01, 25, 1c, 01, 04, 01, 07, 0f, 05, 07, 10, 04, 06, 02, 04, 06, 00, 07, 01, 02, 09, 00, 11, 01, 02, 0d, 00, 12, 06, 02, 0d, 00, 12, 01, 03, 09, 00, 11, 01, 02, 0d, 00, 12, 0a, 02, 0d, 00, 12, 01, 02, 09, 00, 11, 01, 00, 14, 00, 19, 11, 00, 1d, 00, 22, 01, 01, 09, 00, 11, 01, 00, 14, 00, 19, 15, 00, 1d, 00, 22, 01, 03, 09, 01, 10, 0e, 02, 05, 03, 06, 19, 03, 06, 00, 07, 01, 03, 09, 00, 10, 1d, 01, 05, 03, 06, 12, 05, 05, 03, 06, 01, 05, 08, 00, 10, 16, 00, 11, 02, 06, 21, 02, 06, 00, 07, 01, 02, 08, 00, 0f, 25, 00, 10, 02, 06, 1a, 02, 0c, 02, 06, 01, 03, 01, 00, 02] Raw bytes (158): 0x[01, 01, 07, 01, 05, 01, 09, 01, 0d, 01, 19, 01, 1d, 01, 21, 01, 25, 1c, 01, 04, 01, 07, 0f, 05, 07, 10, 04, 06, 02, 04, 05, 00, 06, 01, 02, 09, 00, 11, 01, 02, 0d, 00, 12, 06, 02, 0d, 00, 12, 01, 03, 09, 00, 11, 01, 02, 0d, 00, 12, 0a, 02, 0d, 00, 12, 01, 02, 09, 00, 11, 01, 00, 14, 00, 19, 11, 00, 1d, 00, 22, 01, 01, 09, 00, 11, 01, 00, 14, 00, 19, 15, 00, 1d, 00, 22, 01, 03, 09, 01, 10, 0e, 02, 05, 03, 06, 19, 03, 05, 00, 06, 01, 03, 09, 00, 10, 1d, 01, 05, 03, 06, 12, 05, 05, 03, 06, 01, 05, 08, 00, 10, 16, 00, 11, 02, 06, 21, 02, 05, 00, 06, 01, 02, 08, 00, 0f, 25, 00, 10, 02, 06, 1a, 02, 0c, 02, 06, 01, 03, 01, 00, 02]
Number of files: 1 Number of files: 1
- file 0 => global file 1 - file 0 => global file 1
Number of expressions: 7 Number of expressions: 7
@ -13,7 +13,7 @@ Number of expressions: 7
Number of file 0 mappings: 28 Number of file 0 mappings: 28
- Code(Counter(0)) at (prev + 4, 1) to (start + 7, 15) - Code(Counter(0)) at (prev + 4, 1) to (start + 7, 15)
- Code(Counter(1)) at (prev + 7, 16) to (start + 4, 6) - Code(Counter(1)) at (prev + 7, 16) to (start + 4, 6)
- Code(Expression(0, Sub)) at (prev + 4, 6) to (start + 0, 7) - Code(Expression(0, Sub)) at (prev + 4, 5) to (start + 0, 6)
= (c0 - c1) = (c0 - c1)
- Code(Counter(0)) at (prev + 2, 9) to (start + 0, 17) - Code(Counter(0)) at (prev + 2, 9) to (start + 0, 17)
- Code(Counter(0)) at (prev + 2, 13) to (start + 0, 18) - Code(Counter(0)) at (prev + 2, 13) to (start + 0, 18)
@ -32,7 +32,7 @@ Number of file 0 mappings: 28
- Code(Counter(0)) at (prev + 3, 9) to (start + 1, 16) - Code(Counter(0)) at (prev + 3, 9) to (start + 1, 16)
- Code(Expression(3, Sub)) at (prev + 2, 5) to (start + 3, 6) - Code(Expression(3, Sub)) at (prev + 2, 5) to (start + 3, 6)
= (c0 - c6) = (c0 - c6)
- Code(Counter(6)) at (prev + 3, 6) to (start + 0, 7) - Code(Counter(6)) at (prev + 3, 5) to (start + 0, 6)
- Code(Counter(0)) at (prev + 3, 9) to (start + 0, 16) - Code(Counter(0)) at (prev + 3, 9) to (start + 0, 16)
- Code(Counter(7)) at (prev + 1, 5) to (start + 3, 6) - Code(Counter(7)) at (prev + 1, 5) to (start + 3, 6)
- Code(Expression(4, Sub)) at (prev + 5, 5) to (start + 3, 6) - Code(Expression(4, Sub)) at (prev + 5, 5) to (start + 3, 6)
@ -40,7 +40,7 @@ Number of file 0 mappings: 28
- Code(Counter(0)) at (prev + 5, 8) to (start + 0, 16) - Code(Counter(0)) at (prev + 5, 8) to (start + 0, 16)
- Code(Expression(5, Sub)) at (prev + 0, 17) to (start + 2, 6) - Code(Expression(5, Sub)) at (prev + 0, 17) to (start + 2, 6)
= (c0 - c8) = (c0 - c8)
- Code(Counter(8)) at (prev + 2, 6) to (start + 0, 7) - Code(Counter(8)) at (prev + 2, 5) to (start + 0, 6)
- Code(Counter(0)) at (prev + 2, 8) to (start + 0, 15) - Code(Counter(0)) at (prev + 2, 8) to (start + 0, 15)
- Code(Counter(9)) at (prev + 0, 16) to (start + 2, 6) - Code(Counter(9)) at (prev + 0, 16) to (start + 2, 6)
- Code(Expression(6, Sub)) at (prev + 2, 12) to (start + 2, 6) - Code(Expression(6, Sub)) at (prev + 2, 12) to (start + 2, 6)

View File

@ -13,7 +13,7 @@
LL| 1| b = 10; LL| 1| b = 10;
LL| 1| c = 100; LL| 1| c = 100;
LL| 1| } LL| 1| }
^0 ^0
LL| | let LL| | let
LL| 1| somebool LL| 1| somebool
LL| | = LL| | =

View File

@ -1,5 +1,5 @@
Function name: loop_break::main Function name: loop_break::main
Raw bytes (31): 0x[01, 01, 01, 01, 05, 05, 01, 03, 01, 00, 0b, 03, 02, 0c, 00, 27, 01, 01, 0d, 00, 12, 05, 01, 0a, 00, 0b, 01, 02, 01, 00, 02] Raw bytes (31): 0x[01, 01, 01, 01, 05, 05, 01, 03, 01, 00, 0b, 03, 02, 0c, 00, 27, 01, 01, 0d, 00, 12, 05, 01, 09, 00, 0a, 01, 02, 01, 00, 02]
Number of files: 1 Number of files: 1
- file 0 => global file 1 - file 0 => global file 1
Number of expressions: 1 Number of expressions: 1
@ -9,7 +9,7 @@ Number of file 0 mappings: 5
- Code(Expression(0, Add)) at (prev + 2, 12) to (start + 0, 39) - Code(Expression(0, Add)) at (prev + 2, 12) to (start + 0, 39)
= (c0 + c1) = (c0 + c1)
- Code(Counter(0)) at (prev + 1, 13) to (start + 0, 18) - Code(Counter(0)) at (prev + 1, 13) to (start + 0, 18)
- Code(Counter(1)) at (prev + 1, 10) to (start + 0, 11) - Code(Counter(1)) at (prev + 1, 9) to (start + 0, 10)
- Code(Counter(0)) at (prev + 2, 1) to (start + 0, 2) - Code(Counter(0)) at (prev + 2, 1) to (start + 0, 2)
Highest counter ID seen: c1 Highest counter ID seen: c1

View File

@ -1,5 +1,5 @@
Function name: <loops_branches::DebugTest as core::fmt::Debug>::fmt Function name: <loops_branches::DebugTest as core::fmt::Debug>::fmt
Raw bytes (228): 0x[01, 01, 2a, 05, 00, 9f, 01, 19, a3, 01, a7, 01, 0d, 00, 11, 00, a3, 01, a7, 01, 0d, 00, 11, 00, 9f, 01, 19, a3, 01, a7, 01, 0d, 00, 11, 00, 9a, 01, 00, 9f, 01, 19, a3, 01, a7, 01, 0d, 00, 11, 00, 96, 01, 00, 9a, 01, 00, 9f, 01, 19, a3, 01, a7, 01, 0d, 00, 11, 00, 9a, 01, 00, 9f, 01, 19, a3, 01, a7, 01, 0d, 00, 11, 00, 96, 01, 11, 9a, 01, 00, 9f, 01, 19, a3, 01, a7, 01, 0d, 00, 11, 00, 8f, 01, 19, 25, 92, 01, 96, 01, 11, 9a, 01, 00, 9f, 01, 19, a3, 01, a7, 01, 0d, 00, 11, 00, 14, 01, 09, 05, 01, 10, 05, 02, 10, 00, 15, 00, 01, 17, 00, 1b, 00, 00, 1c, 00, 1e, 02, 01, 0e, 00, 0f, 05, 01, 0d, 00, 1e, 25, 00, 1e, 00, 1f, 00, 01, 10, 01, 0a, 9a, 01, 03, 0d, 00, 0e, 9f, 01, 00, 12, 00, 17, 9a, 01, 01, 10, 00, 14, 96, 01, 01, 14, 00, 19, 00, 01, 1b, 00, 1f, 00, 00, 20, 00, 22, 46, 01, 12, 00, 13, 96, 01, 01, 11, 00, 22, 92, 01, 00, 22, 00, 23, 00, 01, 14, 01, 0e, 19, 03, 09, 00, 0f, 8b, 01, 01, 05, 00, 06] Raw bytes (228): 0x[01, 01, 2a, 05, 00, 9f, 01, 19, a3, 01, a7, 01, 0d, 00, 11, 00, a3, 01, a7, 01, 0d, 00, 11, 00, 9f, 01, 19, a3, 01, a7, 01, 0d, 00, 11, 00, 9a, 01, 00, 9f, 01, 19, a3, 01, a7, 01, 0d, 00, 11, 00, 96, 01, 00, 9a, 01, 00, 9f, 01, 19, a3, 01, a7, 01, 0d, 00, 11, 00, 9a, 01, 00, 9f, 01, 19, a3, 01, a7, 01, 0d, 00, 11, 00, 96, 01, 11, 9a, 01, 00, 9f, 01, 19, a3, 01, a7, 01, 0d, 00, 11, 00, 8f, 01, 19, 25, 92, 01, 96, 01, 11, 9a, 01, 00, 9f, 01, 19, a3, 01, a7, 01, 0d, 00, 11, 00, 14, 01, 09, 05, 01, 10, 05, 02, 10, 00, 15, 00, 01, 17, 00, 1b, 00, 00, 1c, 00, 1e, 02, 01, 0d, 00, 0e, 05, 01, 0d, 00, 1e, 25, 00, 1e, 00, 1f, 00, 01, 10, 01, 0a, 9a, 01, 03, 0d, 00, 0e, 9f, 01, 00, 12, 00, 17, 9a, 01, 01, 10, 00, 14, 96, 01, 01, 14, 00, 19, 00, 01, 1b, 00, 1f, 00, 00, 20, 00, 22, 46, 01, 11, 00, 12, 96, 01, 01, 11, 00, 22, 92, 01, 00, 22, 00, 23, 00, 01, 14, 01, 0e, 19, 03, 09, 00, 0f, 8b, 01, 01, 05, 00, 06]
Number of files: 1 Number of files: 1
- file 0 => global file 1 - file 0 => global file 1
Number of expressions: 42 Number of expressions: 42
@ -50,7 +50,7 @@ Number of file 0 mappings: 20
- Code(Counter(1)) at (prev + 2, 16) to (start + 0, 21) - Code(Counter(1)) at (prev + 2, 16) to (start + 0, 21)
- Code(Zero) at (prev + 1, 23) to (start + 0, 27) - Code(Zero) at (prev + 1, 23) to (start + 0, 27)
- Code(Zero) at (prev + 0, 28) to (start + 0, 30) - Code(Zero) at (prev + 0, 28) to (start + 0, 30)
- Code(Expression(0, Sub)) at (prev + 1, 14) to (start + 0, 15) - Code(Expression(0, Sub)) at (prev + 1, 13) to (start + 0, 14)
= (c1 - Zero) = (c1 - Zero)
- Code(Counter(1)) at (prev + 1, 13) to (start + 0, 30) - Code(Counter(1)) at (prev + 1, 13) to (start + 0, 30)
- Code(Counter(9)) at (prev + 0, 30) to (start + 0, 31) - Code(Counter(9)) at (prev + 0, 30) to (start + 0, 31)
@ -65,7 +65,7 @@ Number of file 0 mappings: 20
= ((((c3 + Zero) + (c4 + Zero)) - c6) - Zero) = ((((c3 + Zero) + (c4 + Zero)) - c6) - Zero)
- Code(Zero) at (prev + 1, 27) to (start + 0, 31) - Code(Zero) at (prev + 1, 27) to (start + 0, 31)
- Code(Zero) at (prev + 0, 32) to (start + 0, 34) - Code(Zero) at (prev + 0, 32) to (start + 0, 34)
- Code(Expression(17, Sub)) at (prev + 1, 18) to (start + 0, 19) - Code(Expression(17, Sub)) at (prev + 1, 17) to (start + 0, 18)
= (((((c3 + Zero) + (c4 + Zero)) - c6) - Zero) - Zero) = (((((c3 + Zero) + (c4 + Zero)) - c6) - Zero) - Zero)
- Code(Expression(37, Sub)) at (prev + 1, 17) to (start + 0, 34) - Code(Expression(37, Sub)) at (prev + 1, 17) to (start + 0, 34)
= ((((c3 + Zero) + (c4 + Zero)) - c6) - Zero) = ((((c3 + Zero) + (c4 + Zero)) - c6) - Zero)
@ -78,7 +78,7 @@ Number of file 0 mappings: 20
Highest counter ID seen: c9 Highest counter ID seen: c9
Function name: <loops_branches::DisplayTest as core::fmt::Display>::fmt Function name: <loops_branches::DisplayTest as core::fmt::Display>::fmt
Raw bytes (230): 0x[01, 01, 2b, 01, 00, 02, 00, a3, 01, 19, a7, 01, ab, 01, 00, 0d, 00, 15, a7, 01, ab, 01, 00, 0d, 00, 15, a3, 01, 19, a7, 01, ab, 01, 00, 0d, 00, 15, 9e, 01, 00, a3, 01, 19, a7, 01, ab, 01, 00, 0d, 00, 15, 9a, 01, 00, 9e, 01, 00, a3, 01, 19, a7, 01, ab, 01, 00, 0d, 00, 15, 9e, 01, 00, a3, 01, 19, a7, 01, ab, 01, 00, 0d, 00, 15, 9a, 01, 15, 9e, 01, 00, a3, 01, 19, a7, 01, ab, 01, 00, 0d, 00, 15, 93, 01, 25, 96, 01, 19, 9a, 01, 15, 9e, 01, 00, a3, 01, 19, a7, 01, ab, 01, 00, 0d, 00, 15, 14, 01, 22, 05, 01, 11, 00, 01, 12, 01, 0a, 02, 02, 10, 00, 15, 00, 01, 17, 00, 1b, 00, 00, 1c, 00, 1e, 06, 01, 0e, 00, 0f, 02, 01, 0d, 00, 1e, 25, 00, 1e, 00, 1f, 9e, 01, 02, 0d, 00, 0e, a3, 01, 00, 12, 00, 17, 9e, 01, 01, 10, 00, 15, 00, 00, 16, 01, 0e, 9a, 01, 02, 14, 00, 19, 00, 01, 1b, 00, 1f, 00, 00, 20, 00, 22, 4a, 01, 12, 00, 13, 9a, 01, 01, 11, 00, 22, 96, 01, 00, 22, 00, 23, 19, 03, 09, 00, 0f, 8f, 01, 01, 05, 00, 06] Raw bytes (230): 0x[01, 01, 2b, 01, 00, 02, 00, a3, 01, 19, a7, 01, ab, 01, 00, 0d, 00, 15, a7, 01, ab, 01, 00, 0d, 00, 15, a3, 01, 19, a7, 01, ab, 01, 00, 0d, 00, 15, 9e, 01, 00, a3, 01, 19, a7, 01, ab, 01, 00, 0d, 00, 15, 9a, 01, 00, 9e, 01, 00, a3, 01, 19, a7, 01, ab, 01, 00, 0d, 00, 15, 9e, 01, 00, a3, 01, 19, a7, 01, ab, 01, 00, 0d, 00, 15, 9a, 01, 15, 9e, 01, 00, a3, 01, 19, a7, 01, ab, 01, 00, 0d, 00, 15, 93, 01, 25, 96, 01, 19, 9a, 01, 15, 9e, 01, 00, a3, 01, 19, a7, 01, ab, 01, 00, 0d, 00, 15, 14, 01, 22, 05, 01, 11, 00, 01, 12, 01, 0a, 02, 02, 10, 00, 15, 00, 01, 17, 00, 1b, 00, 00, 1c, 00, 1e, 06, 01, 0d, 00, 0e, 02, 01, 0d, 00, 1e, 25, 00, 1e, 00, 1f, 9e, 01, 02, 0d, 00, 0e, a3, 01, 00, 12, 00, 17, 9e, 01, 01, 10, 00, 15, 00, 00, 16, 01, 0e, 9a, 01, 02, 14, 00, 19, 00, 01, 1b, 00, 1f, 00, 00, 20, 00, 22, 4a, 01, 11, 00, 12, 9a, 01, 01, 11, 00, 22, 96, 01, 00, 22, 00, 23, 19, 03, 09, 00, 0f, 8f, 01, 01, 05, 00, 06]
Number of files: 1 Number of files: 1
- file 0 => global file 1 - file 0 => global file 1
Number of expressions: 43 Number of expressions: 43
@ -132,7 +132,7 @@ Number of file 0 mappings: 20
= (c0 - Zero) = (c0 - Zero)
- Code(Zero) at (prev + 1, 23) to (start + 0, 27) - Code(Zero) at (prev + 1, 23) to (start + 0, 27)
- Code(Zero) at (prev + 0, 28) to (start + 0, 30) - Code(Zero) at (prev + 0, 28) to (start + 0, 30)
- Code(Expression(1, Sub)) at (prev + 1, 14) to (start + 0, 15) - Code(Expression(1, Sub)) at (prev + 1, 13) to (start + 0, 14)
= ((c0 - Zero) - Zero) = ((c0 - Zero) - Zero)
- Code(Expression(0, Sub)) at (prev + 1, 13) to (start + 0, 30) - Code(Expression(0, Sub)) at (prev + 1, 13) to (start + 0, 30)
= (c0 - Zero) = (c0 - Zero)
@ -148,7 +148,7 @@ Number of file 0 mappings: 20
= ((((Zero + c3) + (Zero + c5)) - c6) - Zero) = ((((Zero + c3) + (Zero + c5)) - c6) - Zero)
- Code(Zero) at (prev + 1, 27) to (start + 0, 31) - Code(Zero) at (prev + 1, 27) to (start + 0, 31)
- Code(Zero) at (prev + 0, 32) to (start + 0, 34) - Code(Zero) at (prev + 0, 32) to (start + 0, 34)
- Code(Expression(18, Sub)) at (prev + 1, 18) to (start + 0, 19) - Code(Expression(18, Sub)) at (prev + 1, 17) to (start + 0, 18)
= (((((Zero + c3) + (Zero + c5)) - c6) - Zero) - Zero) = (((((Zero + c3) + (Zero + c5)) - c6) - Zero) - Zero)
- Code(Expression(38, Sub)) at (prev + 1, 17) to (start + 0, 34) - Code(Expression(38, Sub)) at (prev + 1, 17) to (start + 0, 34)
= ((((Zero + c3) + (Zero + c5)) - c6) - Zero) = ((((Zero + c3) + (Zero + c5)) - c6) - Zero)

View File

@ -1,5 +1,5 @@
Function name: match_or_pattern::main Function name: match_or_pattern::main
Raw bytes (185): 0x[01, 01, 1c, 01, 05, 09, 0d, 23, 11, 09, 0d, 1f, 15, 23, 11, 09, 0d, 23, 11, 09, 0d, 19, 1d, 43, 21, 19, 1d, 3f, 25, 43, 21, 19, 1d, 43, 21, 19, 1d, 29, 2d, 63, 31, 29, 2d, 5f, 35, 63, 31, 29, 2d, 63, 31, 29, 2d, 39, 3d, 6f, 41, 39, 3d, 19, 01, 01, 01, 08, 0f, 05, 08, 10, 03, 06, 02, 03, 06, 00, 07, 01, 01, 0b, 00, 11, 11, 03, 1b, 00, 1d, 23, 01, 0e, 00, 10, 1f, 02, 08, 00, 0f, 15, 00, 10, 03, 06, 12, 03, 06, 00, 07, 1f, 01, 0b, 00, 11, 21, 01, 1b, 00, 1d, 43, 01, 0e, 00, 10, 3f, 02, 08, 00, 0f, 25, 00, 10, 03, 06, 32, 03, 06, 00, 07, 3f, 01, 0b, 00, 11, 31, 01, 1b, 00, 1d, 63, 01, 0e, 00, 10, 5f, 02, 08, 00, 0f, 35, 00, 10, 03, 06, 52, 03, 06, 00, 07, 5f, 01, 0b, 00, 11, 41, 01, 1b, 00, 1d, 6f, 01, 0e, 00, 10, 6b, 02, 01, 00, 02] Raw bytes (185): 0x[01, 01, 1c, 01, 05, 09, 0d, 23, 11, 09, 0d, 1f, 15, 23, 11, 09, 0d, 23, 11, 09, 0d, 19, 1d, 43, 21, 19, 1d, 3f, 25, 43, 21, 19, 1d, 43, 21, 19, 1d, 29, 2d, 63, 31, 29, 2d, 5f, 35, 63, 31, 29, 2d, 63, 31, 29, 2d, 39, 3d, 6f, 41, 39, 3d, 19, 01, 01, 01, 08, 0f, 05, 08, 10, 03, 06, 02, 03, 05, 00, 06, 01, 01, 0b, 00, 11, 11, 03, 1b, 00, 1d, 23, 01, 0e, 00, 10, 1f, 02, 08, 00, 0f, 15, 00, 10, 03, 06, 12, 03, 05, 00, 06, 1f, 01, 0b, 00, 11, 21, 01, 1b, 00, 1d, 43, 01, 0e, 00, 10, 3f, 02, 08, 00, 0f, 25, 00, 10, 03, 06, 32, 03, 05, 00, 06, 3f, 01, 0b, 00, 11, 31, 01, 1b, 00, 1d, 63, 01, 0e, 00, 10, 5f, 02, 08, 00, 0f, 35, 00, 10, 03, 06, 52, 03, 05, 00, 06, 5f, 01, 0b, 00, 11, 41, 01, 1b, 00, 1d, 6f, 01, 0e, 00, 10, 6b, 02, 01, 00, 02]
Number of files: 1 Number of files: 1
- file 0 => global file 1 - file 0 => global file 1
Number of expressions: 28 Number of expressions: 28
@ -34,7 +34,7 @@ Number of expressions: 28
Number of file 0 mappings: 25 Number of file 0 mappings: 25
- Code(Counter(0)) at (prev + 1, 1) to (start + 8, 15) - Code(Counter(0)) at (prev + 1, 1) to (start + 8, 15)
- Code(Counter(1)) at (prev + 8, 16) to (start + 3, 6) - Code(Counter(1)) at (prev + 8, 16) to (start + 3, 6)
- Code(Expression(0, Sub)) at (prev + 3, 6) to (start + 0, 7) - Code(Expression(0, Sub)) at (prev + 3, 5) to (start + 0, 6)
= (c0 - c1) = (c0 - c1)
- Code(Counter(0)) at (prev + 1, 11) to (start + 0, 17) - Code(Counter(0)) at (prev + 1, 11) to (start + 0, 17)
- Code(Counter(4)) at (prev + 3, 27) to (start + 0, 29) - Code(Counter(4)) at (prev + 3, 27) to (start + 0, 29)
@ -43,7 +43,7 @@ Number of file 0 mappings: 25
- Code(Expression(7, Add)) at (prev + 2, 8) to (start + 0, 15) - Code(Expression(7, Add)) at (prev + 2, 8) to (start + 0, 15)
= ((c2 + c3) + c4) = ((c2 + c3) + c4)
- Code(Counter(5)) at (prev + 0, 16) to (start + 3, 6) - Code(Counter(5)) at (prev + 0, 16) to (start + 3, 6)
- Code(Expression(4, Sub)) at (prev + 3, 6) to (start + 0, 7) - Code(Expression(4, Sub)) at (prev + 3, 5) to (start + 0, 6)
= (((c2 + c3) + c4) - c5) = (((c2 + c3) + c4) - c5)
- Code(Expression(7, Add)) at (prev + 1, 11) to (start + 0, 17) - Code(Expression(7, Add)) at (prev + 1, 11) to (start + 0, 17)
= ((c2 + c3) + c4) = ((c2 + c3) + c4)
@ -53,7 +53,7 @@ Number of file 0 mappings: 25
- Code(Expression(15, Add)) at (prev + 2, 8) to (start + 0, 15) - Code(Expression(15, Add)) at (prev + 2, 8) to (start + 0, 15)
= ((c6 + c7) + c8) = ((c6 + c7) + c8)
- Code(Counter(9)) at (prev + 0, 16) to (start + 3, 6) - Code(Counter(9)) at (prev + 0, 16) to (start + 3, 6)
- Code(Expression(12, Sub)) at (prev + 3, 6) to (start + 0, 7) - Code(Expression(12, Sub)) at (prev + 3, 5) to (start + 0, 6)
= (((c6 + c7) + c8) - c9) = (((c6 + c7) + c8) - c9)
- Code(Expression(15, Add)) at (prev + 1, 11) to (start + 0, 17) - Code(Expression(15, Add)) at (prev + 1, 11) to (start + 0, 17)
= ((c6 + c7) + c8) = ((c6 + c7) + c8)
@ -63,7 +63,7 @@ Number of file 0 mappings: 25
- Code(Expression(23, Add)) at (prev + 2, 8) to (start + 0, 15) - Code(Expression(23, Add)) at (prev + 2, 8) to (start + 0, 15)
= ((c10 + c11) + c12) = ((c10 + c11) + c12)
- Code(Counter(13)) at (prev + 0, 16) to (start + 3, 6) - Code(Counter(13)) at (prev + 0, 16) to (start + 3, 6)
- Code(Expression(20, Sub)) at (prev + 3, 6) to (start + 0, 7) - Code(Expression(20, Sub)) at (prev + 3, 5) to (start + 0, 6)
= (((c10 + c11) + c12) - c13) = (((c10 + c11) + c12) - c13)
- Code(Expression(23, Add)) at (prev + 1, 11) to (start + 0, 17) - Code(Expression(23, Add)) at (prev + 1, 11) to (start + 0, 17)
= ((c10 + c11) + c12) = ((c10 + c11) + c12)

View File

@ -10,7 +10,7 @@
LL| 1| a = 2; LL| 1| a = 2;
LL| 1| b = 0; LL| 1| b = 0;
LL| 1| } LL| 1| }
^0 ^0
LL| 1| match (a, b) { LL| 1| match (a, b) {
LL| | // Or patterns generate MIR `SwitchInt` with multiple targets to the same `BasicBlock`. LL| | // Or patterns generate MIR `SwitchInt` with multiple targets to the same `BasicBlock`.
LL| | // This test confirms a fix for Issue #79569. LL| | // This test confirms a fix for Issue #79569.
@ -21,7 +21,7 @@
LL| 1| a = 0; LL| 1| a = 0;
LL| 1| b = 0; LL| 1| b = 0;
LL| 1| } LL| 1| }
^0 ^0
LL| 1| match (a, b) { LL| 1| match (a, b) {
LL| 0| (0 | 1, 2 | 3) => {} LL| 0| (0 | 1, 2 | 3) => {}
LL| 1| _ => {} LL| 1| _ => {}
@ -30,7 +30,7 @@
LL| 1| a = 2; LL| 1| a = 2;
LL| 1| b = 2; LL| 1| b = 2;
LL| 1| } LL| 1| }
^0 ^0
LL| 1| match (a, b) { LL| 1| match (a, b) {
LL| 0| (0 | 1, 2 | 3) => {} LL| 0| (0 | 1, 2 | 3) => {}
LL| 1| _ => {} LL| 1| _ => {}
@ -39,7 +39,7 @@
LL| 1| a = 0; LL| 1| a = 0;
LL| 1| b = 2; LL| 1| b = 2;
LL| 1| } LL| 1| }
^0 ^0
LL| 1| match (a, b) { LL| 1| match (a, b) {
LL| 1| (0 | 1, 2 | 3) => {} LL| 1| (0 | 1, 2 | 3) => {}
LL| 0| _ => {} LL| 0| _ => {}

View File

@ -1,5 +1,5 @@
Function name: condition_limit::accept_7_conditions Function name: condition_limit::accept_7_conditions
Raw bytes (232): 0x[01, 01, 2c, 01, 05, 05, 1d, 05, 1d, 7a, 19, 05, 1d, 7a, 19, 05, 1d, 76, 15, 7a, 19, 05, 1d, 76, 15, 7a, 19, 05, 1d, 72, 11, 76, 15, 7a, 19, 05, 1d, 72, 11, 76, 15, 7a, 19, 05, 1d, 6e, 0d, 72, 11, 76, 15, 7a, 19, 05, 1d, 6e, 0d, 72, 11, 76, 15, 7a, 19, 05, 1d, 9f, 01, 02, a3, 01, 1d, a7, 01, 19, ab, 01, 15, af, 01, 11, 09, 0d, 21, 9b, 01, 9f, 01, 02, a3, 01, 1d, a7, 01, 19, ab, 01, 15, af, 01, 11, 09, 0d, 12, 01, 07, 01, 02, 09, 28, 08, 07, 02, 08, 00, 27, 30, 05, 02, 01, 07, 00, 00, 08, 00, 09, 05, 00, 0d, 00, 0e, 30, 7a, 1d, 07, 06, 00, 00, 0d, 00, 0e, 7a, 00, 12, 00, 13, 30, 76, 19, 06, 05, 00, 00, 12, 00, 13, 76, 00, 17, 00, 18, 30, 72, 15, 05, 04, 00, 00, 17, 00, 18, 72, 00, 1c, 00, 1d, 30, 6e, 11, 04, 03, 00, 00, 1c, 00, 1d, 6e, 00, 21, 00, 22, 30, 6a, 0d, 03, 02, 00, 00, 21, 00, 22, 6a, 00, 26, 00, 27, 30, 21, 09, 02, 00, 00, 00, 26, 00, 27, 21, 00, 28, 02, 06, 9b, 01, 02, 06, 00, 07, 97, 01, 01, 01, 00, 02] Raw bytes (232): 0x[01, 01, 2c, 01, 05, 05, 1d, 05, 1d, 7a, 19, 05, 1d, 7a, 19, 05, 1d, 76, 15, 7a, 19, 05, 1d, 76, 15, 7a, 19, 05, 1d, 72, 11, 76, 15, 7a, 19, 05, 1d, 72, 11, 76, 15, 7a, 19, 05, 1d, 6e, 0d, 72, 11, 76, 15, 7a, 19, 05, 1d, 6e, 0d, 72, 11, 76, 15, 7a, 19, 05, 1d, 9f, 01, 02, a3, 01, 1d, a7, 01, 19, ab, 01, 15, af, 01, 11, 09, 0d, 21, 9b, 01, 9f, 01, 02, a3, 01, 1d, a7, 01, 19, ab, 01, 15, af, 01, 11, 09, 0d, 12, 01, 07, 01, 02, 09, 28, 08, 07, 02, 08, 00, 27, 30, 05, 02, 01, 07, 00, 00, 08, 00, 09, 05, 00, 0d, 00, 0e, 30, 7a, 1d, 07, 06, 00, 00, 0d, 00, 0e, 7a, 00, 12, 00, 13, 30, 76, 19, 06, 05, 00, 00, 12, 00, 13, 76, 00, 17, 00, 18, 30, 72, 15, 05, 04, 00, 00, 17, 00, 18, 72, 00, 1c, 00, 1d, 30, 6e, 11, 04, 03, 00, 00, 1c, 00, 1d, 6e, 00, 21, 00, 22, 30, 6a, 0d, 03, 02, 00, 00, 21, 00, 22, 6a, 00, 26, 00, 27, 30, 21, 09, 02, 00, 00, 00, 26, 00, 27, 21, 00, 28, 02, 06, 9b, 01, 02, 05, 00, 06, 97, 01, 01, 01, 00, 02]
Number of files: 1 Number of files: 1
- file 0 => global file 1 - file 0 => global file 1
Number of expressions: 44 Number of expressions: 44
@ -83,7 +83,7 @@ Number of file 0 mappings: 18
true = c8 true = c8
false = c2 false = c2
- Code(Counter(8)) at (prev + 0, 40) to (start + 2, 6) - Code(Counter(8)) at (prev + 0, 40) to (start + 2, 6)
- Code(Expression(38, Add)) at (prev + 2, 6) to (start + 0, 7) - Code(Expression(38, Add)) at (prev + 2, 5) to (start + 0, 6)
= ((((((c2 + c3) + c4) + c5) + c6) + c7) + (c0 - c1)) = ((((((c2 + c3) + c4) + c5) + c6) + c7) + (c0 - c1))
- Code(Expression(37, Add)) at (prev + 1, 1) to (start + 0, 2) - Code(Expression(37, Add)) at (prev + 1, 1) to (start + 0, 2)
= (c8 + ((((((c2 + c3) + c4) + c5) + c6) + c7) + (c0 - c1))) = (c8 + ((((((c2 + c3) + c4) + c5) + c6) + c7) + (c0 - c1)))

View File

@ -175,7 +175,7 @@ Number of file 0 mappings: 10
Highest counter ID seen: c4 Highest counter ID seen: c4
Function name: if::mcdc_nested_if Function name: if::mcdc_nested_if
Raw bytes (124): 0x[01, 01, 0d, 01, 05, 02, 09, 05, 09, 1b, 15, 05, 09, 1b, 15, 05, 09, 11, 15, 02, 09, 2b, 32, 0d, 2f, 11, 15, 02, 09, 0e, 01, 3b, 01, 01, 09, 28, 03, 02, 01, 08, 00, 0e, 30, 05, 02, 01, 00, 02, 00, 08, 00, 09, 02, 00, 0d, 00, 0e, 30, 09, 32, 02, 00, 00, 00, 0d, 00, 0e, 1b, 01, 09, 01, 0d, 28, 06, 02, 01, 0c, 00, 12, 30, 16, 15, 01, 02, 00, 00, 0c, 00, 0d, 16, 00, 11, 00, 12, 30, 0d, 11, 02, 00, 00, 00, 11, 00, 12, 0d, 00, 13, 02, 0a, 2f, 02, 0a, 00, 0b, 32, 01, 0c, 02, 06, 27, 03, 01, 00, 02] Raw bytes (124): 0x[01, 01, 0d, 01, 05, 02, 09, 05, 09, 1b, 15, 05, 09, 1b, 15, 05, 09, 11, 15, 02, 09, 2b, 32, 0d, 2f, 11, 15, 02, 09, 0e, 01, 3b, 01, 01, 09, 28, 03, 02, 01, 08, 00, 0e, 30, 05, 02, 01, 00, 02, 00, 08, 00, 09, 02, 00, 0d, 00, 0e, 30, 09, 32, 02, 00, 00, 00, 0d, 00, 0e, 1b, 01, 09, 01, 0d, 28, 06, 02, 01, 0c, 00, 12, 30, 16, 15, 01, 02, 00, 00, 0c, 00, 0d, 16, 00, 11, 00, 12, 30, 0d, 11, 02, 00, 00, 00, 11, 00, 12, 0d, 00, 13, 02, 0a, 2f, 02, 09, 00, 0a, 32, 01, 0c, 02, 06, 27, 03, 01, 00, 02]
Number of files: 1 Number of files: 1
- file 0 => global file 1 - file 0 => global file 1
Number of expressions: 13 Number of expressions: 13
@ -215,7 +215,7 @@ Number of file 0 mappings: 14
true = c3 true = c3
false = c4 false = c4
- Code(Counter(3)) at (prev + 0, 19) to (start + 2, 10) - Code(Counter(3)) at (prev + 0, 19) to (start + 2, 10)
- Code(Expression(11, Add)) at (prev + 2, 10) to (start + 0, 11) - Code(Expression(11, Add)) at (prev + 2, 9) to (start + 0, 10)
= (c4 + c5) = (c4 + c5)
- Code(Expression(12, Sub)) at (prev + 1, 12) to (start + 2, 6) - Code(Expression(12, Sub)) at (prev + 1, 12) to (start + 2, 6)
= ((c0 - c1) - c2) = ((c0 - c1) - c2)

View File

@ -1,5 +1,5 @@
Function name: nested_loops::main Function name: nested_loops::main
Raw bytes (115): 0x[01, 01, 17, 01, 57, 05, 09, 03, 0d, 4e, 53, 03, 0d, 15, 19, 4b, 09, 4e, 53, 03, 0d, 15, 19, 46, 05, 4b, 09, 4e, 53, 03, 0d, 15, 19, 42, 19, 46, 05, 4b, 09, 4e, 53, 03, 0d, 15, 19, 05, 09, 11, 0d, 0d, 01, 01, 01, 02, 1b, 03, 04, 13, 00, 20, 4e, 01, 0d, 01, 18, 4b, 02, 12, 00, 17, 46, 01, 10, 00, 16, 05, 01, 11, 00, 16, 42, 01, 0e, 03, 16, 3e, 04, 11, 01, 1b, 11, 02, 15, 00, 21, 15, 01, 18, 02, 12, 19, 03, 0e, 00, 0f, 57, 02, 09, 00, 17, 5b, 02, 01, 00, 02] Raw bytes (115): 0x[01, 01, 17, 01, 57, 05, 09, 03, 0d, 4e, 53, 03, 0d, 15, 19, 4b, 09, 4e, 53, 03, 0d, 15, 19, 46, 05, 4b, 09, 4e, 53, 03, 0d, 15, 19, 42, 19, 46, 05, 4b, 09, 4e, 53, 03, 0d, 15, 19, 05, 09, 11, 0d, 0d, 01, 01, 01, 02, 1b, 03, 04, 13, 00, 20, 4e, 01, 0d, 01, 18, 4b, 02, 12, 00, 17, 46, 01, 10, 00, 16, 05, 01, 11, 00, 16, 42, 01, 0e, 03, 16, 3e, 04, 11, 01, 1b, 11, 02, 15, 00, 21, 15, 01, 18, 02, 12, 19, 03, 0d, 00, 0e, 57, 02, 09, 00, 17, 5b, 02, 01, 00, 02]
Number of files: 1 Number of files: 1
- file 0 => global file 1 - file 0 => global file 1
Number of expressions: 23 Number of expressions: 23
@ -43,7 +43,7 @@ Number of file 0 mappings: 13
= ((((((c0 + (c1 + c2)) - c3) + (c5 + c6)) - c2) - c1) - c6) = ((((((c0 + (c1 + c2)) - c3) + (c5 + c6)) - c2) - c1) - c6)
- Code(Counter(4)) at (prev + 2, 21) to (start + 0, 33) - Code(Counter(4)) at (prev + 2, 21) to (start + 0, 33)
- Code(Counter(5)) at (prev + 1, 24) to (start + 2, 18) - Code(Counter(5)) at (prev + 1, 24) to (start + 2, 18)
- Code(Counter(6)) at (prev + 3, 14) to (start + 0, 15) - Code(Counter(6)) at (prev + 3, 13) to (start + 0, 14)
- Code(Expression(21, Add)) at (prev + 2, 9) to (start + 0, 23) - Code(Expression(21, Add)) at (prev + 2, 9) to (start + 0, 23)
= (c1 + c2) = (c1 + c2)
- Code(Expression(22, Add)) at (prev + 2, 1) to (start + 0, 2) - Code(Expression(22, Add)) at (prev + 2, 1) to (start + 0, 2)

View File

@ -1,5 +1,5 @@
Function name: overflow::main Function name: overflow::main
Raw bytes (65): 0x[01, 01, 08, 01, 1b, 05, 1f, 09, 0d, 03, 11, 16, 05, 03, 11, 05, 1f, 09, 0d, 09, 01, 10, 01, 01, 1b, 03, 02, 0b, 00, 18, 16, 01, 0c, 00, 1a, 05, 00, 1b, 03, 0a, 12, 03, 13, 00, 20, 09, 00, 21, 03, 0a, 0d, 03, 0a, 00, 0b, 1b, 01, 09, 00, 17, 11, 02, 05, 01, 02] Raw bytes (65): 0x[01, 01, 08, 01, 1b, 05, 1f, 09, 0d, 03, 11, 16, 05, 03, 11, 05, 1f, 09, 0d, 09, 01, 10, 01, 01, 1b, 03, 02, 0b, 00, 18, 16, 01, 0c, 00, 1a, 05, 00, 1b, 03, 0a, 12, 03, 13, 00, 20, 09, 00, 21, 03, 0a, 0d, 03, 09, 00, 0a, 1b, 01, 09, 00, 17, 11, 02, 05, 01, 02]
Number of files: 1 Number of files: 1
- file 0 => global file 1 - file 0 => global file 1
Number of expressions: 8 Number of expressions: 8
@ -21,14 +21,14 @@ Number of file 0 mappings: 9
- Code(Expression(4, Sub)) at (prev + 3, 19) to (start + 0, 32) - Code(Expression(4, Sub)) at (prev + 3, 19) to (start + 0, 32)
= (((c0 + (c1 + (c2 + c3))) - c4) - c1) = (((c0 + (c1 + (c2 + c3))) - c4) - c1)
- Code(Counter(2)) at (prev + 0, 33) to (start + 3, 10) - Code(Counter(2)) at (prev + 0, 33) to (start + 3, 10)
- Code(Counter(3)) at (prev + 3, 10) to (start + 0, 11) - Code(Counter(3)) at (prev + 3, 9) to (start + 0, 10)
- Code(Expression(6, Add)) at (prev + 1, 9) to (start + 0, 23) - Code(Expression(6, Add)) at (prev + 1, 9) to (start + 0, 23)
= (c1 + (c2 + c3)) = (c1 + (c2 + c3))
- Code(Counter(4)) at (prev + 2, 5) to (start + 1, 2) - Code(Counter(4)) at (prev + 2, 5) to (start + 1, 2)
Highest counter ID seen: c4 Highest counter ID seen: c4
Function name: overflow::might_overflow Function name: overflow::might_overflow
Raw bytes (26): 0x[01, 01, 01, 01, 05, 04, 01, 05, 01, 01, 12, 05, 01, 13, 02, 06, 02, 02, 06, 00, 07, 01, 01, 09, 05, 02] Raw bytes (26): 0x[01, 01, 01, 01, 05, 04, 01, 05, 01, 01, 12, 05, 01, 13, 02, 06, 02, 02, 05, 00, 06, 01, 01, 09, 05, 02]
Number of files: 1 Number of files: 1
- file 0 => global file 1 - file 0 => global file 1
Number of expressions: 1 Number of expressions: 1
@ -36,7 +36,7 @@ Number of expressions: 1
Number of file 0 mappings: 4 Number of file 0 mappings: 4
- Code(Counter(0)) at (prev + 5, 1) to (start + 1, 18) - Code(Counter(0)) at (prev + 5, 1) to (start + 1, 18)
- Code(Counter(1)) at (prev + 1, 19) to (start + 2, 6) - Code(Counter(1)) at (prev + 1, 19) to (start + 2, 6)
- Code(Expression(0, Sub)) at (prev + 2, 6) to (start + 0, 7) - Code(Expression(0, Sub)) at (prev + 2, 5) to (start + 0, 6)
= (c0 - c1) = (c0 - c1)
- Code(Counter(0)) at (prev + 1, 9) to (start + 5, 2) - Code(Counter(0)) at (prev + 1, 9) to (start + 5, 2)
Highest counter ID seen: c1 Highest counter ID seen: c1

View File

@ -1,5 +1,5 @@
Function name: panic_unwind::main Function name: panic_unwind::main
Raw bytes (65): 0x[01, 01, 08, 01, 1b, 05, 1f, 09, 0d, 03, 11, 16, 05, 03, 11, 05, 1f, 09, 0d, 09, 01, 0d, 01, 01, 1b, 03, 02, 0b, 00, 18, 16, 01, 0c, 00, 1a, 05, 00, 1b, 02, 0a, 12, 02, 13, 00, 20, 09, 00, 21, 02, 0a, 0d, 02, 0a, 00, 0b, 1b, 01, 09, 00, 17, 11, 02, 05, 01, 02] Raw bytes (65): 0x[01, 01, 08, 01, 1b, 05, 1f, 09, 0d, 03, 11, 16, 05, 03, 11, 05, 1f, 09, 0d, 09, 01, 0d, 01, 01, 1b, 03, 02, 0b, 00, 18, 16, 01, 0c, 00, 1a, 05, 00, 1b, 02, 0a, 12, 02, 13, 00, 20, 09, 00, 21, 02, 0a, 0d, 02, 09, 00, 0a, 1b, 01, 09, 00, 17, 11, 02, 05, 01, 02]
Number of files: 1 Number of files: 1
- file 0 => global file 1 - file 0 => global file 1
Number of expressions: 8 Number of expressions: 8
@ -21,7 +21,7 @@ Number of file 0 mappings: 9
- Code(Expression(4, Sub)) at (prev + 2, 19) to (start + 0, 32) - Code(Expression(4, Sub)) at (prev + 2, 19) to (start + 0, 32)
= (((c0 + (c1 + (c2 + c3))) - c4) - c1) = (((c0 + (c1 + (c2 + c3))) - c4) - c1)
- Code(Counter(2)) at (prev + 0, 33) to (start + 2, 10) - Code(Counter(2)) at (prev + 0, 33) to (start + 2, 10)
- Code(Counter(3)) at (prev + 2, 10) to (start + 0, 11) - Code(Counter(3)) at (prev + 2, 9) to (start + 0, 10)
- Code(Expression(6, Add)) at (prev + 1, 9) to (start + 0, 23) - Code(Expression(6, Add)) at (prev + 1, 9) to (start + 0, 23)
= (c1 + (c2 + c3)) = (c1 + (c2 + c3))
- Code(Counter(4)) at (prev + 2, 5) to (start + 1, 2) - Code(Counter(4)) at (prev + 2, 5) to (start + 1, 2)

View File

@ -1,5 +1,5 @@
Function name: simple_loop::main Function name: simple_loop::main
Raw bytes (43): 0x[01, 01, 02, 01, 05, 01, 09, 07, 01, 04, 01, 09, 10, 05, 0a, 05, 05, 06, 02, 05, 06, 00, 07, 07, 05, 0d, 02, 0e, 01, 04, 0d, 00, 12, 09, 02, 0a, 03, 0a, 01, 06, 01, 00, 02] Raw bytes (43): 0x[01, 01, 02, 01, 05, 01, 09, 07, 01, 04, 01, 09, 10, 05, 0a, 05, 05, 06, 02, 05, 05, 00, 06, 07, 05, 0d, 02, 0e, 01, 04, 0d, 00, 12, 09, 02, 0a, 03, 0a, 01, 06, 01, 00, 02]
Number of files: 1 Number of files: 1
- file 0 => global file 1 - file 0 => global file 1
Number of expressions: 2 Number of expressions: 2
@ -8,7 +8,7 @@ Number of expressions: 2
Number of file 0 mappings: 7 Number of file 0 mappings: 7
- Code(Counter(0)) at (prev + 4, 1) to (start + 9, 16) - Code(Counter(0)) at (prev + 4, 1) to (start + 9, 16)
- Code(Counter(1)) at (prev + 10, 5) to (start + 5, 6) - Code(Counter(1)) at (prev + 10, 5) to (start + 5, 6)
- Code(Expression(0, Sub)) at (prev + 5, 6) to (start + 0, 7) - Code(Expression(0, Sub)) at (prev + 5, 5) to (start + 0, 6)
= (c0 - c1) = (c0 - c1)
- Code(Expression(1, Add)) at (prev + 5, 13) to (start + 2, 14) - Code(Expression(1, Add)) at (prev + 5, 13) to (start + 2, 14)
= (c0 + c2) = (c0 + c2)

View File

@ -17,7 +17,7 @@
LL| 1| 10 LL| 1| 10
LL| 1| ; LL| 1| ;
LL| 1| } LL| 1| }
^0 ^0
LL| | LL| |
LL| | loop LL| | loop
LL| | { LL| | {

View File

@ -1,5 +1,5 @@
Function name: simple_match::main Function name: simple_match::main
Raw bytes (72): 0x[01, 01, 09, 01, 05, 01, 23, 09, 0d, 1f, 11, 01, 23, 09, 0d, 1f, 11, 01, 23, 09, 0d, 0a, 01, 04, 01, 07, 0f, 05, 07, 10, 02, 06, 02, 02, 06, 00, 07, 1f, 05, 09, 00, 0d, 1a, 05, 0d, 00, 16, 09, 02, 0d, 00, 0e, 1a, 02, 11, 02, 12, 09, 04, 0d, 07, 0e, 0d, 0a, 0d, 00, 0f, 11, 03, 01, 00, 02] Raw bytes (72): 0x[01, 01, 09, 01, 05, 01, 23, 09, 0d, 1f, 11, 01, 23, 09, 0d, 1f, 11, 01, 23, 09, 0d, 0a, 01, 04, 01, 07, 0f, 05, 07, 10, 02, 06, 02, 02, 05, 00, 06, 1f, 05, 09, 00, 0d, 1a, 05, 0d, 00, 16, 09, 02, 0d, 00, 0e, 1a, 02, 11, 02, 12, 09, 04, 0d, 07, 0e, 0d, 0a, 0d, 00, 0f, 11, 03, 01, 00, 02]
Number of files: 1 Number of files: 1
- file 0 => global file 1 - file 0 => global file 1
Number of expressions: 9 Number of expressions: 9
@ -15,7 +15,7 @@ Number of expressions: 9
Number of file 0 mappings: 10 Number of file 0 mappings: 10
- Code(Counter(0)) at (prev + 4, 1) to (start + 7, 15) - Code(Counter(0)) at (prev + 4, 1) to (start + 7, 15)
- Code(Counter(1)) at (prev + 7, 16) to (start + 2, 6) - Code(Counter(1)) at (prev + 7, 16) to (start + 2, 6)
- Code(Expression(0, Sub)) at (prev + 2, 6) to (start + 0, 7) - Code(Expression(0, Sub)) at (prev + 2, 5) to (start + 0, 6)
= (c0 - c1) = (c0 - c1)
- Code(Expression(7, Add)) at (prev + 5, 9) to (start + 0, 13) - Code(Expression(7, Add)) at (prev + 5, 9) to (start + 0, 13)
= (c0 + (c2 + c3)) = (c0 + (c2 + c3))

View File

@ -11,7 +11,7 @@
LL| 1| if is_true { LL| 1| if is_true {
LL| 1| countdown = 0; LL| 1| countdown = 0;
LL| 1| } LL| 1| }
^0 ^0
LL| | LL| |
LL| | for LL| | for
LL| | _ LL| | _

View File

@ -1,5 +1,5 @@
Function name: sort_groups::generic_fn::<&str> Function name: sort_groups::generic_fn::<&str>
Raw bytes (26): 0x[01, 01, 01, 01, 05, 04, 01, 11, 01, 01, 0c, 05, 01, 0d, 02, 06, 02, 02, 06, 00, 07, 01, 01, 01, 00, 02] Raw bytes (26): 0x[01, 01, 01, 01, 05, 04, 01, 11, 01, 01, 0c, 05, 01, 0d, 02, 06, 02, 02, 05, 00, 06, 01, 01, 01, 00, 02]
Number of files: 1 Number of files: 1
- file 0 => global file 1 - file 0 => global file 1
Number of expressions: 1 Number of expressions: 1
@ -7,13 +7,13 @@ Number of expressions: 1
Number of file 0 mappings: 4 Number of file 0 mappings: 4
- Code(Counter(0)) at (prev + 17, 1) to (start + 1, 12) - Code(Counter(0)) at (prev + 17, 1) to (start + 1, 12)
- Code(Counter(1)) at (prev + 1, 13) to (start + 2, 6) - Code(Counter(1)) at (prev + 1, 13) to (start + 2, 6)
- Code(Expression(0, Sub)) at (prev + 2, 6) to (start + 0, 7) - Code(Expression(0, Sub)) at (prev + 2, 5) to (start + 0, 6)
= (c0 - c1) = (c0 - c1)
- Code(Counter(0)) at (prev + 1, 1) to (start + 0, 2) - Code(Counter(0)) at (prev + 1, 1) to (start + 0, 2)
Highest counter ID seen: c1 Highest counter ID seen: c1
Function name: sort_groups::generic_fn::<()> Function name: sort_groups::generic_fn::<()>
Raw bytes (26): 0x[01, 01, 01, 01, 05, 04, 01, 11, 01, 01, 0c, 05, 01, 0d, 02, 06, 02, 02, 06, 00, 07, 01, 01, 01, 00, 02] Raw bytes (26): 0x[01, 01, 01, 01, 05, 04, 01, 11, 01, 01, 0c, 05, 01, 0d, 02, 06, 02, 02, 05, 00, 06, 01, 01, 01, 00, 02]
Number of files: 1 Number of files: 1
- file 0 => global file 1 - file 0 => global file 1
Number of expressions: 1 Number of expressions: 1
@ -21,13 +21,13 @@ Number of expressions: 1
Number of file 0 mappings: 4 Number of file 0 mappings: 4
- Code(Counter(0)) at (prev + 17, 1) to (start + 1, 12) - Code(Counter(0)) at (prev + 17, 1) to (start + 1, 12)
- Code(Counter(1)) at (prev + 1, 13) to (start + 2, 6) - Code(Counter(1)) at (prev + 1, 13) to (start + 2, 6)
- Code(Expression(0, Sub)) at (prev + 2, 6) to (start + 0, 7) - Code(Expression(0, Sub)) at (prev + 2, 5) to (start + 0, 6)
= (c0 - c1) = (c0 - c1)
- Code(Counter(0)) at (prev + 1, 1) to (start + 0, 2) - Code(Counter(0)) at (prev + 1, 1) to (start + 0, 2)
Highest counter ID seen: c1 Highest counter ID seen: c1
Function name: sort_groups::generic_fn::<char> Function name: sort_groups::generic_fn::<char>
Raw bytes (26): 0x[01, 01, 01, 01, 05, 04, 01, 11, 01, 01, 0c, 05, 01, 0d, 02, 06, 02, 02, 06, 00, 07, 01, 01, 01, 00, 02] Raw bytes (26): 0x[01, 01, 01, 01, 05, 04, 01, 11, 01, 01, 0c, 05, 01, 0d, 02, 06, 02, 02, 05, 00, 06, 01, 01, 01, 00, 02]
Number of files: 1 Number of files: 1
- file 0 => global file 1 - file 0 => global file 1
Number of expressions: 1 Number of expressions: 1
@ -35,13 +35,13 @@ Number of expressions: 1
Number of file 0 mappings: 4 Number of file 0 mappings: 4
- Code(Counter(0)) at (prev + 17, 1) to (start + 1, 12) - Code(Counter(0)) at (prev + 17, 1) to (start + 1, 12)
- Code(Counter(1)) at (prev + 1, 13) to (start + 2, 6) - Code(Counter(1)) at (prev + 1, 13) to (start + 2, 6)
- Code(Expression(0, Sub)) at (prev + 2, 6) to (start + 0, 7) - Code(Expression(0, Sub)) at (prev + 2, 5) to (start + 0, 6)
= (c0 - c1) = (c0 - c1)
- Code(Counter(0)) at (prev + 1, 1) to (start + 0, 2) - Code(Counter(0)) at (prev + 1, 1) to (start + 0, 2)
Highest counter ID seen: c1 Highest counter ID seen: c1
Function name: sort_groups::generic_fn::<i32> Function name: sort_groups::generic_fn::<i32>
Raw bytes (26): 0x[01, 01, 01, 01, 05, 04, 01, 11, 01, 01, 0c, 05, 01, 0d, 02, 06, 02, 02, 06, 00, 07, 01, 01, 01, 00, 02] Raw bytes (26): 0x[01, 01, 01, 01, 05, 04, 01, 11, 01, 01, 0c, 05, 01, 0d, 02, 06, 02, 02, 05, 00, 06, 01, 01, 01, 00, 02]
Number of files: 1 Number of files: 1
- file 0 => global file 1 - file 0 => global file 1
Number of expressions: 1 Number of expressions: 1
@ -49,13 +49,13 @@ Number of expressions: 1
Number of file 0 mappings: 4 Number of file 0 mappings: 4
- Code(Counter(0)) at (prev + 17, 1) to (start + 1, 12) - Code(Counter(0)) at (prev + 17, 1) to (start + 1, 12)
- Code(Counter(1)) at (prev + 1, 13) to (start + 2, 6) - Code(Counter(1)) at (prev + 1, 13) to (start + 2, 6)
- Code(Expression(0, Sub)) at (prev + 2, 6) to (start + 0, 7) - Code(Expression(0, Sub)) at (prev + 2, 5) to (start + 0, 6)
= (c0 - c1) = (c0 - c1)
- Code(Counter(0)) at (prev + 1, 1) to (start + 0, 2) - Code(Counter(0)) at (prev + 1, 1) to (start + 0, 2)
Highest counter ID seen: c1 Highest counter ID seen: c1
Function name: sort_groups::main Function name: sort_groups::main
Raw bytes (26): 0x[01, 01, 01, 01, 05, 04, 01, 06, 01, 04, 23, 05, 04, 24, 02, 06, 02, 02, 06, 00, 07, 01, 01, 05, 02, 02] Raw bytes (26): 0x[01, 01, 01, 01, 05, 04, 01, 06, 01, 04, 23, 05, 04, 24, 02, 06, 02, 02, 05, 00, 06, 01, 01, 05, 02, 02]
Number of files: 1 Number of files: 1
- file 0 => global file 1 - file 0 => global file 1
Number of expressions: 1 Number of expressions: 1
@ -63,7 +63,7 @@ Number of expressions: 1
Number of file 0 mappings: 4 Number of file 0 mappings: 4
- Code(Counter(0)) at (prev + 6, 1) to (start + 4, 35) - Code(Counter(0)) at (prev + 6, 1) to (start + 4, 35)
- Code(Counter(1)) at (prev + 4, 36) to (start + 2, 6) - Code(Counter(1)) at (prev + 4, 36) to (start + 2, 6)
- Code(Expression(0, Sub)) at (prev + 2, 6) to (start + 0, 7) - Code(Expression(0, Sub)) at (prev + 2, 5) to (start + 0, 6)
= (c0 - c1) = (c0 - c1)
- Code(Counter(0)) at (prev + 1, 5) to (start + 2, 2) - Code(Counter(0)) at (prev + 1, 5) to (start + 2, 2)
Highest counter ID seen: c1 Highest counter ID seen: c1

View File

@ -27,7 +27,7 @@
| LL| 1| if cond { | LL| 1| if cond {
| LL| 1| println!("{}", std::any::type_name::<T>()); | LL| 1| println!("{}", std::any::type_name::<T>());
| LL| 1| } | LL| 1| }
| ^0 | ^0
| LL| 1|} | LL| 1|}
------------------ ------------------
| sort_groups::generic_fn::<()>: | sort_groups::generic_fn::<()>:

View File

@ -1,5 +1,5 @@
Function name: unicode::main Function name: unicode::main
Raw bytes (61): 0x[01, 01, 06, 01, 05, 16, 0d, 01, 09, 11, 13, 16, 0d, 01, 09, 09, 01, 0e, 01, 00, 0b, 05, 01, 09, 00, 0c, 03, 00, 10, 00, 1b, 05, 00, 1c, 00, 28, 01, 02, 08, 00, 25, 09, 00, 29, 00, 46, 11, 00, 47, 02, 06, 13, 02, 06, 00, 07, 0f, 02, 05, 01, 02] Raw bytes (61): 0x[01, 01, 06, 01, 05, 16, 0d, 01, 09, 11, 13, 16, 0d, 01, 09, 09, 01, 0e, 01, 00, 0b, 05, 01, 09, 00, 0c, 03, 00, 10, 00, 1b, 05, 00, 1c, 00, 28, 01, 02, 08, 00, 25, 09, 00, 29, 00, 46, 11, 00, 47, 02, 06, 13, 02, 05, 00, 06, 0f, 02, 05, 01, 02]
Number of files: 1 Number of files: 1
- file 0 => global file 1 - file 0 => global file 1
Number of expressions: 6 Number of expressions: 6
@ -18,7 +18,7 @@ Number of file 0 mappings: 9
- Code(Counter(0)) at (prev + 2, 8) to (start + 0, 37) - Code(Counter(0)) at (prev + 2, 8) to (start + 0, 37)
- Code(Counter(2)) at (prev + 0, 41) to (start + 0, 70) - Code(Counter(2)) at (prev + 0, 41) to (start + 0, 70)
- Code(Counter(4)) at (prev + 0, 71) to (start + 2, 6) - Code(Counter(4)) at (prev + 0, 71) to (start + 2, 6)
- Code(Expression(4, Add)) at (prev + 2, 6) to (start + 0, 7) - Code(Expression(4, Add)) at (prev + 2, 5) to (start + 0, 6)
= ((c0 - c2) + c3) = ((c0 - c2) + c3)
- Code(Expression(3, Add)) at (prev + 2, 5) to (start + 1, 2) - Code(Expression(3, Add)) at (prev + 2, 5) to (start + 1, 2)
= (c4 + ((c0 - c2) + c3)) = (c4 + ((c0 - c2) + c3))

View File

@ -18,7 +18,7 @@
LL| 1| if 申し訳ございません() && 申し訳ございません() { LL| 1| if 申し訳ございません() && 申し訳ございません() {
^0 ^0
LL| 0| println!("true"); LL| 0| println!("true");
LL| 1| } LL| 1| }
LL| | LL| |
LL| 1| サビ(); LL| 1| サビ();
LL| 1|} LL| 1|}

View File

@ -50,38 +50,38 @@ Number of file 0 mappings: 1
Highest counter ID seen: c0 Highest counter ID seen: c0
Function name: unused::unused_func (unused) Function name: unused::unused_func (unused)
Raw bytes (24): 0x[01, 01, 00, 04, 00, 13, 01, 01, 0e, 00, 01, 0f, 02, 06, 00, 02, 06, 00, 07, 00, 01, 01, 00, 02] Raw bytes (24): 0x[01, 01, 00, 04, 00, 13, 01, 01, 0e, 00, 01, 0f, 02, 06, 00, 02, 05, 00, 06, 00, 01, 01, 00, 02]
Number of files: 1 Number of files: 1
- file 0 => global file 1 - file 0 => global file 1
Number of expressions: 0 Number of expressions: 0
Number of file 0 mappings: 4 Number of file 0 mappings: 4
- Code(Zero) at (prev + 19, 1) to (start + 1, 14) - Code(Zero) at (prev + 19, 1) to (start + 1, 14)
- Code(Zero) at (prev + 1, 15) to (start + 2, 6) - Code(Zero) at (prev + 1, 15) to (start + 2, 6)
- Code(Zero) at (prev + 2, 6) to (start + 0, 7) - Code(Zero) at (prev + 2, 5) to (start + 0, 6)
- Code(Zero) at (prev + 1, 1) to (start + 0, 2) - Code(Zero) at (prev + 1, 1) to (start + 0, 2)
Highest counter ID seen: (none) Highest counter ID seen: (none)
Function name: unused::unused_func2 (unused) Function name: unused::unused_func2 (unused)
Raw bytes (24): 0x[01, 01, 00, 04, 00, 19, 01, 01, 0e, 00, 01, 0f, 02, 06, 00, 02, 06, 00, 07, 00, 01, 01, 00, 02] Raw bytes (24): 0x[01, 01, 00, 04, 00, 19, 01, 01, 0e, 00, 01, 0f, 02, 06, 00, 02, 05, 00, 06, 00, 01, 01, 00, 02]
Number of files: 1 Number of files: 1
- file 0 => global file 1 - file 0 => global file 1
Number of expressions: 0 Number of expressions: 0
Number of file 0 mappings: 4 Number of file 0 mappings: 4
- Code(Zero) at (prev + 25, 1) to (start + 1, 14) - Code(Zero) at (prev + 25, 1) to (start + 1, 14)
- Code(Zero) at (prev + 1, 15) to (start + 2, 6) - Code(Zero) at (prev + 1, 15) to (start + 2, 6)
- Code(Zero) at (prev + 2, 6) to (start + 0, 7) - Code(Zero) at (prev + 2, 5) to (start + 0, 6)
- Code(Zero) at (prev + 1, 1) to (start + 0, 2) - Code(Zero) at (prev + 1, 1) to (start + 0, 2)
Highest counter ID seen: (none) Highest counter ID seen: (none)
Function name: unused::unused_func3 (unused) Function name: unused::unused_func3 (unused)
Raw bytes (24): 0x[01, 01, 00, 04, 00, 1f, 01, 01, 0e, 00, 01, 0f, 02, 06, 00, 02, 06, 00, 07, 00, 01, 01, 00, 02] Raw bytes (24): 0x[01, 01, 00, 04, 00, 1f, 01, 01, 0e, 00, 01, 0f, 02, 06, 00, 02, 05, 00, 06, 00, 01, 01, 00, 02]
Number of files: 1 Number of files: 1
- file 0 => global file 1 - file 0 => global file 1
Number of expressions: 0 Number of expressions: 0
Number of file 0 mappings: 4 Number of file 0 mappings: 4
- Code(Zero) at (prev + 31, 1) to (start + 1, 14) - Code(Zero) at (prev + 31, 1) to (start + 1, 14)
- Code(Zero) at (prev + 1, 15) to (start + 2, 6) - Code(Zero) at (prev + 1, 15) to (start + 2, 6)
- Code(Zero) at (prev + 2, 6) to (start + 0, 7) - Code(Zero) at (prev + 2, 5) to (start + 0, 6)
- Code(Zero) at (prev + 1, 1) to (start + 0, 2) - Code(Zero) at (prev + 1, 1) to (start + 0, 2)
Highest counter ID seen: (none) Highest counter ID seen: (none)

View File

@ -14,7 +14,7 @@ $DIR/auxiliary/used_crate.rs:
LL| 1| if is_true { LL| 1| if is_true {
LL| 1| countdown = 10; LL| 1| countdown = 10;
LL| 1| } LL| 1| }
^0 ^0
LL| 1| use_this_lib_crate(); LL| 1| use_this_lib_crate();
LL| 1|} LL| 1|}
LL| | LL| |

View File

@ -8,7 +8,7 @@ Number of file 0 mappings: 1
Highest counter ID seen: c0 Highest counter ID seen: c0
Function name: used_inline_crate::used_inline_function Function name: used_inline_crate::used_inline_function
Raw bytes (26): 0x[01, 01, 01, 01, 05, 04, 01, 14, 01, 06, 0f, 05, 06, 10, 02, 06, 02, 02, 06, 00, 07, 01, 01, 05, 01, 02] Raw bytes (26): 0x[01, 01, 01, 01, 05, 04, 01, 14, 01, 06, 0f, 05, 06, 10, 02, 06, 02, 02, 05, 00, 06, 01, 01, 05, 01, 02]
Number of files: 1 Number of files: 1
- file 0 => global file 1 - file 0 => global file 1
Number of expressions: 1 Number of expressions: 1
@ -16,7 +16,7 @@ Number of expressions: 1
Number of file 0 mappings: 4 Number of file 0 mappings: 4
- Code(Counter(0)) at (prev + 20, 1) to (start + 6, 15) - Code(Counter(0)) at (prev + 20, 1) to (start + 6, 15)
- Code(Counter(1)) at (prev + 6, 16) to (start + 2, 6) - Code(Counter(1)) at (prev + 6, 16) to (start + 2, 6)
- Code(Expression(0, Sub)) at (prev + 2, 6) to (start + 0, 7) - Code(Expression(0, Sub)) at (prev + 2, 5) to (start + 0, 6)
= (c0 - c1) = (c0 - c1)
- Code(Counter(0)) at (prev + 1, 5) to (start + 1, 2) - Code(Counter(0)) at (prev + 1, 5) to (start + 1, 2)
Highest counter ID seen: c1 Highest counter ID seen: c1

View File

@ -14,7 +14,7 @@ $DIR/auxiliary/used_inline_crate.rs:
LL| 1| if is_true { LL| 1| if is_true {
LL| 1| countdown = 10; LL| 1| countdown = 10;
LL| 1| } LL| 1| }
^0 ^0
LL| 1| use_this_lib_crate(); LL| 1| use_this_lib_crate();
LL| 1|} LL| 1|}
LL| | LL| |
@ -28,7 +28,7 @@ $DIR/auxiliary/used_inline_crate.rs:
LL| 1| if is_true { LL| 1| if is_true {
LL| 1| countdown = 10; LL| 1| countdown = 10;
LL| 1| } LL| 1| }
^0 ^0
LL| 1| use_this_lib_crate(); LL| 1| use_this_lib_crate();
LL| 1|} LL| 1|}
LL| | LL| |

View File

@ -26,18 +26,19 @@
debug a => _9; debug a => _9;
} }
+ coverage body span: $DIR/branch_match_arms.rs:14:11: 21:2 (#0)
+ coverage ExpressionId(0) => Expression { lhs: Counter(1), op: Add, rhs: Counter(2) }; + coverage ExpressionId(0) => Expression { lhs: Counter(1), op: Add, rhs: Counter(2) };
+ coverage ExpressionId(1) => Expression { lhs: Expression(0), op: Add, rhs: Counter(3) }; + coverage ExpressionId(1) => Expression { lhs: Expression(0), op: Add, rhs: Counter(3) };
+ coverage ExpressionId(2) => Expression { lhs: Counter(0), op: Subtract, rhs: Expression(1) }; + coverage ExpressionId(2) => Expression { lhs: Counter(0), op: Subtract, rhs: Expression(1) };
+ coverage ExpressionId(3) => Expression { lhs: Counter(3), op: Add, rhs: Counter(2) }; + coverage ExpressionId(3) => Expression { lhs: Counter(3), op: Add, rhs: Counter(2) };
+ coverage ExpressionId(4) => Expression { lhs: Expression(3), op: Add, rhs: Counter(1) }; + coverage ExpressionId(4) => Expression { lhs: Expression(3), op: Add, rhs: Counter(1) };
+ coverage ExpressionId(5) => Expression { lhs: Expression(4), op: Add, rhs: Expression(2) }; + coverage ExpressionId(5) => Expression { lhs: Expression(4), op: Add, rhs: Expression(2) };
+ coverage Code(Counter(0)) => $DIR/branch_match_arms.rs:14:1 - 15:21; + coverage Code(Counter(0)) => 14:1 - 15:21;
+ coverage Code(Counter(3)) => $DIR/branch_match_arms.rs:16:17 - 16:33; + coverage Code(Counter(3)) => 16:17 - 16:33;
+ coverage Code(Counter(2)) => $DIR/branch_match_arms.rs:17:17 - 17:33; + coverage Code(Counter(2)) => 17:17 - 17:33;
+ coverage Code(Counter(1)) => $DIR/branch_match_arms.rs:18:17 - 18:33; + coverage Code(Counter(1)) => 18:17 - 18:33;
+ coverage Code(Expression(2)) => $DIR/branch_match_arms.rs:19:17 - 19:33; + coverage Code(Expression(2)) => 19:17 - 19:33;
+ coverage Code(Expression(5)) => $DIR/branch_match_arms.rs:21:1 - 21:2; + coverage Code(Expression(5)) => 21:1 - 21:2;
+ +
bb0: { bb0: {
+ Coverage::CounterIncrement(0); + Coverage::CounterIncrement(0);

View File

@ -4,7 +4,8 @@
fn bar() -> bool { fn bar() -> bool {
let mut _0: bool; let mut _0: bool;
+ coverage Code(Counter(0)) => $DIR/instrument_coverage.rs:19:1 - 21:2; + coverage body span: $DIR/instrument_coverage.rs:19:18: 21:2 (#0)
+ coverage Code(Counter(0)) => 19:1 - 21:2;
+ +
bb0: { bb0: {
+ Coverage::CounterIncrement(0); + Coverage::CounterIncrement(0);

View File

@ -7,12 +7,13 @@
let mut _2: bool; let mut _2: bool;
let mut _3: !; let mut _3: !;
+ coverage body span: $DIR/instrument_coverage.rs:10:11: 16:2 (#0)
+ coverage ExpressionId(0) => Expression { lhs: Counter(0), op: Add, rhs: Counter(1) }; + coverage ExpressionId(0) => Expression { lhs: Counter(0), op: Add, rhs: Counter(1) };
+ coverage Code(Counter(0)) => $DIR/instrument_coverage.rs:10:1 - 10:11; + coverage Code(Counter(0)) => 10:1 - 10:11;
+ coverage Code(Expression(0)) => $DIR/instrument_coverage.rs:12:12 - 12:17; + coverage Code(Expression(0)) => 12:12 - 12:17;
+ coverage Code(Counter(0)) => $DIR/instrument_coverage.rs:13:13 - 13:18; + coverage Code(Counter(0)) => 13:13 - 13:18;
+ coverage Code(Counter(1)) => $DIR/instrument_coverage.rs:14:10 - 14:11; + coverage Code(Counter(1)) => 14:9 - 14:10;
+ coverage Code(Counter(0)) => $DIR/instrument_coverage.rs:16:1 - 16:2; + coverage Code(Counter(0)) => 16:1 - 16:2;
+ +
bb0: { bb0: {
+ Coverage::CounterIncrement(0); + Coverage::CounterIncrement(0);

View File

@ -7,12 +7,13 @@
coverage branch { true: BlockMarkerId(0), false: BlockMarkerId(1) } => $DIR/instrument_coverage_cleanup.rs:14:8: 14:36 (#0) coverage branch { true: BlockMarkerId(0), false: BlockMarkerId(1) } => $DIR/instrument_coverage_cleanup.rs:14:8: 14:36 (#0)
coverage body span: $DIR/instrument_coverage_cleanup.rs:13:11: 15:2 (#0)
coverage ExpressionId(0) => Expression { lhs: Counter(0), op: Subtract, rhs: Counter(1) }; coverage ExpressionId(0) => Expression { lhs: Counter(0), op: Subtract, rhs: Counter(1) };
coverage Code(Counter(0)) => $DIR/instrument_coverage_cleanup.rs:13:1 - 14:36; coverage Code(Counter(0)) => 13:1 - 14:36;
coverage Code(Expression(0)) => $DIR/instrument_coverage_cleanup.rs:14:37 - 14:39; coverage Code(Expression(0)) => 14:37 - 14:39;
coverage Code(Counter(1)) => $DIR/instrument_coverage_cleanup.rs:14:39 - 14:40; coverage Code(Counter(1)) => 14:38 - 14:39;
coverage Code(Counter(0)) => $DIR/instrument_coverage_cleanup.rs:15:1 - 15:2; coverage Code(Counter(0)) => 15:1 - 15:2;
coverage Branch { true_term: Expression(0), false_term: Counter(1) } => $DIR/instrument_coverage_cleanup.rs:14:8 - 14:36; coverage Branch { true_term: Expression(0), false_term: Counter(1) } => 14:8 - 14:36;
bb0: { bb0: {
Coverage::CounterIncrement(0); Coverage::CounterIncrement(0);

View File

@ -7,12 +7,13 @@
coverage branch { true: BlockMarkerId(0), false: BlockMarkerId(1) } => $DIR/instrument_coverage_cleanup.rs:14:8: 14:36 (#0) coverage branch { true: BlockMarkerId(0), false: BlockMarkerId(1) } => $DIR/instrument_coverage_cleanup.rs:14:8: 14:36 (#0)
+ coverage body span: $DIR/instrument_coverage_cleanup.rs:13:11: 15:2 (#0)
+ coverage ExpressionId(0) => Expression { lhs: Counter(0), op: Subtract, rhs: Counter(1) }; + coverage ExpressionId(0) => Expression { lhs: Counter(0), op: Subtract, rhs: Counter(1) };
+ coverage Code(Counter(0)) => $DIR/instrument_coverage_cleanup.rs:13:1 - 14:36; + coverage Code(Counter(0)) => 13:1 - 14:36;
+ coverage Code(Expression(0)) => $DIR/instrument_coverage_cleanup.rs:14:37 - 14:39; + coverage Code(Expression(0)) => 14:37 - 14:39;
+ coverage Code(Counter(1)) => $DIR/instrument_coverage_cleanup.rs:14:39 - 14:40; + coverage Code(Counter(1)) => 14:38 - 14:39;
+ coverage Code(Counter(0)) => $DIR/instrument_coverage_cleanup.rs:15:1 - 15:2; + coverage Code(Counter(0)) => 15:1 - 15:2;
+ coverage Branch { true_term: Expression(0), false_term: Counter(1) } => $DIR/instrument_coverage_cleanup.rs:14:8 - 14:36; + coverage Branch { true_term: Expression(0), false_term: Counter(1) } => 14:8 - 14:36;
+ +
bb0: { bb0: {
+ Coverage::CounterIncrement(0); + Coverage::CounterIncrement(0);