2023-06-08 07:18:34 +00:00
|
|
|
// EMIT_MIR_FOR_EACH_PANIC_STRATEGY
|
2020-05-24 19:37:09 +00:00
|
|
|
//! Tests that cyclic assignments don't hang DestinationPropagation, and result in reasonable code.
|
2024-04-20 11:19:34 +00:00
|
|
|
//@ test-mir-pass: DestinationPropagation
|
2020-05-24 19:37:09 +00:00
|
|
|
fn val() -> i32 {
|
|
|
|
1
|
|
|
|
}
|
|
|
|
|
2020-09-12 13:10:51 +00:00
|
|
|
// EMIT_MIR cycle.main.DestinationPropagation.diff
|
2020-05-24 19:37:09 +00:00
|
|
|
fn main() {
|
2024-04-14 09:35:37 +00:00
|
|
|
// CHECK-LABEL: main(
|
|
|
|
// CHECK: debug x => [[x:_.*]];
|
|
|
|
// CHECK: [[x]] = val()
|
|
|
|
// CHECK-NOT: [[x]] = {{_.*}};
|
2020-05-24 19:37:09 +00:00
|
|
|
let mut x = val();
|
|
|
|
let y = x;
|
|
|
|
let z = y;
|
|
|
|
x = z;
|
|
|
|
|
|
|
|
drop(x);
|
|
|
|
}
|