Skip to content

Commit

Permalink
Add a regression test for rust-lang#132353
Browse files Browse the repository at this point in the history
To catch at least one pattern that was miscompiled. The test is a
minimization of the MCVE reported in
<rust-lang#132353>.
  • Loading branch information
jieyouxu committed Oct 30, 2024
1 parent 298c746 commit 097cb99
Showing 1 changed file with 25 additions and 0 deletions.
25 changes: 25 additions & 0 deletions tests/ui/mir/clone-canonicalization-miscompile-132353.rs
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
//! The mir-opt added in <https://github.com/rust-lang/rust/pull/128299> unfortunately seems to lead
//! to a miscompile (reported in <https://github.com/rust-lang/rust/issues/132353>, minimization
//! reproduced in this test file).
//@ revisions: release debug
// Note: it's not strictly cargo's release profile, but any non-zero opt-level was sufficient to
// reproduce the miscompile.
//@[release] compile-flags: -C opt-level=1
//@[debug] compile-flags: -C opt-level=0
//@ run-pass

fn pop_min(mut score2head: Vec<Option<usize>>) -> Option<usize> {
loop {
if let Some(col) = score2head[0] {
score2head[0] = None;
return Some(col);
}
}
}

fn main() {
let min = pop_min(vec![Some(1)]);
println!("min: {:?}", min);
// panic happened on 1.83.0 beta in release mode but not debug mode.
let _ = min.unwrap();
}

0 comments on commit 097cb99

Please sign in to comment.