Change:
This can be seen here: To reproduce:
Last passing run was so this regressed between 2022-06-30 and 2022-07-02.
Minimized a reproducer. : : Execution:
label regression-untriaged
Bisection says searched nightlies: from nightly-2022-06-29 to nightly-2022-07-03 regressed nightly: nightly-2022-07-03 searched commit range: regressed commit: <details<summarybisected with <a href=''cargo-bisect-rustc</av0.6.1</summaryHost triple: x86_64-unknown-linux-gnu Reproduce with: </detailsSo,
WG-prioritization assigning priority (). label -I-prioritize +P-critical
Unfortunately while this fixes the minimal reproducer, it doesn't fix the full case. Would you prefer I file a new bug, or should this one be re-opened? To reproduce:
It's not very minimized, but slightly better. : : Empty
searched nightlies: from nightly-2022-07-07 to nightly-2022-07-22 regressed nightly: nightly-2022-07-09 searched commits: from to regressed commit:
Interesting, I had assumed based on the matching panic message that it'd have the same regressing commit.
Happy to report that with the latest nightly we're back to green on nightly. Thanks much
Thanks the first fix was enough for Suricata :-)
Thanks so much, pydantic-core has been pinned to but is not back on nightly.

Discussion:
/// with `0` executions. /// /// If there are no live `Counter` `Coverage` statements remaining, we remove <del> /// dead `Coverage` statements along with the dead blocks. Since at least one </del> <ins> /// `Coverage` statements along with the dead blocks. Since at least one </ins> /// counter per function is required by LLVM (and necessary, to add the /// `function_hash` to the counter's call to the LLVM intrinsic /// `instrprof.increment()`).

} } <ins> for block in &mut basic_blocks.raw[..first_dead_block] { for statement in &mut block.statements { let StatementKind::Coverage(_) = &statement.kind else { continue }; let instance = statement.source_info.scope.inlined_instance(source_scopes); if !live.contains(&instance) { statement.make_nop(); } } } </ins> if live.is_empty() { return; }

1|       |// Regression test for issue #98833. <del> 2|       |// compile-flags: -Zinline-mir </del> <ins> 2|       |// compile-flags: -Zinline-mir -Cdebug-assertions=off </ins> 3|       | 4|      1|fn main() { 5|      1|    println!("{}", live::<false>()); <del> 6|      1|} 7|       | 8|       |#[inline] 9|      1|fn live<const B: bool>() -> u32 { 10|      1|    if B { 11|      0|        dead() 12|       |    } else { 13|      1|        0 14|       |    } 15|      1|} 16|       | 17|       |#[inline] 18|      0|fn dead() -> u32 { 19|      0|    42 20|      0|} </del> <ins> 6|      1| 7|      1|    let f = |x: bool| { 8|       |        debug_assert!( 9|       |            x 10|       |        ); 11|      1|    }; 12|      1|    f(false); 13|      1|} 14|       | 15|       |#[inline] 16|      1|fn live<const B: bool>() -> u32 { 17|      1|    if B { 18|      0|        dead() 19|       |    } else { 20|      1|        0 21|       |    } 22|      1|} 23|       | 24|       |#[inline] 25|      0|fn dead() -> u32 { 26|      0|    42 27|      0|} </ins>

// Regression test for issue #98833. <del> // compile-flags: -Zinline-mir </del> <ins> // compile-flags: -Zinline-mir -Cdebug-assertions=off </ins> fn main() { println!("{}", live::<false>()); <ins> let f = |x: bool| { debug_assert!( x ); }; f(false); </ins> } #[inline]